すべてのプロダクト
Search
ドキュメントセンター

Container Service for Kubernetes:kubeconfig の取得および kubectl を使用したクラスターへの接続

最終更新日:Feb 27, 2026

Kubernetes コマンドラインインターフェイス (kubectl) を使用すると、Container Service for Kubernetes (ACK) コンソールに加えて、クラスターおよびアプリケーションの管理が可能です。kubectl を使用してクラスターに接続するには、まずクラスターへのアクセスに必要な認証情報および接続情報を含む kubeconfig ファイルを取得します。

ステップ 1: kubectl クライアントのインストールと構成

kubectl をインストールするクライアントマシンを特定します。その後、お使いのオペレーティングシステムおよびクラスターバージョンに応じて、kubectl のインストールを行います。

ステップ 2: kubeconfig ファイルの取得および使用

1. kubeconfig の種類の選択

kubeconfig ファイルには、クラスターへのアクセスに必要な認証情報が含まれます。セキュリティ要件およびユースケースに応じて、適切な kubeconfig の種類を選択してください。

重要

共有責任モデルによると、kubeconfig の資格情報のセキュリティ確保および維持はお客様の責任です。kubeconfig の漏洩によるセキュリティリスクを軽減するため、定期的に kubeconfig をローテーションし、最小権限の原則 (PoLP) を遵守してください。

  • kubeconfig ファイルの有効期間:

    • 一時的な kubeconfig: 有効期間を30分から3日間で設定できます。ファイルは自動的に有効期限切れになり、資格情報の漏洩によるセキュリティリスクを低減します。これは、API サーバーへの長期アクセスを必要としない、日常的な運用および保守(O&M)、トラブルシューティング、および CI/CD パイプライン向けに推奨されるオプションです。

    • 長期的な kubeconfig: デフォルトの有効期間は 3 年です。頻繁な資格情報のローテーションが現実的でない、自動化されたシステムや長時間実行されるモニタリングサービスに適しています。

  • アクセス方法別:

    • 非公開アクセス: クライアントマシンがクラスターと同じ VPC 内にある場合にこのオプションを使用します。kubeconfig を介した内部ネットワーク経由での接続は、レイテンシーが低く、セキュリティも強化されます。

    • 公開アクセス: インターネットに接続可能な任意のマシンからクラスターに接続するために、公開アクセス用の kubeconfig を取得します。この方法では、API サーバーを公開するために EIP を使用します。ローカル開発またはリモート O&M に適しています。

      EIP に関連する料金については、「従量課金」をご参照ください。
  • ご利用の ACK 専用クラスター で公開アクセスが有効になっている場合、マスターノードに SSH で接続し、kubeconfig ファイルを取得して、ローカルで kubectl を使用してクラスターを管理できます。詳細については、「ACK 専用クラスターのマスターノードへの SSH 接続」をご参照ください。

2. kubeconfig ファイルの取得およびクラスターへの接続

コンソールから kubeconfig ファイルを取得した後、kubectl はそのファイルを使用してクラスターに接続し、管理できます。

Resource Access Management (RAM) ユーザーがクラスターに接続する前に、ACK 全体および対象のクラスターに対して、必要なアクセス権限を付与する必要があります。詳細については、「権限付与」をご参照ください。
  1. ACK コンソールにログインします。左側のナビゲーションウィンドウで、[クラスター] をクリックします。

  2. [クラスター]」ページで、管理するクラスターを見つけ、クラスターの名前をクリックするか、「[操作]」列の「[詳細]」をクリックします。クラスターの詳細ページが表示されます。

  3. クラスター情報 ページで、接続情報 タブをクリックし、一時的な kubeconfig または長期的な kubeconfig のいずれかを選択します。一時的な kubeconfig を選択する場合は、適切な有効期間を設定します。

  4. パブリックアクセス タブまたは 内部アクセス タブを選択します。コピー をクリックします。コピーした kubeconfig の内容を、クライアントマシン上の $HOME/.kube/config ファイルに貼り付けます。ファイルを保存して終了します。

    このファイルまたはディレクトリが存在しない場合は、mkdir -p $HOME/.kube および touch $HOME/.kube/config を実行して、$HOME/.kube/config を作成できます。
  5. 構成が完了したら、kubectl コマンドを実行してクラスターの接続性を確認します。

    たとえば、名前空間をクエリできます。

    kubectl get namespaces

    期待される出力:

    NAME              STATUS   AGE
    default           Active   4h39m
    kube-node-lease   Active   4h39m
    kube-public       Active   4h39m
    kube-system       Active   4h39m

本番環境への移行

  • kubeconfig の有効性を確認: サービス障害を防止するため、有効期限が切れる前に資格情報をローテーションしてください。

    長期的な kubeconfig の有効期間は 3 年です。有効期限の 180 日以内に、ACK コンソール または DescribeClusterUserKubeconfig API を使用して、新しい kubeconfig を取得できます。

    新しい kubeconfig の有効期間も 3 年です。古い kubeconfig は、元の有効期限まで有効のままです。
  • kubeconfig が侵害された場合の即時無効化: kubeconfig ファイルが侵害された可能性があると疑われる場合は、クラスターの kubeconfig 資格情報を直ちに無効化してください。無効化されると、システムは新しい kubeconfig および承認バインディングを生成し、古い kubeconfig を使用したすべての接続は無効になります。

  • 権限のクリーンアップ: プロジェクトの完了や従業員の退職など、ユーザーが今後アクセス権限を必要としないシナリオでは、クリーンアップ機能を使用して、kubeconfig 権限を一括で無効化します。クリーンアップ後、システムは新しい kubeconfig を生成しません。具体的な手順については、「kubeconfig ファイルのパージ」および「ack-ram-tool を使用したクラスター内における指定ユーザーの権限パージ」をご参照ください。

    権限の誤った削除を防ぐために、kubeconfig のゴミ箱 を使用して、特定の無効化済み kubeconfig 権限を復元できます。

よくある質問

kubeconfig 証明書に関連付けられた ID 情報を確認するにはどうすればよいですか?

以下のコマンドを実行します:

grep client-certificate-data kubeconfig |awk '{print $2}' |base64 -d | openssl x509 -noout -text |grep Subject:
kubeconfig のパスは必要に応じて変更してください。デフォルトでは、kubectl は $HOME/.kube/config を使用してクラスターに接続します。また、KUBECONFIG 環境変数または --kubeconfig

出力例:

        Subject: O=system:users, OU=, CN=1***-1673419473

以下に示すとおり:

  • O: Kubernetes ユーザーグループ。この例ではグループ名は system:users です。

  • CN: 関連付けられたユーザー情報。この例ではユーザーは 1***-1673419473 であり、1*** はアカウント内の Alibaba Cloud ユーザー ID です。

kubeconfig 証明書の有効期限を確認するにはどうすればよいですか?

以下のコマンドを実行して、kubeconfig ファイルに関連付けられた証明書の有効期限を取得します:

grep client-certificate-data kubeconfig |awk '{print $2}' |base64 -d | openssl x509 -noout -enddate
kubeconfig のパスは必要に応じて変更してください。デフォルトでは、kubectl は $HOME/.kube/config を使用してクラスターに接続します。また、KUBECONFIG 環境変数または --kubeconfig

出力例:

notAfter=Jan 10 06:44:34 2026 GMT

この例では、Jan 10 06:44:34 2026 GMT が証明書の有効期限です。

証明書の有効期限が切れる 180 日前、または有効期限が切れた後であればいつでも、コンソールまたは API 操作を呼び出して新しい kubeconfig を取得できます。

クライアント証明書、クライアント秘密鍵、および API サーバー情報を取得するにはどうすればよいですか?

以下のコマンドを使用して、kubeconfig ファイルからクライアント証明書、クライアント秘密鍵、および API サーバー情報を抽出します:

cat  ./kubeconfig |grep client-certificate-data | awk -F ' ' '{print $2}' |base64 -d > ./client-cert.pem
cat  ./kubeconfig |grep client-key-data | awk -F ' ' '{print $2}' |base64 -d > ./client-key.pem
APISERVER=`cat  ./kubeconfig |grep server | awk -F ' ' '{print $2}'`
kubeconfig のパスは必要に応じて変更してください。デフォルトでは、kubectl は $HOME/.kube/config を使用してクラスターに接続します。また、KUBECONFIG 環境変数または --kubeconfig

certificate is valid for」エラーを解決するには、kubectl を使用してクラスターに接続する際にどうすればよいですか?

クラスターの API サーバー向け Server Load Balancer (SLB) インスタンスに新しい IP アドレスをバインドした場合、新しい IP を対象とした kubectl コマンドが失敗し、「Error while proxying request: x509: certificate is valid for xxx」または「Unable to connect to the server: x509: certificate is valid for xxx」というエラーが発生することがあります。

  • ACK マネージドクラスター: API サーバー証明書のサブジェクト代替名 (SAN) に新しい IP アドレスを追加します。詳細については、「ACK クラスター作成時に API サーバー証明書の SAN をカスタマイズ」をご参照ください。

  • ACK 専用クラスター: kubectl がこのエラーを無視するように、insecure-skip-tls-verify オプションを設定します。

    重要

    TLS 検証のバイパスはセキュリティリスクを伴うため、本番環境では推奨されません。代わりに、ACK 専用クラスターを ACK マネージドクラスター Pro エディションへホットマイグレーションすることを強く推奨します。その後、API サーバー証明書の SAN に新しい IP アドレスを追加してください。

    • 方法 1: kubectl コマンド実行時に --insecure-skip-tls-verify オプションを指定します。

      kubectl -s https://<IP>:6443 --insecure-skip-tls-verify get ns
    • 方法 2: kubeconfig ファイルを編集し、insecure-skip-tls-verify: true を設定して、certificate-authority-data の設定を削除します。

      apiVersion: v1
      clusters:
      - cluster:
          server: https://<IP>:6443
          insecure-skip-tls-verify: true
        name: kubernetes
      contexts:
      ...

ACK マネージドクラスターkubeconfig 証明書を自ら生成するために、ルート証明書キーを取得できますか?

ACK マネージドクラスター では、ルート証明書キーは公開されていません。クラスターの kubeconfig は、コンソールまたは OpenAPI 操作を呼び出すことで取得することを推奨します。

参照