Windows上でのkubectlのインストールおよびセットアップ
始める前に
kubectlのバージョンは、クラスターのマイナーバージョンとの差分が1つ以内でなければなりません。 たとえば、クライアントがv1.31であれば、v1.30、v1.31、v1.32のコントロールプレーンと通信できます。 最新の互換性のあるバージョンのkubectlを使うことで、不測の事態を避けることができるでしょう。
Windowsへkubectlをインストールする
Windowsへkubectlをインストールするには、次の方法があります:
curlを使用してWindowsへkubectlのバイナリをインストールする
最新の1.31のパッチリリースをダウンロードしてください: kubectl 1.31.0。
または、
curl
がインストールされていれば、次のコマンドも使用できます:curl.exe -LO "https://dl.k8s.io/release/v1.31.0/bin/windows/amd64/kubectl.exe"
備考:
最新の安定版を入手する際は(たとえばスクリプトで使用する場合)、https://dl.k8s.io/release/stable.txtを参照してください。バイナリを検証してください(オプション)
kubectl
のチェックサムファイルをダウンロードします:curl.exe -LO "https://dl.k8s.io/v1.31.0/bin/windows/amd64/kubectl.exe.sha256"
チェックサムファイルに対して
kubectl
バイナリを検証します:コマンドプロンプトを使用して、
CertUtil
の出力とダウンロードしたチェックサムファイルを手動で比較します:CertUtil -hashfile kubectl.exe SHA256 type kubectl.exe.sha256
PowerShellにて
-eq
オペレーターを使用して自動で検証を行い、True
またはFalse
で結果を取得します:$(Get-FileHash -Algorithm SHA256 .\kubectl.exe).Hash -eq $(Get-Content .\kubectl.exe.sha256)
kubectl
バイナリのフォルダーをPATH
環境変数に追加します。kubectl
のバージョンがダウンロードしたものと同じであることを確認してください:kubectl version --client
または、バージョンの詳細を表示するために次を使用します:
kubectl version --client --output=yaml
備考:
Docker Desktop for Windowsは、それ自身のバージョンのkubectl
をPATH
に追加します。
Docker Desktopをすでにインストールしている場合、Docker Desktopインストーラーによって追加されたPATH
の前に追加するか、Docker Desktopのkubectl
を削除してください。Chocolatey、Scoopまたはwingetを使用してWindowsへインストールする
Windowsへkubectlをインストールするために、ChocolateyパッケージマネージャーやScoopコマンドラインインストーラー、wingetパッケージマネージャーを使用することもできます。
choco install kubernetes-cli
scoop install kubectl
winget install -e --id Kubernetes.kubectl
インストールしたバージョンが最新であることを確認してください:
kubectl version --client
ホームディレクトリへ移動してください:
# cmd.exeを使用している場合はcd %USERPROFILE%を実行してください。 cd ~
.kube
ディレクトリを作成してください:mkdir .kube
作成した
.kube
ディレクトリへ移動してください:cd .kube
リモートのKubernetesクラスターを使うために、kubectlを設定してください:
New-Item config -type file
備考:
Notepadなどの選択したテキストエディターから設定ファイルを編集してください。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の自動補完を提供しています。 これにより、入力を大幅に削減することができます。
以下にPowerShellの自動補完の設定手順を示します。
PowerShellにおけるkubectlの補完スクリプトはkubectl completion powershell
コマンドで生成できます。
すべてのシェルセッションでこれを行うには、次の行を$PROFILE
ファイルに追加します。
kubectl completion powershell | Out-String | Invoke-Expression
このコマンドは、PowerShellを起動する度に自動補完のスクリプトを再生成します。
生成されたスクリプトを直接$PROFILE
ファイルに追加することもできます。
生成されたスクリプトを$PROFILE
ファイルに追加するためには、PowerShellのプロンプトで次の行を実行します:
kubectl completion powershell >> $PROFILE
シェルをリロードした後、kubectlの自動補完が機能します。
kubectl convert
プラグインをインストールする
異なるAPIバージョン間でマニフェストを変換できる、Kubernetesコマンドラインツールkubectl
のプラグインです。
これは特に、新しいKubernetesのリリースで、非推奨ではないAPIバージョンにマニフェストを移行する場合に役に立ちます。
詳細については非推奨ではないAPIへの移行を参照してください。
次のコマンドを使用して最新リリースをダウンロードしてください:
curl.exe -LO "https://dl.k8s.io/release/v1.31.0/bin/windows/amd64/kubectl-convert.exe"
バイナリを検証してください(オプション)。
kubectl-convert
のチェックサムファイルをダウンロードします:curl.exe -LO "https://dl.k8s.io/v1.31.0/bin/windows/amd64/kubectl-convert.exe.sha256"
チェックサムファイルに対して
kubectl-convert
バイナリを検証します:コマンドプロンプトを使用して、
CertUtil
の出力とダウンロードしたチェックサムファイルを手動で比較します:CertUtil -hashfile kubectl-convert.exe SHA256 type kubectl-convert.exe.sha256
PowerShellにて
-eq
オペレーターを使用して自動で検証を行い、True
またはFalse
で結果を取得します:$($(CertUtil -hashfile .\kubectl-convert.exe SHA256)[1] -replace " ", "") -eq $(type .\kubectl-convert.exe.sha256)
kubectl-convert
バイナリのフォルダーをPATH
環境変数に追加します。プラグインが正常にインストールされたことを確認してください。
kubectl convert --help
何もエラーが表示されない場合は、プラグインが正常にインストールされたことを示しています。
プラグインのインストール後、インストールファイルを削除してください:
del kubectl-convert.exe del kubectl-convert.exe.sha256
次の項目
- Minikubeをインストールする
- クラスターの作成に関する詳細をスタートガイドで確認する。
- アプリケーションを起動して公開する方法を学ぶ。
- あなたが作成していないクラスターにアクセスする必要がある場合は、クラスターアクセスドキュメントの共有を参照してください。
- kubectlリファレンスドキュメントを参照する