Container Service for Kubernetes (ACK) コンソールに加えて、Kubernetes コマンドラインインターフェイス (kubectl) を使用してクラスターとアプリケーションを管理できます。kubectl を使用してクラスターに接続するには、まず、クラスターにアクセスするための認証情報と接続情報を含む kubeconfig ファイルを取得します。
ステップ 1: kubectl クライアントをインストールして設定する
お使いの OS とクラスターバージョンに基づいて、クライアントマシンに kubectl をインストールします。
ステップ 2: kubeconfig ファイルを取得して使用する
1. kubeconfig のタイプを選択する
kubeconfig ファイルには、クラスターにアクセスするための認証情報が含まれています。セキュリティ要件とユースケースに基づいて kubeconfig のタイプを選択します。
責任共有モデルに従い、お客様は kubeconfig 認証情報のセキュリティ保護と維持に責任を負います。認証情報漏洩によるセキュリティリスクを軽減するために、定期的に kubeconfig をローテーションし、最小権限の原則に従ってください。
有効期間別:
一時的な kubeconfig: 30 分から 3 日間の有効期間を設定できます。ファイルは自動的に期限切れになるため、認証情報漏洩のセキュリティリスクが軽減されます。これは、API サーバーへの長期的なアクセスが必要ない日常の O&M、トラブルシューティング、CI/CD パイプラインに推奨されるオプションです。
長期的な kubeconfig: このタイプには、デフォルトで 3 年間の有効期間があります。これは、頻繁な認証情報のローテーションが現実的でない自動化システムや長時間実行される監視サービスに適しています。
アクセス方法別:
プライベートアクセス: クライアントマシンがクラスターと同じ VPC にある場合、このオプションを使用します。kubeconfig を介して内部ネットワーク経由で接続すると、レイテンシーが低減され、セキュリティが強化されます。
パブリックアクセス: インターネットにアクセスできる任意のマシンからクラスターに接続する場合、このオプションを使用します。このメソッドは、Elastic IP (EIP) に依存して API サーバーを公開します。ローカル開発やリモート O&M に適しています。
バインドされた EIP に関連する料金については、「従量課金」をご参照ください。
パブリックアクセスが有効になっている ACK 専用クラスターがある場合、SSH 経由でマスターノードから kubeconfig ファイルを取得し、ローカルで kubectl を使用してクラスターを管理できます。詳細については、「SSH を使用して ACK 専用クラスターのマスターノードに接続する」をご参照ください。
2. kubeconfig ファイルを取得してクラスターに接続する
コンソールから kubeconfig ファイルを取得した後、kubectl はそれを使用してクラスターに接続し、管理できます。
RAM (Resource Access Management) ユーザーがクラスターに接続する前に、ACK グローバルと特定のクラスターの両方で必要な権限が付与されている必要があります。詳細については、「権限付与」をご参照ください。
ACK コンソールにログインします。左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、管理するクラスターを見つけ、クラスターの名前をクリックするか、[操作] 列の [詳細] をクリックします。クラスターの詳細ページが表示されます。
クラスター詳細ページで、[接続情報] タブをクリックし、一時的または長期的な kubeconfig を選択します。一時的な kubeconfig を選択した場合は、適切な有効期間を設定します。
[パブリックアクセス] または [内部アクセス] タブを選択し、[コピー] をクリックして kubeconfig の内容をコピーします。コピーした内容をクライアントマシンの
$HOME/.kube/configファイルに貼り付け、ファイルを保存して終了します。このファイルまたはディレクトリが存在しない場合は、
mkdir -p $HOME/.kubeとtouch $HOME/.kube/configを実行して作成します。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 を生成しません。詳細については、「kubeconfig ファイルの削除」および「ack-ram-tool を使用して ACK クラスター上の指定されたユーザーの権限を取り消す」をご参照ください。
権限の誤った削除を避けるために、kubeconfig ゴミ箱を使用して、取り消された特定の kubeconfig 権限を復元できます。
よくある質問
kubeconfig 証明書に関連付けられている ID 情報を確認するにはどうすればよいですか?
次のコマンドを実行します。kubeconfig をファイルへのパスに置き換えてください。
grep client-certificate-data kubeconfig |awk '{print $2}' |base64 -d | openssl x509 -noout -text |grep Subject:デフォルトでは、kubectl は$HOME/.kube/configを使用してクラスターに接続します。KUBECONFIG環境変数を設定するか、--kubeconfigパラメーターを指定することで、他の kubeconfig ファイルを指定することもできます。
出力は次のようになります。
Subject: O=system:users, OU=, CN=1***-1673419473各項目の説明:
O: Kubernetes ユーザーグループ。この例では、グループ名はsystem:usersです。CN: 関連付けられたユーザー情報。この例では、ユーザーは1***-1673419473で、1***は Alibaba Cloud ユーザー ID です。
kubeconfig 証明書の有効期限を確認するにはどうすればよいですか?
次のコマンドを実行して、kubeconfig に関連付けられている証明書の有効期限を取得します。kubeconfig をファイルへのパスに置き換えてください。
grep client-certificate-data kubeconfig |awk '{print $2}' |base64 -d | openssl x509 -noout -enddatekubectl はデフォルトで$HOME/.kube/configを使用してクラスターに接続しますが、KUBECONFIG環境変数や--kubeconfigパラメーターで他の kubeconfig ファイルも指定できます。
出力は次のようになります。
notAfter=Jan 10 06:44:34 2026 GMTこの例では、Jan 10 06:44:34 2026 GMT が証明書の有効期限です。
証明書の有効期限が切れる 180 日以内、または有効期限が切れた後はいつでも、コンソールから、または API 操作を呼び出すことによって、新しい kubeconfig を取得できます。
kubeconfig からクライアント証明書、クライアント秘密鍵、API サーバー情報を抽出するにはどうすればよいですか?
次のコマンドを使用できます。kubeconfig をファイルへのパスに置き換えてください。
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}'`kubectl はデフォルトで$HOME/.kube/configを使用してクラスターに接続しますが、KUBECONFIG環境変数や--kubeconfigパラメーターで他の kubeconfig ファイルも指定できます。
次のステップ
上記の手順が完了したら、オンプレミスマシンから kubectl を使用して ACK クラスターに接続できます。