kubectlのインストールおよびセットアップ
Kubernetesのコマンドラインツールであるkubectlを使用して、Kubernetesクラスターに対してコマンドを実行することができます。kubectlによってアプリケーションのデプロイや、クラスターのリソース管理、検査およびログの表示を行うことができます。kubectlの操作に関する完全なリストは、kubectlの概要を参照してください。
始める前に
kubectlのバージョンは、クラスターのマイナーバージョンとの差分が1つ以内でなければなりません。たとえば、クライアントがv1.2であれば、v1.1、v1.2、v1.3のマスターで動作するはずです。最新バージョンのkubectlを使うことで、不測の事態を避けることができるでしょう。
Linuxへkubectlをインストールする
curlを使用してLinuxへkubectlのバイナリをインストールする
-
次のコマンドにより、最新リリースをダウンロードしてください:
curl -LO "https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl"
特定のバージョンをダウンロードする場合、コマンドの
$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)
の部分を特定のバージョンに書き換えてください。たとえば、Linuxへv1.25.0のバージョンをダウンロードするには、次のコマンドを入力します:
curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.25.0/bin/linux/amd64/kubectl
-
kubectlバイナリを実行可能にしてください。
chmod +x ./kubectl
-
バイナリをPATHの中に移動させてください。
sudo mv ./kubectl /usr/local/bin/kubectl
-
インストールしたバージョンが最新であることを確認してください:
kubectl version --client
ネイティブなパッケージマネージャーを使用してインストールする
sudo apt-get update && sudo apt-get install -y apt-transport-https gnupg2
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee -a /etc/apt/sources.list.d/kubernetes.list
sudo apt-get update
sudo apt-get install -y kubectl
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOF
yum install -y kubectl
他のパッケージマネージャーを使用してインストールする
macOSへkubectlをインストールする
curlを使用してmacOSへkubectlのバイナリをインストールする
-
最新リリースをダウンロードしてください:
curl -LO "https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/darwin/amd64/kubectl"
特定のバージョンをダウンロードする場合、コマンドの
$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)
の部分を特定のバージョンに書き換えてください。たとえば、macOSへv1.25.0のバージョンをダウンロードするには、次のコマンドを入力します:
curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.25.0/bin/darwin/amd64/kubectl
-
kubectlバイナリを実行可能にしてください。
chmod +x ./kubectl
-
バイナリをPATHの中に移動させてください。
sudo mv ./kubectl /usr/local/bin/kubectl
-
インストールしたバージョンが最新であることを確認してください:
kubectl version --client
Homebrewを使用してmacOSへインストールする
macOSでHomebrewパッケージマネージャーを使用していれば、Homebrewでkubectlをインストールすることもできます。
-
インストールコマンドを実行してください:
brew install kubectl
または
brew install kubernetes-cli
-
インストールしたバージョンが最新であることを確認してください:
kubectl version --client
MacPortsを使用してmacOSへインストールする
macOSでMacPortsパッケージマネージャーを使用していれば、MacPortsでkubectlをインストールすることもできます。
-
インストールコマンドを実行してください:
sudo port selfupdate sudo port install kubectl
-
インストールしたバージョンが最新であることを確認してください:
kubectl version --client
Windowsへkubectlをインストールする
curlを使用してWindowsへkubectlのバイナリをインストールする
-
こちらのリンクから、最新リリースであるv1.25.0をダウンロードしてください。
または、
curl
をインストールされていれば、次のコマンドも使用できます:curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.25.0/bin/windows/amd64/kubectl.exe
最新の安定版を入手する際は(たとえばスクリプトで使用する場合)、https://storage.googleapis.com/kubernetes-release/release/stable.txtを参照してください。
-
バイナリをPATHに追加します
-
kubectl
のバージョンがダウンロードしたものと同じであることを確認してください:kubectl version --client
kubectl
をPATHに追加します。Docker Desktopをすでにインストールしている場合、Docker Desktopインストーラーによって追加されたPATHの前に追加するか、Docker Desktopのkubectl
を削除してください。
PSGalleryからPowerShellを使用してインストールする
WindowsでPowershell Galleryパッケージマネージャーを使用していれば、Powershellでkubectlをインストールおよびアップデートすることもできます。
-
インストールコマンドを実行してください(必ず
DownloadLocation
を指定してください):Install-Script -Name 'install-kubectl' -Scope CurrentUser -Force install-kubectl.ps1 [-DownloadLocation <path>]
備考:DownloadLocation
を指定しない場合、kubectl
はユーザのTempディレクトリにインストールされます。インストーラーは
$HOME/.kube
を作成し、設定ファイルを作成します。 -
インストールしたバージョンが最新であることを確認してください:
kubectl version --client
ChocolateyまたはScoopを使用してWindowsへインストールする
-
Windowsへkubectlをインストールするために、ChocolateyパッケージマネージャーやScoopコマンドラインインストーラーを使用することもできます。
choco install kubernetes-cli
scoop install kubectl
-
インストールしたバージョンが最新であることを確認してください:
kubectl version --client
-
ホームディレクトリへ移動してください:
# cmd.exeを使用している場合は cd %USERPROFILE% を実行してください。 cd ~
-
.kube
ディレクトリを作成してください:mkdir .kube
-
作成した
.kube
ディレクトリへ移動してください:cd .kube
-
リモートのKubernetesクラスターを使うために、kubectlを設定してください:
New-Item config -type file
Google Cloud SDKの一部としてダウンロードする
Google Cloud SDKの一部として、kubectlをインストールすることもできます。
-
Google Cloud SDKをインストールしてください。
-
kubectl
のインストールコマンドを実行してください:gcloud components install kubectl
-
インストールしたバージョンが最新であることを確認してください:
kubectl version --client
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
kubectlの任意の設定
シェルの自動補完を有効にする
kubectlはBashおよびZshの自動補完を提供しています。これにより、入力を大幅に削減することができます。
以下にBash(LinuxとmacOSの違いも含む)およびZshの自動補完の設定手順を示します。
はじめに
Bashにおけるkubectlの補完スクリプトはkubectl completion bash
コマンドで生成できます。シェル内で補完スクリプトをsourceすることで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
にて手動でsourceする必要があります。
これを調べるには、シェルをリロードしてからtype _init_completion
を実行してください。コマンドが成功していればすでに設定済みです。そうでなければ、~/.bashrc
に以下を追記してください:
source /usr/share/bash-completion/bash_completion
シェルをリロードし、type _init_completion
を実行してbash-completionが正しくインストールされていることを検証してください。
kubectlの自動補完を有効にする
すべてのシェルセッションにてkubectlの補完スクリプトをsourceできるようにしなければなりません。これを行うには2つの方法があります:
-
補完スクリプトを
~/.bashrc
内でsourceしてください:echo 'source <(kubectl completion bash)' >>~/.bashrc
-
補完スクリプトを
/etc/bash_completion.d
ディレクトリに追加してください:kubectl completion bash >/etc/bash_completion.d/kubectl
-
kubectlにエイリアスを張っている場合は、以下のようにシェルの補完を拡張して使うことができます:
echo 'alias k=kubectl' >>~/.bashrc
echo 'complete -F __start_kubectl k' >>~/.bashrc
/etc/bash_completion.d
内のすべての補完スクリプトをsourceします。
どちらも同様の手法です。シェルをリロードしたあとに、kubectlの自動補完が機能するはずです。
はじめに
Bashにおけるkubectlの補完スクリプトはkubectl completion bash
コマンドで生成できます。シェル内で補完スクリプトをsourceすることでkubectlの自動補完が有効になります。
ただし、補完スクリプトはbash-completionに依存しているため、事前にインストールする必要があります。
bashのアップグレード
ここではBash 4.1以降の使用を前提としています。Bashのバージョンは下記のコマンドで調べることができます。
echo $BASH_VERSION
バージョンが古い場合、Homebrewを使用してインストールもしくはアップグレードできます。
brew install bash
シェルをリロードし、希望するバージョンを使用していることを確認してください。
echo $BASH_VERSION $SHELL
Homebrewは通常、/usr/local/bin/bash
にインストールします。
bash-completionをインストールする
type _init_completion
を実行することで、bash-completionがすでにインストールされていることを確認できます。ない場合は、Homebrewを使用してインストールすることもできます:
brew install bash-completion@2
このコマンドの出力で示されたように、~/.bash_profile
に以下を追記してください:
export BASH_COMPLETION_COMPAT_DIR="/usr/local/etc/bash_completion.d"
[[ -r "/usr/local/etc/profile.d/bash_completion.sh" ]] && . "/usr/local/etc/profile.d/bash_completion.sh"
シェルをリロードし、type _init_completion
を実行してbash-completion v2が正しくインストールされていることを検証してください。
kubectlの自動補完を有効にする
すべてのシェルセッションにてkubectlの補完スクリプトをsourceできるようにしなければなりません。これを行うには複数の方法があります:
-
補完スクリプトを
~/.bash_profile
内でsourceする:echo 'source <(kubectl completion bash)' >>~/.bash_profile
-
補完スクリプトを
/usr/local/etc/bash_completion.d
ディレクトリに追加する:kubectl completion bash >/usr/local/etc/bash_completion.d/kubectl
-
kubectlにエイリアスを張っている場合は、以下のようにシェルの補完を拡張して使うことができます:
echo 'alias k=kubectl' >>~/.bash_profile echo 'complete -F __start_kubectl k' >>~/.bash_profile
-
kubectlをHomwbrewでインストールした場合(前述のとおり)、kubectlの補完スクリプトはすでに
/usr/local/etc/bash_completion.d/kubectl
に格納されているでしょう。この場合、なにも操作する必要はありません。備考: Homebrewでインストールしたbash-completion v2はBASH_COMPLETION_COMPAT_DIR
ディレクトリ内のすべてのファイルをsourceするため、後者の2つの方法が機能します。どの場合でも、シェルをリロードしたあとに、kubectlの自動補完が機能するはずです。
Zshにおけるkubectlの補完スクリプトはkubectl completion zsh
コマンドで生成できます。シェル内で補完スクリプトをsourceすることでkubectlの自動補完が有効になります。
すべてのシェルセッションで使用するには、~/.zshrc
に以下を追記してください:
source <(kubectl completion zsh)
kubectlにエイリアスを張っている場合は、以下のようにシェルの補完を拡張して使うことができます:
echo 'alias k=kubectl' >>~/.zshrc
echo 'compdef __start_kubectl k' >>~/.zshrc
シェルをリロードしたあとに、kubectlの自動補完が機能するはずです。
complete:13: command not found: compdef
のようなエラーが出力された場合は、以下を~/.zshrc
の先頭に追記してください:
autoload -Uz compinit
compinit
次の項目
- Minikubeをインストールする
- クラスターの作成に関する詳細をスタートガイドで確認する
- アプリケーションを起動して公開する方法を学ぶ
- あなたが作成していないクラスターにアクセスする必要がある場合は、クラスターアクセスドキュメントの共有を参照してください
- kubectlリファレンスドキュメントを参照する