このページに記載されている情報は古い可能性があります
このページの更新日は英語版よりも古いため、記載されている情報が古い可能性があります。最新の情報をご覧になりたい方は英語版のページをご覧ください: Install and Set Up kubectl on Linux
Linux上でのkubectlのインストールおよびセットアップ
始める前に
kubectlのバージョンは、クラスターのマイナーバージョンとの差分が1つ以内でなければなりません。 たとえば、クライアントがv1.32であれば、v1.31、v1.32、v1.33のコントロールプレーンと通信できます。 最新の互換性のあるバージョンのkubectlを使うことで、不測の事態を避けることができるでしょう。
Linuxへkubectlをインストールする
Linuxへkubectlをインストールするには、次の方法があります:
curlを使用してLinuxへkubectlのバイナリをインストールする
-
次のコマンドにより、最新リリースをダウンロードしてください:
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/arm64/kubectl"
備考:
特定のバージョンをダウンロードする場合、コマンドの
$(curl -L -s https://dl.k8s.io/release/stable.txt)
の部分を特定のバージョンに書き換えてください。たとえば、Linux x86-64へ1.32.0のバージョンをダウンロードするには、次のコマンドを入力します:
curl -LO https://dl.k8s.io/release/v1.32.0/bin/linux/amd64/kubectl
そして、Linux ARM64に対しては、次のコマンドを入力します:
curl -LO https://dl.k8s.io/release/v1.32.0/bin/linux/arm64/kubectl
-
バイナリを検証してください(オプション)
kubectlのチェックサムファイルをダウンロードします:
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl.sha256"
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/arm64/kubectl.sha256"
チェックサムファイルに対してkubectlバイナリを検証します:
echo "$(cat kubectl.sha256) kubectl" | sha256sum --check
正しければ、出力は次のようになります:
kubectl: OK
チェックに失敗すると、
sha256
は0以外のステータスで終了し、次のような出力を表示します:kubectl: FAILED sha256sum: WARNING: 1 computed checksum did NOT match
備考:
同じバージョンのバイナリとチェックサムをダウンロードしてください。 -
kubectlをインストールしてください
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
備考:
ターゲットシステムにルートアクセスを持っていない場合でも、
~/.local/bin
ディレクトリにkubectlをインストールできます:chmod +x kubectl mkdir -p ~/.local/bin mv ./kubectl ~/.local/bin/kubectl # そして ~/.local/bin を $PATH の末尾 (または先頭) に追加します
-
インストールしたバージョンが最新であることを確認してください:
kubectl version --client
または、バージョンの詳細を表示するために次を使用します:
kubectl version --client --output=yaml
ネイティブなパッケージマネージャーを使用してインストールする
-
apt
のパッケージ一覧を更新し、Kubernetesのapt
リポジトリを利用するのに必要なパッケージをインストールしてください:sudo apt-get update # apt-transport-httpsはダミーパッケージの可能性があります。その場合、そのパッケージはスキップできます sudo apt-get install -y apt-transport-https ca-certificates curl gnupg
-
Kubernetesパッケージリポジトリの公開署名キーをダウンロードしてください。 すべてのリポジトリに同じ署名キーが使用されるため、URL内のバージョンは無視できます:
# `/etc/apt/keyrings`フォルダーが存在しない場合は、curlコマンドの前に作成する必要があります。下記の備考を参照してください。 # sudo mkdir -p -m 755 /etc/apt/keyrings curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.32/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg sudo chmod 644 /etc/apt/keyrings/kubernetes-apt-keyring.gpg # 特権のないAPTプログラムがこのkeyringを読めるようにします
備考:
Debian 12とUbuntu 22.04より古いリリースでは、/etc/apt/keyrings
フォルダーは既定では存在しないため、curlコマンドの前に作成する必要があります。-
適切なKubernetesの
apt
リポジトリを追加してください。 v1.32とは異なるKubernetesバージョンを利用したい場合は、以下のコマンドのv1.32を目的のマイナーバージョンに置き換えてください:# これにより、/etc/apt/sources.list.d/kubernetes.listにある既存の設定が上書きされます echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.32/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list sudo chmod 644 /etc/apt/sources.list.d/kubernetes.list # command-not-foundのようなツールが正しく動作するようにします
備考:
kubectlを他のマイナーリリースにアップグレードするためには、apt-get update
とapt-get upgrade
を実行する前に、/etc/apt/sources.list.d/kubernetes.list
の中のバージョンを上げる必要があります。
この手順についてはChanging The Kubernetes Package Repositoryに詳細が記載されています。-
apt
のパッケージインデックスを更新し、kubectlをインストールしてください:sudo apt-get update sudo apt-get install -y kubectl
-
Kubernetesの
yum
リポジトリを追加してください。 v1.32とは異なるKubernetesバージョンを利用したい場合は、以下のコマンドのv1.32を目的のマイナーバージョンに置き換えてください:# これにより、/etc/yum.repos.d/kubernetes.repoにある既存の設定が上書きされます cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://pkgs.k8s.io/core:/stable:/v1.32/rpm/ enabled=1 gpgcheck=1 gpgkey=https://pkgs.k8s.io/core:/stable:/v1.32/rpm/repodata/repomd.xml.key EOF
備考:
kubectlを他のマイナーリリースにアップグレードするためには、yum update
を実行する前に、/etc/yum.repos.d/kubernetes.repo
の中のバージョンを上げる必要があります。
この手順についてはChanging The Kubernetes Package Repositoryに詳細が記載されています。-
yum
を使用してkubectlをインストールしてください:sudo yum install -y kubectl
-
Kubernetesの
zypper
リポジトリを追加してください。 v1.32とは異なるKubernetesバージョンを利用したい場合は、以下のコマンドのv1.32を目的のマイナーバージョンに置き換えてください。# これにより、/etc/zypp/repos.d/kubernetes.repoにある既存の設定が上書きされます cat <<EOF | sudo tee /etc/zypp/repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://pkgs.k8s.io/core:/stable:/v1.32/rpm/ enabled=1 gpgcheck=1 gpgkey=https://pkgs.k8s.io/core:/stable:/v1.32/rpm/repodata/repomd.xml.key EOF
備考:
kubectlを他のマイナーリリースにアップグレードするためには、zypper update
を実行する前に、/etc/zypp/repos.d/kubernetes.repo
の中のバージョンを上げる必要があります。
この手順についてはChanging The Kubernetes Package Repositoryに詳細が記載されています。-
zypper
を使用してkubectlをインストールしてください:sudo zypper install -y kubectl
他のパッケージマネージャーを使用してインストールする
kubectlの設定を検証する
kubectlがKubernetesクラスターを探索し接続するために、kubeconfigファイルが必要です。
これは、kube-up.shによりクラスターを作成した際や、Minikubeクラスターを正常にデプロイした際に自動生成されます。
デフォルトでは、kubectlの設定は~/.kube/config
に格納されています。
クラスターの状態を取得し、kubectlが適切に設定されていることを確認してください:
kubectl cluster-info
URLのレスポンスが表示されている場合は、kubectlはクラスターに接続するよう正しく設定されています。
以下のようなメッセージが表示されている場合は、kubectlは正しく設定されていないか、Kubernetesクラスターに接続できていません。
The connection to the server <server-name:port> was refused - did you specify the right host or port?
たとえば、ラップトップ上(ローカル環境)でKubernetesクラスターを起動するような場合、Minikubeなどのツールを最初にインストールしてから、上記のコマンドを再実行する必要があります。
kubectl cluster-info
がURLレスポンスを返したにもかかわらずクラスターにアクセスできない場合は、次のコマンドで設定が正しいことを確認してください:
kubectl cluster-info dump
エラーメッセージ'No Auth Provider Found'のトラブルシューティング
Kubernetes 1.26にて、kubectlは以下のクラウドプロバイダーが提供するマネージドKubernetesのビルトイン認証を削除しました。 これらのプロバイダーは、クラウド固有の認証を提供するkubectlプラグインをリリースしています。 手順については以下のプロバイダーのドキュメントを参照してください:
- Azure AKS: kubelogin plugin
- Google Kubernetes Engine: gke-gcloud-auth-plugin
(この変更とは関係なく、他の理由で同じエラーメッセージが表示される可能性もあります。)
オプションのkubectlの設定とプラグイン
シェルの自動補完を有効にする
kubectlはBash、Zsh、Fish、PowerShellの自動補完を提供しています。 これにより、入力を大幅に削減することができます。
以下にBash、Fish、Zshの自動補完の設定手順を示します。
はじめに
Bashにおけるkubectlの補完スクリプトはkubectl completion bash
コマンドで生成できます。
補完スクリプトをシェル内に読み込ませることでkubectlの自動補完が有効になります。
ただし、補完スクリプトはbash-completionに依存しているため、事前にインストールしておく必要があります(type _init_completion
を実行することで、bash-completionがすでにインストールされていることを確認できます)。
bash-completionをインストールする
bash-completionは多くのパッケージマネージャーから提供されています(こちらを参照してください)。
apt-get install bash-completion
またはyum install bash-completion
などでインストールできます。
上記のコマンドでbash-completionの主要スクリプトである/usr/share/bash-completion/bash_completion
が作成されます。
パッケージマネージャーによっては、このファイルを~/.bashrc
にて手動で読み込ませる必要があります。
これを調べるには、シェルをリロードしてからtype _init_completion
を実行してください。
コマンドが成功していればすでに設定済みです。そうでなければ、~/.bashrc
ファイルに以下を追記してください:
source /usr/share/bash-completion/bash_completion
シェルをリロードし、type _init_completion
を実行してbash-completionが正しくインストールされていることを検証してください。
kubectlの自動補完を有効にする
Bash
次に、kubectl補完スクリプトがすべてのシェルセッションで読み込まれるように設定する必要があります。 これを行うには2つの方法があります:
echo 'source <(kubectl completion bash)' >>~/.bashrc
kubectl completion bash | sudo tee /etc/bash_completion.d/kubectl > /dev/null
sudo chmod a+r /etc/bash_completion.d/kubectl
kubectlにエイリアスを張っている場合は、エイリアスでも動作するようにシェルの補完を拡張することができます:
echo 'alias k=kubectl' >>~/.bashrc
echo 'complete -o default -F __start_kubectl k' >>~/.bashrc
備考:
bash-completionは/etc/bash_completion.d
内のすべての補完スクリプトを読み込みます。どちらも同様の手法です。 シェルをリロードしたあとに、kubectlの自動補完が機能するはずです。 シェルの現在のセッションでbashの自動補完を有効にするには、~/.bashrcを読み込みます:
source ~/.bashrc
備考:
Fishに対する自動補完はkubectl 1.23以降が必要です。Fishにおけるkubectlの補完スクリプトはkubectl completion fish
コマンドで生成できます。
補完スクリプトをシェル内に読み込ませることでkubectlの自動補完が有効になります。
すべてのシェルセッションで使用するには、~/.config/fish/config.fish
に以下を追記してください:
kubectl completion fish | source
シェルをリロードしたあとに、kubectlの自動補完が機能するはずです。
Zshにおけるkubectlの補完スクリプトはkubectl completion zsh
コマンドで生成できます。
補完スクリプトをシェル内に読み込ませることでkubectlの自動補完が有効になります。
すべてのシェルセッションで使用するには、~/.zshrc
に以下を追記してください:
source <(kubectl completion zsh)
kubectlにエイリアスを張っている場合でも、kubectlの自動補完は自動的に機能します。
シェルをリロードしたあとに、kubectlの自動補完が機能するはずです。
2: command not found: compdef
のようなエラーが出力された場合は、以下を~/.zshrc
の先頭に追記してください:
autoload -Uz compinit
compinit
kubectl convert
プラグインをインストールする
異なるAPIバージョン間でマニフェストを変換できる、Kubernetesコマンドラインツールkubectl
のプラグインです。
これは特に、新しいKubernetesのリリースで、非推奨ではないAPIバージョンにマニフェストを移行する場合に役に立ちます。
詳細については非推奨ではないAPIへの移行を参照してください。
-
次のコマンドを使用して最新リリースをダウンロードしてください:
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl-convert"
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/arm64/kubectl-convert"
-
バイナリを検証してください(オプション)
kubectl-convertのチェックサムファイルをダウンロードします:
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl-convert.sha256"
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/arm64/kubectl-convert.sha256"
チェックサムファイルに対してkubectl-convertバイナリを検証します:
echo "$(cat kubectl-convert.sha256) kubectl-convert" | sha256sum --check
正しければ、出力は次のようになります:
kubectl-convert: OK
チェックに失敗すると、
sha256
は0以外のステータスで終了し、次のような出力を表示します:kubectl-convert: FAILED sha256sum: WARNING: 1 computed checksum did NOT match
備考:
同じバージョンのバイナリとチェックサムをダウンロードしてください。 -
kubectl-convertをインストールしてください
sudo install -o root -g root -m 0755 kubectl-convert /usr/local/bin/kubectl-convert
-
プラグインが正常にインストールできたことを確認してください
kubectl convert --help
何もエラーが表示されない場合は、プラグインが正常にインストールされたことを示しています。
-
プラグインのインストール後、インストールファイルを削除してください:
rm kubectl-convert kubectl-convert.sha256
次の項目
- Minikubeをインストールする
- クラスターの作成に関する詳細をスタートガイドで確認する。
- アプリケーションを起動して公開する方法を学ぶ。
- あなたが作成していないクラスターにアクセスする必要がある場合は、クラスターアクセスドキュメントの共有を参照してください。
- kubectlリファレンスドキュメントを参照する