website/content/ja/docs/tasks/tools/install-kubectl-linux.md

14 KiB

title content_type weight
Linux上でのkubectlのインストールおよびセットアップ task 10

{{% heading "prerequisites" %}}

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

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

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

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

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

    {{< tabs name="download_binary_linux" >}} {{< tab name="x86-64" codelang="bash" >}} curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl" {{< /tab >}} {{< tab name="ARM64" codelang="bash" >}} curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/arm64/kubectl" {{< /tab >}} {{< /tabs >}}

    {{< note >}} 特定のバージョンをダウンロードする場合、コマンドの$(curl -L -s https://dl.k8s.io/release/stable.txt)の部分を特定のバージョンに書き換えてください。

    たとえば、Linux x86-64へ{{< skew currentPatchVersion >}}のバージョンをダウンロードするには、次のコマンドを入力します:

    curl -LO https://dl.k8s.io/release/v{{< skew currentPatchVersion >}}/bin/linux/amd64/kubectl
    

    そして、Linux ARM64に対しては、次のコマンドを入力します:

    curl -LO https://dl.k8s.io/release/v{{< skew currentPatchVersion >}}/bin/linux/arm64/kubectl
    

    {{< /note >}}

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

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

    {{< tabs name="download_checksum_linux" >}} {{< tab name="x86-64" codelang="bash" >}} curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl.sha256" {{< /tab >}} {{< tab name="ARM64" codelang="bash" >}} curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/arm64/kubectl.sha256" {{< /tab >}} {{< /tabs >}}

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

    echo "$(cat kubectl.sha256)  kubectl" | sha256sum --check
    

    正しければ、出力は次のようになります:

    kubectl: OK
    

    チェックに失敗すると、sha256は0以外のステータスで終了し、次のような出力を表示します:

    kubectl: FAILED
    sha256sum: WARNING: 1 computed checksum did NOT match
    

    {{< note >}} 同じバージョンのバイナリとチェックサムをダウンロードしてください。 {{< /note >}}

  3. kubectlをインストールしてください

    sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
    

    {{< note >}} ターゲットシステムにルートアクセスを持っていない場合でも、~/.local/binディレクトリにkubectlをインストールできます:

    chmod +x kubectl
    mkdir -p ~/.local/bin
    mv ./kubectl ~/.local/bin/kubectl
    # そして ~/.local/bin を $PATH の末尾 (または先頭) に追加します
    

    {{< /note >}}

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

    kubectl version --client
    

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

    kubectl version --client --output=yaml
    

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

{{< tabs name="kubectl_install" >}} {{% tab name="Debianベースのディストリビューション" %}}

  1. aptのパッケージ一覧を更新し、Kubernetesのaptリポジトリを利用するのに必要なパッケージをインストールしてください:

    sudo apt-get update
    # apt-transport-httpsはダミーパッケージの可能性があります。その場合、そのパッケージはスキップできます
    sudo apt-get install -y apt-transport-https ca-certificates curl gnupg
    
  2. Kubernetesパッケージリポジトリの公開署名キーをダウンロードしてください。 すべてのリポジトリに同じ署名キーが使用されるため、URL内のバージョンは無視できます:

    # `/etc/apt/keyrings`フォルダーが存在しない場合は、curlコマンドの前に作成する必要があります。下記の備考を参照してください。
    # sudo mkdir -p -m 755 /etc/apt/keyrings
    curl -fsSL https://pkgs.k8s.io/core:/stable:/{{< param "version" >}}/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
    sudo chmod 644 /etc/apt/keyrings/kubernetes-apt-keyring.gpg # 特権のないAPTプログラムがこのkeyringを読めるようにします
    

{{< note >}} Debian 12とUbuntu 22.04より古いリリースでは、/etc/apt/keyringsフォルダーは既定では存在しないため、curlコマンドの前に作成する必要があります。 {{< /note >}}

  1. 適切なKubernetesのaptリポジトリを追加してください。 {{< param "version" >}}とは異なるKubernetesバージョンを利用したい場合は、以下のコマンドの{{< param "version" >}}を目的のマイナーバージョンに置き換えてください:

    # これにより、/etc/apt/sources.list.d/kubernetes.listにある既存の設定が上書きされます
    echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/{{< param "version" >}}/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list
    sudo chmod 644 /etc/apt/sources.list.d/kubernetes.list   # command-not-foundのようなツールが正しく動作するようにします
    

{{< note >}} kubectlを他のマイナーリリースにアップグレードするためには、apt-get updateapt-get upgradeを実行する前に、/etc/apt/sources.list.d/kubernetes.listの中のバージョンを上げる必要があります。 この手順についてはChanging The Kubernetes Package Repositoryに詳細が記載されています。 {{< /note >}}

  1. aptのパッケージインデックスを更新し、kubectlをインストールしてください:

    sudo apt-get update
    sudo apt-get install -y kubectl
    

{{% /tab %}}

{{% tab name="Red Hatベースのディストリビューション" %}}

  1. Kubernetesのyumリポジトリを追加してください。 {{< param "version" >}}とは異なるKubernetesバージョンを利用したい場合は、以下のコマンドの{{< param "version" >}}を目的のマイナーバージョンに置き換えてください:

    # これにより、/etc/yum.repos.d/kubernetes.repoにある既存の設定が上書きされます
    cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
    [kubernetes]
    name=Kubernetes
    baseurl=https://pkgs.k8s.io/core:/stable:/{{< param "version" >}}/rpm/
    enabled=1
    gpgcheck=1
    gpgkey=https://pkgs.k8s.io/core:/stable:/{{< param "version" >}}/rpm/repodata/repomd.xml.key
    EOF
    

{{< note >}} kubectlを他のマイナーリリースにアップグレードするためには、yum updateを実行する前に、/etc/yum.repos.d/kubernetes.repoの中のバージョンを上げる必要があります。 この手順についてはChanging The Kubernetes Package Repositoryに詳細が記載されています。 {{< /note >}}

  1. yumを使用してkubectlをインストールしてください:

    sudo yum install -y kubectl
    

{{% /tab %}}

{{% tab name="SUSEベースのディストリビューション" %}}

  1. Kubernetesのzypperリポジトリを追加してください。 {{< param "version" >}}とは異なるKubernetesバージョンを利用したい場合は、以下のコマンドの{{< param "version" >}}を目的のマイナーバージョンに置き換えてください。

    # これにより、/etc/zypp/repos.d/kubernetes.repoにある既存の設定が上書きされます
    cat <<EOF | sudo tee /etc/zypp/repos.d/kubernetes.repo
    [kubernetes]
    name=Kubernetes
    baseurl=https://pkgs.k8s.io/core:/stable:/{{< param "version" >}}/rpm/
    enabled=1
    gpgcheck=1
    gpgkey=https://pkgs.k8s.io/core:/stable:/{{< param "version" >}}/rpm/repodata/repomd.xml.key
    EOF
    

{{< note >}} kubectlを他のマイナーリリースにアップグレードするためには、zypper updateを実行する前に、/etc/zypp/repos.d/kubernetes.repoの中のバージョンを上げる必要があります。 この手順についてはChanging The Kubernetes Package Repositoryに詳細が記載されています。 {{< /note >}}

  1. zypperを使用してkubectlをインストールしてください:

    sudo zypper install -y kubectl
    

{{% /tab %}} {{< /tabs >}}

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

{{< tabs name="other_kubectl_install" >}} {{% tab name="Snap" %}} Ubuntuまたはsnapパッケージマネージャーをサポートする別のLinuxディストリビューションを使用している場合、kubectlはsnapアプリケーションとして使用できます。

snap install kubectl --classic
kubectl version --client

{{% /tab %}}

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

brew install kubectl
kubectl version --client

{{% /tab %}}

{{< /tabs >}}

kubectlの設定を検証する

{{< include "included/verify-kubectl.md" >}}

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

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

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

以下にBash、Fish、Zshの自動補完の設定手順を示します。

{{< tabs name="kubectl_autocompletion" >}} {{< tab name="Bash" include="included/optional-kubectl-configs-bash-linux.md" />}} {{< tab name="Fish" include="included/optional-kubectl-configs-fish.md" />}} {{< tab name="Zsh" include="included/optional-kubectl-configs-zsh.md" />}} {{< /tabs >}}

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

{{< include "included/kubectl-convert-overview.md" >}}

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

    {{< tabs name="download_convert_binary_linux" >}} {{< tab name="x86-64" codelang="bash" >}} curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl-convert" {{< /tab >}} {{< tab name="ARM64" codelang="bash" >}} curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/arm64/kubectl-convert" {{< /tab >}} {{< /tabs >}}

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

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

    {{< tabs name="download_convert_checksum_linux" >}} {{< tab name="x86-64" codelang="bash" >}} curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl-convert.sha256" {{< /tab >}} {{< tab name="ARM64" codelang="bash" >}} curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/arm64/kubectl-convert.sha256" {{< /tab >}} {{< /tabs >}}

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

    echo "$(cat kubectl-convert.sha256) kubectl-convert" | sha256sum --check
    

    正しければ、出力は次のようになります:

    kubectl-convert: OK
    

    チェックに失敗すると、sha256は0以外のステータスで終了し、次のような出力を表示します:

    kubectl-convert: FAILED
    sha256sum: WARNING: 1 computed checksum did NOT match
    

    {{< note >}} 同じバージョンのバイナリとチェックサムをダウンロードしてください。 {{< /note >}}

  3. kubectl-convertをインストールしてください

    sudo install -o root -g root -m 0755 kubectl-convert /usr/local/bin/kubectl-convert
    
  4. プラグインが正常にインストールできたことを確認してください

    kubectl convert --help
    

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

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

    rm kubectl-convert kubectl-convert.sha256
    

{{% heading "whatsnext" %}}

{{< include "included/kubectl-whats-next.md" >}}