# Windows上でのkubectlのインストールおよびセットアップ

LLMS index: [llms.txt](/llms.txt)

---

## 始める前に

kubectlのバージョンは、クラスターのマイナーバージョンとの差分が1つ以内でなければなりません。
たとえば、クライアントがv1.36であれば、v1.35、v1.36、v1.37のコントロールプレーンと通信できます。
最新の互換性のあるバージョンのkubectlを使うことで、不測の事態を避けることができるでしょう。

## Windowsへkubectlをインストールする

Windowsへkubectlをインストールするには、次の方法があります:

- [curlを使用してWindowsへkubectlのバイナリをインストールする](#install-kubectl-binary-with-curl-on-windows)
- [Chocolatey、Scoopまたはwingetを使用してWindowsへインストールする](#install-nonstandard-package-tools)

### curlを使用してWindowsへkubectlのバイナリをインストールする{#install-kubectl-binary-with-curl-on-windows}

1. 最新の1.36のパッチリリースをダウンロードしてください:
   [kubectl 1.36.0](https://dl.k8s.io/release/v1.36.0/bin/windows/amd64/kubectl.exe)。

   または、`curl`がインストールされていれば、次のコマンドも使用できます:

   ```powershell
   curl.exe -LO "https://dl.k8s.io/release/v1.36.0/bin/windows/amd64/kubectl.exe"
   ```

   
<div class="alert alert-info" role="note"><h4 class="alert-heading">備考:</h4>最新の安定版を入手する際は(たとえばスクリプトで使用する場合)、<a href="https://dl.k8s.io/release/stable.txt">https://dl.k8s.io/release/stable.txt</a>を参照してください。</div>


1. バイナリを検証してください(オプション)

   `kubectl`のチェックサムファイルをダウンロードします:

   ```powershell
   curl.exe -LO "https://dl.k8s.io/v1.36.0/bin/windows/amd64/kubectl.exe.sha256"
   ```

   チェックサムファイルに対して`kubectl`バイナリを検証します:

   - コマンドプロンプトを使用して、`CertUtil`の出力とダウンロードしたチェックサムファイルを手動で比較します:

     ```cmd
     CertUtil -hashfile kubectl.exe SHA256
     type kubectl.exe.sha256
     ```

   - PowerShellにて`-eq`オペレーターを使用して自動で検証を行い、`True`または`False`で結果を取得します:

     ```powershell
      $(Get-FileHash -Algorithm SHA256 .\kubectl.exe).Hash -eq $(Get-Content .\kubectl.exe.sha256)
     ```

1. `kubectl`バイナリのフォルダーを`PATH`環境変数に追加します。

1. `kubectl`のバージョンがダウンロードしたものと同じであることを確認してください:

   ```cmd
   kubectl version --client
   ```
   
   または、バージョンの詳細を表示するために次を使用します:

   ```cmd
   kubectl version --client --output=yaml
   ```




<div class="alert alert-info" role="note"><h4 class="alert-heading">備考:</h4><a href="https://docs.docker.com/docker-for-windows/#kubernetes">Docker Desktop for Windows</a>は、それ自身のバージョンの<code>kubectl</code>を<code>PATH</code>に追加します。
Docker Desktopをすでにインストールしている場合、Docker Desktopインストーラーによって追加された<code>PATH</code>の前に追加するか、Docker Desktopの<code>kubectl</code>を削除してください。</div>


### Chocolatey、Scoopまたはwingetを使用してWindowsへインストールする{#install-nonstandard-package-tools}

1. Windowsへkubectlをインストールするために、[Chocolatey](https://chocolatey.org)パッケージマネージャーや[Scoop](https://scoop.sh)コマンドラインインストーラー、[winget](https://learn.microsoft.com/en-us/windows/package-manager/winget/)パッケージマネージャーを使用することもできます。

   <ul class="nav nav-tabs" id="tabs-kubectl-win-install" role="tablist"><li class="nav-item"><a data-bs-toggle="tab" class="nav-link active" href="#tabs-kubectl-win-install-0" role="tab" aria-controls="tabs-kubectl-win-install-0" aria-selected="true">choco</a></li>
	  
		<li class="nav-item"><a data-bs-toggle="tab" class="nav-link" href="#tabs-kubectl-win-install-1" role="tab" aria-controls="tabs-kubectl-win-install-1">scoop</a></li>
		<li class="nav-item"><a data-bs-toggle="tab" class="nav-link" href="#tabs-kubectl-win-install-2" role="tab" aria-controls="tabs-kubectl-win-install-2">winget</a></li></ul>

<div class="tab-content" id="tabs-kubectl-win-install-content"><div class="tab-body tab-pane fadeshow active"
        id="tabs-kubectl-win-install-0" role="tabpanel" aria-labelledby="tabs-kubectl-win-install-0-tab" tabindex="kubectl-win-install"><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-powershell" data-lang="powershell"><span class="line"><span class="cl"><span class="n">choco</span> <span class="n">install</span> <span class="nb">kubernetes-cli</span>
</span></span></code></pre></div></div><div class="tab-body tab-pane fade"
        id="tabs-kubectl-win-install-1" role="tabpanel" aria-labelledby="tabs-kubectl-win-install-1-tab" tabindex="kubectl-win-install"><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-powershell" data-lang="powershell"><span class="line"><span class="cl"><span class="n">scoop</span> <span class="n">install</span> <span class="n">kubectl</span>
</span></span></code></pre></div></div><div class="tab-body tab-pane fade"
        id="tabs-kubectl-win-install-2" role="tabpanel" aria-labelledby="tabs-kubectl-win-install-2-tab" tabindex="kubectl-win-install"><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-powershell" data-lang="powershell"><span class="line"><span class="cl"><span class="n">winget</span> <span class="n">install</span> <span class="n">-e</span> <span class="p">-</span><span class="n">-id</span> <span class="n">Kubernetes</span><span class="p">.</span><span class="py">kubectl</span>
</span></span></code></pre></div></div></div>


1. インストールしたバージョンが最新であることを確認してください:

   ```powershell
   kubectl version --client
   ```

1. ホームディレクトリへ移動してください:

   ```powershell
   # cmd.exeを使用している場合はcd %USERPROFILE%を実行してください。
   cd ~
   ```

1. `.kube`ディレクトリを作成してください:

   ```powershell
   mkdir .kube
   ```

1. 作成した`.kube`ディレクトリへ移動してください:

   ```powershell
   cd .kube
   ```

1. リモートのKubernetesクラスターを使うために、kubectlを設定してください:

   ```powershell
   New-Item config -type file
   ```


<div class="alert alert-info" role="note"><h4 class="alert-heading">備考:</h4>Notepadなどの選択したテキストエディターから設定ファイルを編集してください。</div>


## kubectlの設定を検証する


	<p>kubectlがKubernetesクラスターを探索し接続するために、<a href="/ja/docs/concepts/configuration/organize-cluster-access-kubeconfig/">kubeconfigファイル</a>が必要です。
これは、<a href="https://github.com/kubernetes/kubernetes/blob/master/cluster/kube-up.sh">kube-up.sh</a>によりクラスターを作成した際や、Minikubeクラスターを正常にデプロイした際に自動生成されます。
デフォルトでは、kubectlの設定は<code>~/.kube/config</code>に格納されています。</p>
<p>クラスターの状態を取得し、kubectlが適切に設定されていることを確認してください:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">kubectl cluster-info
</span></span></code></pre></div><p>URLのレスポンスが表示されている場合は、kubectlはクラスターに接続するよう正しく設定されています。</p>
<p>以下のようなメッセージが表示されている場合は、kubectlは正しく設定されていないか、Kubernetesクラスターに接続できていません。</p>
<pre tabindex="0"><code>The connection to the server &lt;server-name:port&gt; was refused - did you specify the right host or port?
</code></pre><p>たとえば、ラップトップ上(ローカル環境)でKubernetesクラスターを起動するような場合、<a href="https://minikube.sigs.k8s.io/docs/start/">Minikube</a>などのツールを最初にインストールしてから、上記のコマンドを再実行する必要があります。</p>
<p><code>kubectl cluster-info</code>がURLレスポンスを返したにもかかわらずクラスターにアクセスできない場合は、次のコマンドで設定が正しいことを確認してください:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">kubectl cluster-info dump
</span></span></code></pre></div><h3 id="no-auth-provider-found">エラーメッセージ'No Auth Provider Found'のトラブルシューティング<a class="td-heading-self-link" href="#no-auth-provider-found" aria-label="Heading self-link"></a></h3>
<p>Kubernetes 1.26にて、kubectlは以下のクラウドプロバイダーが提供するマネージドKubernetesのビルトイン認証を削除しました。
これらのプロバイダーは、クラウド固有の認証を提供するkubectlプラグインをリリースしています。
手順については以下のプロバイダーのドキュメントを参照してください:</p>
<ul>
<li>Azure AKS: <a href="https://azure.github.io/kubelogin/">kubelogin plugin</a></li>
<li>Google Kubernetes Engine: <a href="https://cloud.google.com/kubernetes-engine/docs/how-to/cluster-access-for-kubectl?hl=ja#install_plugin">gke-gcloud-auth-plugin</a></li>
</ul>
<p>(この変更とは関係なく、他の理由で同じエラーメッセージが表示される可能性もあります。)</p>


## オプションのkubectlの設定とプラグイン

### シェルの自動補完を有効にする

kubectlはBash、Zsh、Fish、PowerShellの自動補完を提供しています。
これにより、入力を大幅に削減することができます。

以下にPowerShellの自動補完の設定手順を示します。


	<p>PowerShellにおけるkubectlの補完スクリプトは<code>kubectl completion powershell</code>コマンドで生成できます。</p>
<p>すべてのシェルセッションでこれを行うには、次の行を<code>$PROFILE</code>ファイルに追加します。</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-powershell" data-lang="powershell"><span class="line"><span class="cl"><span class="n">kubectl</span> <span class="n">completion</span> <span class="n">powershell</span> <span class="p">|</span> <span class="nb">Out-String</span> <span class="p">|</span> <span class="nb">Invoke-Expression</span>
</span></span></code></pre></div><p>このコマンドは、PowerShellを起動する度に自動補完のスクリプトを再生成します。
生成されたスクリプトを直接<code>$PROFILE</code>ファイルに追加することもできます。</p>
<p>生成されたスクリプトを<code>$PROFILE</code>ファイルに追加するためには、PowerShellのプロンプトで次の行を実行します:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-powershell" data-lang="powershell"><span class="line"><span class="cl"><span class="n">kubectl</span> <span class="n">completion</span> <span class="n">powershell</span> <span class="p">&gt;&gt;</span> <span class="nv">$PROFILE</span>
</span></span></code></pre></div><p>シェルをリロードした後、kubectlの自動補完が機能します。</p>


### `kubectl convert`プラグインをインストールする


	<p>異なるAPIバージョン間でマニフェストを変換できる、Kubernetesコマンドラインツール<code>kubectl</code>のプラグインです。
これは特に、新しいKubernetesのリリースで、非推奨ではないAPIバージョンにマニフェストを移行する場合に役に立ちます。
詳細については<a href="/docs/reference/using-api/deprecation-guide/#migrate-to-non-deprecated-apis">非推奨ではないAPIへの移行</a>を参照してください。</p>


1. 次のコマンドを使用して最新リリースをダウンロードしてください:

   ```powershell
   curl.exe -LO "https://dl.k8s.io/release/v1.36.0/bin/windows/amd64/kubectl-convert.exe"
   ```

1. バイナリを検証してください(オプション)。

   `kubectl-convert`のチェックサムファイルをダウンロードします:

   ```powershell
   curl.exe -LO "https://dl.k8s.io/v1.36.0/bin/windows/amd64/kubectl-convert.exe.sha256"
   ```

   チェックサムファイルに対して`kubectl-convert`バイナリを検証します:

   - コマンドプロンプトを使用して、`CertUtil`の出力とダウンロードしたチェックサムファイルを手動で比較します:

     ```cmd
     CertUtil -hashfile kubectl-convert.exe SHA256
     type kubectl-convert.exe.sha256
     ```

   - PowerShellにて`-eq`オペレーターを使用して自動で検証を行い、`True`または`False`で結果を取得します:

     ```powershell
     $($(CertUtil -hashfile .\kubectl-convert.exe SHA256)[1] -replace " ", "") -eq $(type .\kubectl-convert.exe.sha256)
     ```

1. `kubectl-convert`バイナリのフォルダーを`PATH`環境変数に追加します。

1. プラグインが正常にインストールされたことを確認してください。

   ```shell
   kubectl convert --help
   ```

   何もエラーが表示されない場合は、プラグインが正常にインストールされたことを示しています。

1. プラグインのインストール後、インストールファイルを削除してください:

   ```powershell
   del kubectl-convert.exe
   del kubectl-convert.exe.sha256
   ```

## 次の項目


	<ul>
<li><a href="https://minikube.sigs.k8s.io/docs/start/">Minikubeをインストールする</a></li>
<li>クラスターの作成に関する詳細を<a href="/ja/docs/setup/">スタートガイド</a>で確認する。</li>
<li><a href="/ja/docs/tasks/access-application-cluster/service-access-application-cluster/">アプリケーションを起動して公開する方法を学ぶ。</a></li>
<li>あなたが作成していないクラスターにアクセスする必要がある場合は、<a href="/ja/docs/tasks/access-application-cluster/configure-access-multiple-clusters/">クラスターアクセスドキュメントの共有</a>を参照してください。</li>
<li><a href="/docs/reference/kubectl/kubectl/">kubectlリファレンスドキュメント</a>を参照する</li>
</ul>
