--- title: kubectlのインストールおよびセットアップ content_template: templates/task weight: 10 card: name: tasks weight: 20 title: Install kubectl --- {{% capture overview %}} Kubernetesのコマンドラインツールである[kubectl](/docs/user-guide/kubectl/)を使用して、Kubernetesクラスターに対してコマンドを実行することができます。kubectlによってアプリケーションのデプロイや、クラスターのリソース管理および検査を行うことができます。kubectlの操作に関する完全なリストは、[Overview of kubectl](/docs/reference/kubectl/overview/)を参照してください。 {{% /capture %}} {{% capture prerequisites %}} kubectlのバージョンは、クラスターのマイナーバージョンとの差分が1つ以内でなければなりません。たとえば、クライアントがv1.2であれば、v1.1、v1.2、v1.3のマスターで動作するはずです。最新バージョンのkubectlを使うことで、不測の事態を避けることができるでしょう。 {{% /capture %}} {{% capture steps %}} ## Linuxへkubectlをインストールする {#install-kubectl-on-linux} ### curlを使用してLinuxへkubectlのバイナリをインストールする 1. 次のコマンドにより、最新リリースをダウンロードしてください: ``` 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へ{{< param "fullversion" >}}のバージョンをダウンロードするには、次のコマンドを入力します: ``` curl -LO https://storage.googleapis.com/kubernetes-release/release/{{< param "fullversion" >}}/bin/linux/amd64/kubectl ``` 2. kubectlバイナリを実行可能にしてください。 ``` chmod +x ./kubectl ``` 3. バイナリをPATHの中に移動させてください。 ``` sudo mv ./kubectl /usr/local/bin/kubectl ``` 4. インストールしたバージョンが最新であることを確認してください: ``` kubectl version ``` ### ネイティブなパッケージマネージャーを使用してインストールする {{< tabs name="kubectl_install" >}} {{< tab name="Ubuntu、DebianまたはHypriotOS" codelang="bash" >}} sudo apt-get update && sudo apt-get install -y apt-transport-https 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 {{< /tab >}} {{< tab name="CentOS、RHELまたはFedora" codelang="bash" >}}cat < /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/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg EOF yum install -y kubectl {{< /tab >}} {{< /tabs >}} ### 他のパッケージマネージャーを使用してインストールする Ubuntuまたは[snap](https://snapcraft.io/docs/core/install)パッケージマネージャーをサポートする別のLinuxディストリビューションを使用している場合、kubectlは[snap](https://snapcraft.io/)アプリケーションとして使用できます。 Linuxで[Homebrew](https://docs.brew.sh/Homebrew-on-Linux)パッケージマネージャーを使用している場合は、kubectlを[インストール](https://docs.brew.sh/Homebrew-on-Linux#install)することが可能です。 {{< tabs name="other_kubectl_install" >}} {{< tab name="Snap" codelang="bash" >}} sudo snap install kubectl --classic kubectl version {{< /tab >}} {{< tab name="Homebrew" codelang="bash" >}} brew install kubectl kubectl version {{< /tab >}} {{< /tabs >}} ## macOSへkubectlをインストールする {#install-kubectl-on-macos} ### curlを使用してmacOSへkubectlのバイナリをインストールする 1. 最新リリースをダウンロードしてください: ``` 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へ{{< param "fullversion" >}}のバージョンをダウンロードするには、次のコマンドを入力します: ``` curl -LO https://storage.googleapis.com/kubernetes-release/release/{{< param "fullversion" >}}/bin/darwin/amd64/kubectl ``` 2. kubectlバイナリを実行可能にしてください。 ``` chmod +x ./kubectl ``` 3. バイナリをPATHの中に移動させてください。 ``` sudo mv ./kubectl /usr/local/bin/kubectl ``` 4. インストールしたバージョンが最新であることを確認してください: ``` kubectl version ``` ### Homebrewを使用してmacOSへインストールする macOSで[Homebrew](https://brew.sh/)パッケージマネージャーを使用していれば、Homebrewでkubectlをインストールすることもできます。 1. インストールコマンドを実行してください: ``` brew install kubectl ``` または ``` brew install kubernetes-cli ``` 2. インストールしたバージョンが最新であることを確認してください: ``` kubectl version ``` ### MacPortsを使用してmacOSへインストールする macOSで[MacPorts](https://macports.org/)パッケージマネージャーを使用していれば、MacPortsでkubectlをインストールすることもできます。 1. インストールコマンドを実行してください: ``` sudo port selfupdate sudo port install kubectl ``` 2. インストールしたバージョンが最新であることを確認してください: ``` kubectl version ``` ## Windowsへkubectlをインストールする {#install-kubectl-on-windows} ### curlを使用してWindowsへkubectlのバイナリをインストールする 1. [こちらのリンク](https://storage.googleapis.com/kubernetes-release/release/{{< param "fullversion" >}}/bin/windows/amd64/kubectl.exe)から、最新リリースである{{< param "fullversion" >}}をダウンロードしてください。 または、`curl`をインストールされていれば、次のコマンドも使用できます: ``` curl -LO https://storage.googleapis.com/kubernetes-release/release/{{< param "fullversion" >}}/bin/windows/amd64/kubectl.exe ``` 最新の安定版を入手する際は(たとえばスクリプトで使用する場合)、[https://storage.googleapis.com/kubernetes-release/release/stable.txt](https://storage.googleapis.com/kubernetes-release/release/stable.txt)を参照してください。 2. バイナリをPATHに追加します 3. `kubectl`のバージョンがダウンロードしたものと同じであることを確認してください: ``` kubectl version ``` {{< note >}} [Docker Desktop for Windows](https://docs.docker.com/docker-for-windows/#kubernetes)は、それ自身のバージョンの`kubectl`をPATHに追加します。Docker Desktopをすでにインストールしている場合、Docker Desktopインストーラーによって追加されたPATHの前に追加するか、Docker Desktopの`kubectl`を削除してください。 {{< /note >}} ### PSGalleryからPowerShellを使用してインストールする Windowsで[Powershell Gallery](https://www.powershellgallery.com/)パッケージマネージャーを使用していれば、Powershellでkubectlをインストールおよびアップデートすることもできます。 1. インストールコマンドを実行してください(必ず`DownloadLocation`を指定してください): ``` Install-Script -Name install-kubectl -Scope CurrentUser -Force install-kubectl.ps1 [-DownloadLocation ] ``` {{< note >}}`DownloadLocation`を指定しない場合、`kubectl`はユーザのTempディレクトリにインストールされます。{{< /note >}} インストーラーは`$HOME/.kube`を作成し、設定ファイルを作成します。 2. インストールしたバージョンが最新であることを確認してください: ``` kubectl version ``` {{< note >}}アップデートする際は、手順1に示した2つのコマンドを再実行してください。{{< /note >}} ### ChocolateyまたはScoopを使用してWindowsへインストールする Windowsへkubectlをインストールするために、[Chocolatey](https://chocolatey.org)パッケージマネージャーや[Scoop](https://scoop.sh)コマンドラインインストーラーを使用することもできます。 {{< tabs name="kubectl_win_install" >}} {{% tab name="choco" %}} choco install kubernetes-cli {{% /tab %}} {{% tab name="scoop" %}} scoop install kubectl {{% /tab %}} {{< /tabs >}} 2. インストールしたバージョンが最新であることを確認してください: ``` kubectl version ``` 3. ホームディレクトリへ移動してください: ``` cd %USERPROFILE% ``` 4. `.kube`ディレクトリを作成してください: ``` mkdir .kube ``` 5. 作成した`.kube`ディレクトリへ移動してください: ``` cd .kube ``` 6. リモートのKubernetesクラスターを使うために、kubectlを設定してください: ``` New-Item config -type file ``` {{< note >}}Notepadなどの選択したテキストエディターから設定ファイルを編集してください。{{< /note >}} ## Google Cloud SDKの一部としてダウンロードする Google Cloud SDKの一部として、kubectlをインストールすることもできます。 1. [Google Cloud SDK](https://cloud.google.com/sdk/)をインストールしてください。 2. `kubectl`のインストールコマンドを実行してください: ``` gcloud components install kubectl ``` 3. インストールしたバージョンが最新であることを確認してください: ``` kubectl version ``` ## kubectlの設定を検証する kubectlがKubernetesクラスターを探索し接続するために、[kubeconfigファイル](/docs/tasks/access-application-cluster/configure-access-multiple-clusters/)が必要になります。これは、[kube-up.sh](https://github.com/kubernetes/kubernetes/blob/master/cluster/kube-up.sh)によりクラスターを作成した際や、Minikubeクラスターを正常にデプロイした際に自動生成されます。デフォルトでは、kubectlの設定は`~/.kube/config`に格納されています。 クラスターの状態を取得し、kubectlが適切に設定されていることを確認してください: ```shell kubectl cluster-info ``` URLのレスポンスが表示されている場合は、kubectlはクラスターに接続するよう正しく設定されています。 以下のようなメッセージが表示されている場合は、kubectlは正しく設定されていないか、Kubernetesクラスターに接続できていません。 ```shell The connection to the server was refused - did you specify the right host or port? ``` たとえば、ラップトップ上(ローカル環境)でKubernetesクラスターを起動するような場合、Minikubeなどのツールを最初にインストールしてから、上記のコマンドを再実行する必要があります。 kubectl cluster-infoがURLレスポンスを返したにもかかわらずクラスターにアクセスできない場合は、次のコマンドで設定が正しいことを確認してください: ```shell kubectl cluster-info dump ``` ## kubectlの任意の設定 ### シェルの自動補完を有効にする kubectlはBashおよびZshの自動補完を提供しています。これにより、入力を大幅に削減することができます。 以下にBash(LinuxとmacOSの違いも含む)およびZshの自動補完の設定手順を示します。 {{< tabs name="kubectl_autocompletion" >}} {{% tab name="LinuxでのBash" %}} ### はじめに Bashにおけるkubectlの補完スクリプトは`kubectl completion bash`コマンドで生成できます。シェル内で補完スクリプトをsourceすることでkubectlの自動補完が有効になります。 ただし、補完スクリプトは[**bash-completion**](https://github.com/scop/bash-completion)に依存しているため、このソフトウェアを最初にインストールしておく必要があります(`type _init_completion`を実行することで、bash-completionがすでにインストールされていることを確認できます)。 ### bash-completionをインストールする bash-completionは多くのパッケージマネージャーから提供されています([こちら](https://github.com/scop/bash-completion#installation)を参照してください)。`apt-get install bash-completion`または`yum install bash-completion`などでインストールできます。 上記のコマンドでbash-completionの主要スクリプトである`/usr/share/bash-completion/bash_completion`が作成されます。パッケージマネージャーによっては、このファイルを`~/.bashrc`にて手動でsourceする必要があります。 これを調べるには、シェルをリロードしてから`type _init_completion`を実行してください。コマンドが成功していればすでに設定済みです。そうでなければ、`~/.bashrc`に以下を追記してください: ```shell source /usr/share/bash-completion/bash_completion ``` シェルをリロードし、`type _init_completion`を実行してbash-completionが正しくインストールされていることを検証してください。 ### kubectlの自動補完を有効にする すべてのシェルセッションにてkubectlの補完スクリプトをsourceできるようにしなければなりません。これを行うには2つの方法があります: - 補完スクリプトを`~/.bashrc`内でsourceしてください: ```shell echo 'source <(kubectl completion bash)' >>~/.bashrc ``` - 補完スクリプトを`/etc/bash_completion.d`ディレクトリに追加してください: ```shell kubectl completion bash >/etc/bash_completion.d/kubectl ``` - kubectlにエイリアスを張っている場合は、以下のようにシェルの補完を拡張して使うことができます: ```shell echo 'alias k=kubectl' >>~/.bashrc echo 'complete -F __start_kubectl k' >>~/.bashrc ``` {{< note >}} bash-completionは`/etc/bash_completion.d`内のすべての補完スクリプトをsourceします。 {{< /note >}} どちらも同様の手法です。シェルをリロードしたあとに、kubectlの自動補完が機能するはずです。 {{% /tab %}} {{% tab name="macOSでのBash" %}} ### はじめに Bashにおけるkubectlの補完スクリプトは`kubectl completion bash`コマンドで生成できます。シェル内で補完スクリプトをsourceすることでkubectlの自動補完が有効になります。 ただし、補完スクリプトは[**bash-completion**](https://github.com/scop/bash-completion)に依存しているため、事前にインストールする必要があります。 {{< warning>}} bash-completionにはv1とv2のバージョンがあり、v1はBash 3.2(macOSのデフォルト)用で、v2はBash 4.1以降向けです。kubectlの補完スクリプトはbash-completionのv1とBash 3.2では正しく**動作しません**。**bash-completion v2**および**Bash 4.1**が必要になります。したがって、macOSで正常にkubectlの補完を使用するには、Bash 4.1以降をインストールする必要があります([*手順*](https://itnext.io/upgrading-bash-on-macos-7138bd1066ba))。以下の手順では、Bash4.1以降(Bashのバージョンが4.1またはそれより新しいことを指します)を使用することを前提とします。 {{< /warning >}} ### bash-completionをインストールする {{< note >}} 前述のとおり、この手順ではBash 4.1以降であることが前提のため、bash-completion v2をインストールすることになります(これとは逆に、Bash 3.2およびbash-completion v1の場合ではkubectlの補完は動作しません)。 {{< /note >}} `type _init_completion`を実行することで、bash-completionがすでにインストールされていることを確認できます。ない場合は、Homebrewを使用してインストールすることもできます: ```shell brew install bash-completion@2 ``` このコマンドの出力で示されたように、`~/.bashrc`に以下を追記してください: ```shell 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できるようにしなければなりません。これを行うには複数の方法があります: - 補完スクリプトを`~/.bashrc`内でsourceする: ```shell echo 'source <(kubectl completion bash)' >>~/.bashrc ``` - 補完スクリプトを`/usr/local/etc/bash_completion.d`ディレクトリに追加する: ```shell kubectl completion bash >/usr/local/etc/bash_completion.d/kubectl ``` - kubectlにエイリアスを張っている場合は、以下のようにシェルの補完を拡張して使うことができます: ```shell echo 'alias k=kubectl' >>~/.bashrc echo 'complete -F __start_kubectl k' >>~/.bashrc ``` - kubectlをHomwbrewでインストールした場合([前述](#homebrewを使用してmacosへインストールする)のとおり)、kubectlの補完スクリプトはすでに`/usr/local/etc/bash_completion.d/kubectl`に格納されているでしょう。この場合、なにも操作する必要はありません。 {{< note >}} Homebrewでインストールしたbash-completion v2は`BASH_COMPLETION_COMPAT_DIR`ディレクトリ内のすべてのファイルをsourceするため、後者の2つの方法が機能します。 {{< /note >}} どの場合でも、シェルをリロードしたあとに、kubectlの自動補完が機能するはずです。 {{% /tab %}} {{% tab name="Zsh" %}} Zshにおけるkubectlの補完スクリプトは`kubectl completion zsh`コマンドで生成できます。シェル内で補完スクリプトをsourceすることでkubectlの自動補完が有効になります。 すべてのシェルセッションで使用するには、`~/.bashrc`に以下を追記してください: ```shell source <(kubectl completion zsh) ``` kubectlにエイリアスを張っている場合は、以下のようにシェルの補完を拡張して使うことができます: ```shell echo 'alias k=kubectl' >>~/.zshrc echo 'complete -F __start_kubectl k' >>~/.zshrc ``` シェルをリロードしたあとに、kubectlの自動補完が機能するはずです。 `complete:13: command not found: compdef`のようなエラーが出力された場合は、以下を`~/.zshrc`の先頭に追記してください: ```shell autoload -Uz compinit compinit ``` {{% /tab %}} {{< /tabs >}} {{% /capture %}} {{% capture whatsnext %}} * [Minikubeをインストールする](/ja/docs/tasks/tools/install-minikube/) * クラスターの作成に関する詳細を[スタートガイド](/docs/setup/)で確認する * [アプリケーションを起動して公開する方法を学ぶ](/docs/tasks/access-application-cluster/service-access-application-cluster/) * あなたが作成していないクラスターにアクセスする必要がある場合は、[クラスターアクセスドキュメントの共有](/docs/tasks/access-application-cluster/configure-access-multiple-clusters/)を参照してください * [kubectlリファレンスドキュメント](/docs/reference/kubectl/kubectl/)を参照する {{% /capture %}}