タスク

タスク
クラスターの管理
Access Clusters Using the Kubernetes API (EN)
Access Services Running on Clusters (EN)
Advertise Extended Resources for a Node (EN)
Autoscale the DNS Service in a Cluster (EN)
Change the default StorageClass (EN)
Change the Reclaim Policy of a PersistentVolume (EN)
Cluster Management (EN)
Configure Multiple Schedulers (EN)
Configure Out of Resource Handling (EN)
Configure Quotas for API Objects (EN)
Control CPU Management Policies on the Node (EN)
Control Topology Management Policies on a node (EN)
Customizing DNS Service (EN)
Debugging DNS Resolution (EN)
Declare Network Policy (EN)
Enabling EndpointSlices (EN)
Enabling Service Topology (EN)
Encrypting Secret Data at Rest (EN)
Guaranteed Scheduling For Critical Add-On Pods (EN)
IP Masquerade Agent User Guide (EN)
Kubernetesクラウドコントローラーマネージャー
Limit Storage Consumption (EN)
Namespaces Walkthrough (EN)
Operating etcd clusters for Kubernetes (EN)
Reconfigure a Node's Kubelet in a Live Cluster (EN)
Reserve Compute Resources for System Daemons (EN)
Safely Drain a Node while Respecting the PodDisruptionBudget (EN)
Securing a Cluster (EN)
Set Kubelet parameters via a config file (EN)
Set up High-Availability Kubernetes Masters (EN)
Share a Cluster with Namespaces (EN)
Using a KMS provider for data encryption (EN)
Using CoreDNS for Service Discovery (EN)
Using NodeLocal DNSCache in Kubernetes clusters (EN)
Using sysctls in a Kubernetes Cluster (EN)
クラウドコントローラーマネージャーの開発
Extend kubectl with plugins (EN)
Manage HugePages (EN)
Schedule GPUs (EN)

Edit This Page

kubectlのインストールおよびセットアップ

Kubernetesのコマンドラインツールであるkubectlを使用して、Kubernetesクラスターに対してコマンドを実行することができます。kubectlによってアプリケーションのデプロイや、クラスターのリソース管理および検査を行うことができます。kubectlの操作に関する完全なリストは、Overview of kubectlを参照してください。

始める前に

kubectlのバージョンは、クラスターのマイナーバージョンとの差分が1つ以内でなければなりません。たとえば、クライアントがv1.2であれば、v1.1、v1.2、v1.3のマスターで動作するはずです。最新バージョンのkubectlを使うことで、不測の事態を避けることができるでしょう。

Linuxへkubectlをインストールする

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へv1.18.0のバージョンをダウンロードするには、次のコマンドを入力します:

    curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.18.0/bin/linux/amd64/kubectl
    
  2. kubectlバイナリを実行可能にしてください。

    chmod +x ./kubectl
    
  3. バイナリをPATHの中に移動させてください。

    sudo mv ./kubectl /usr/local/bin/kubectl
    
  4. インストールしたバージョンが最新であることを確認してください:

    kubectl version
    

ネイティブなパッケージマネージャーを使用してインストールする


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

他のパッケージマネージャーを使用してインストールする

Ubuntuまたはsnapパッケージマネージャーをサポートする別のLinuxディストリビューションを使用している場合、kubectlはsnapアプリケーションとして使用できます。

LinuxでHomebrewパッケージマネージャーを使用している場合は、kubectlをインストールすることが可能です。


sudo snap install kubectl --classic

kubectl version

macOSへkubectlをインストールする

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へv1.18.0のバージョンをダウンロードするには、次のコマンドを入力します:

    curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.18.0/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パッケージマネージャーを使用していれば、Homebrewでkubectlをインストールすることもできます。

  1. インストールコマンドを実行してください:

    brew install kubectl 
    

    または

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

    kubectl version
    

MacPortsを使用してmacOSへインストールする

macOSでMacPortsパッケージマネージャーを使用していれば、MacPortsでkubectlをインストールすることもできます。

  1. インストールコマンドを実行してください:

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

    kubectl version
    

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

curlを使用してWindowsへkubectlのバイナリをインストールする

  1. こちらのリンクから、最新リリースであるv1.18.0をダウンロードしてください。

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

    curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.18.0/bin/windows/amd64/kubectl.exe
    

    最新の安定版を入手する際は(たとえばスクリプトで使用する場合)、https://storage.googleapis.com/kubernetes-release/release/stable.txtを参照してください。

  2. バイナリをPATHに追加します

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

    kubectl version
    
備考: Docker Desktop for Windowsは、それ自身のバージョンのkubectlをPATHに追加します。Docker Desktopをすでにインストールしている場合、Docker Desktopインストーラーによって追加されたPATHの前に追加するか、Docker Desktopのkubectlを削除してください。

PSGalleryからPowerShellを使用してインストールする

WindowsでPowershell Galleryパッケージマネージャーを使用していれば、Powershellでkubectlをインストールおよびアップデートすることもできます。

  1. インストールコマンドを実行してください(必ずDownloadLocationを指定してください):

    Install-Script -Name install-kubectl -Scope CurrentUser -Force
    install-kubectl.ps1 [-DownloadLocation <path>]
    
    備考: DownloadLocationを指定しない場合、kubectlはユーザのTempディレクトリにインストールされます。

    インストーラーは$HOME/.kubeを作成し、設定ファイルを作成します。

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

    kubectl version
    
    備考: アップデートする際は、手順1に示した2つのコマンドを再実行してください。

ChocolateyまたはScoopを使用してWindowsへインストールする

Windowsへkubectlをインストールするために、ChocolateyパッケージマネージャーやScoopコマンドラインインストーラーを使用することもできます。

choco install kubernetes-cli

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

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

    cd %USERPROFILE%
    
  3. .kubeディレクトリを作成してください:

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

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

    New-Item config -type file
    
    備考: Notepadなどの選択したテキストエディターから設定ファイルを編集してください。

Google Cloud SDKの一部としてダウンロードする

Google Cloud SDKの一部として、kubectlをインストールすることもできます。

  1. Google Cloud SDKをインストールしてください。
  2. kubectlのインストールコマンドを実行してください:

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

    kubectl version
    

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
備考: bash-completionは/etc/bash_completion.d内のすべての補完スクリプトをsourceします。

どちらも同様の手法です。シェルをリロードしたあとに、kubectlの自動補完が機能するはずです。

次の項目

フィードバック