kubeconfig ファイルには、現在ログインしているユーザーの ID 情報を含む、クラスターアクセス認証情報が格納されています。コンソールから kubeconfig ファイルを取得した後、kubectl クライアントを使用して Alibaba Cloud Container Compute Service (ACS) クラスターに接続し、管理します。
kubectl と kubeconfig
kubectl は、Kubernetes を管理するための標準的なコマンドラインツールです。kubectl を使用して ACS クラスターに接続し、管理します。kubeconfig ファイルには、クラスター、ユーザー、名前空間、認証メカニズムに関する情報が含まれています。kubectl は、kubeconfig ファイルを使用してクラスターに接続します。
接続方法
kubectl クライアントマシンの場所に基づいて接続方法を選択します。
パブリックネットワーク接続:この方法は、クライアントマシンがパブリックネットワーク上にある場合に使用します。クラスターの API サーバーへのパブリックアクセスを有効にする必要があります。これにより、Elastic IP Address (EIP) を介して API サーバーが公開されます。パブリックアクセスを有効にする手順については、「クラスターの API サーバーへのパブリックアクセスを制御する」をご参照ください。
内部ネットワーク接続:この方法は、内部アクセスのみが必要な場合に使用します。kubectl クライアントマシンは、クラスターと同じ Virtual Private Cloud (VPC) 内にある必要があります。
ステップ1:kubectl のインストール
OS とクラスターのバージョンに基づいて、クライアントマシンに kubectl をインストールします。
ステップ2:クラスター認証情報の設定
ACS クラスターは、パブリックネットワークアクセス用と内部ネットワークアクセス用の 2 種類のクラスター認証情報 (kubeconfig ファイル) を提供します。デフォルトでは、kubectl はクライアントマシンの $HOME/.kube ディレクトリにある config という名前のファイルを検索します。このファイルには、管理するクラスターのアクセス認証情報が格納されており、kubectl はこの設定ファイルを使用してクラスターに接続します。
ACS コンソール にログインします。左側のナビゲーションペインで、クラスター をクリックします。
クラスター ページで、管理するクラスターを見つけ、その ID をクリックするか、クラスターの アクション 列の 詳細 をクリックします。
-
[クラスター情報] ページで、[接続情報] タブをクリックします。一時的または長期的な kubeconfig を選択します。一時的な kubeconfig の場合は、有効期間を設定します。
-
[プライベートアクセス] または [パブリックアクセス] タブをクリックし、[コピー] をクリックします。
-
クライアントマシン上の
$HOME/.kube/configファイルに内容を貼り付け、ファイルを保存します。注意:ディレクトリまたはファイルが存在しない場合は、あらかじめ作成してください。
-
すべての名前空間を一覧表示して、接続を検証します。
kubectl get namespaces期待される出力:
NAME STATUS AGE default Active 4h39m kube-node-lease Active 4h39m kube-public Active 4h39m kube-system Active 4h39m
よくある質問
次のコマンドでは、kubeconfig ファイルの 絶対パス のプレースホルダーとして YOUR_KUBECONFIG_PATH を使用します。デフォルトでは、kubectl は $HOME/.kube/config ファイルを使用してクラスターに接続します。別の kubeconfig ファイルを指定するには、KUBECONFIG 環境変数を設定するか、--kubeconfig パラメーターを使用します。
質問1:kubeconfig ファイルで使用される証明書に関連付けられた ID 情報を取得するにはどうすればよいですか?
次のコマンドを実行します:
grep client-certificate-data YOUR_KUBECONFIG_PATH |awk '{print $2}' |base64 -d | openssl x509 -noout -text |grep Subject:期待される出力は次のようになります:
Subject: O=system:users, OU=, CN=1***-1673419473出力のパラメーターは次のとおりです:
Oは、ユーザーが所属する Kubernetes ユーザーグループを示します。この例では、グループ名はsystem:usersです。CNは、関連付けられたユーザーを示します。この例では、ユーザーは1***-1673419473で、1***はアカウントの Alibaba Cloud ユーザー ID に対応します。
質問2:kubeconfig ファイルで使用される証明書の有効期限を取得するにはどうすればよいですか?
次のコマンドを実行します:
grep client-certificate-data YOUR_KUBECONFIG_PATH |awk '{print $2}' |base64 -d | openssl x509 -noout -enddate期待される出力は次のようになります:
notAfter=Jan 10 06:44:34 2026 GMT値 Jan 10 06:44:34 2026 GMT は証明書の有効期限です。
証明書の有効期限が切れる 60 日前から、または有効期限が切れた後はいつでも、コンソールまたは OpenAPI を使用して新しい証明書を含む kubeconfig ファイルを取得してください。
質問3:kubectl を使用してクラスターに接続する際に発生する certificate is valid for エラーを解決するにはどうすればよいですか?
クラスターの API サーバーの Server Load Balancer (SLB) インスタンスに新しい IP アドレスをバインドし、kubectl を使用して新しい IP アドレスにアクセスすると、kubectl コマンドが失敗し、Error while proxying request: x509: certificate is valid for xxx エラーまたは Unable to connect to the server: x509: certificate is valid for xxx エラーを返します。
「クラスターの API サーバー証明書の SAN をカスタマイズする」で説明されているように、新しい IP アドレスを API サーバー証明書のサブジェクト代替名 (SAN) に追加します。設定例を次に示します:
[Update Custom Certificate SAN] ダイアログボックスの [Custom Certificate SAN] フィールドに、新しい IP アドレス (例:192.168.1.137) を入力します。複数の IP アドレスまたはドメイン名はコンマ (,) で区切ります。その後、[OK] をクリックします。注: SAN を変更すると、API サーバーが短時間再起動します。