コンソール以外にも、Kubernetes コマンドラインインターフェイス (kubectl) を使用してクラスターやアプリケーションを管理できます。kubectl を使用してクラスターに接続するには、まずクラスターの KubeConfig を取得する必要があります。KubeConfig には、現在のユーザーのアクセス認証情報が含まれています。
kubeconfig の種類の選択
kubeconfig ファイルは、kubectl がご利用のクラスターに接続する方法を定義します。kubeconfig の種類は、アクセスが必要な期間とクライアントがクラスターに接続する方法の 2 つの要素に基づいて選択してください。
有効期間別
| Type | Validity | Best for | Security |
|---|---|---|---|
| Temporary | 30 分~3 日(設定可能) | 日常的な運用・メンテナンス (O&M)、トラブルシューティング、CI/CD パイプライン | リスクが低く、設定された期間後に自動的に有効期限切れとなる |
| Long-term | 3 年(デフォルト) | 自動化システム、長期間稼働するモニタリングサービス | 有効期限前に手動でのローテーションが必要 |
アクセス方法別
| Type | When to use | Details |
|---|---|---|
| Private access | クライアントマシンがクラスターと同じ VPC 内にある場合 | 内部ネットワーク経由で接続し、レイテンシが低く、セキュリティが強化される |
| Public access | インターネットに接続可能な任意のマシンから接続する必要がある場合 | Elastic IP Address (EIP) を介して API サーバーを公開します。ローカル開発やリモート O&M に適しています。 |
バインドされた EIP には料金が発生します。詳細については、「従量課金」をご参照ください。
ACK 専用クラスターでパブリックアクセスが有効になっている場合は、SSH 経由でマスターノードから直接 kubeconfig ファイルを取得することもできます。詳細については、「SSH を使用して ACK 専用クラスターのマスターノードに接続する」をご参照ください。
ステップ 2: KubeConfig の取得と使用
コンソールから KubeConfig ファイルを取得した後、kubectl を使用してクラスターに接続および管理できます。
クラスターに接続するには、Resource Access Management (RAM) ユーザーに Container Service のシステム権限に加え、クラスター操作に関する権限が付与されている必要があります。詳細については、「RAM ユーザーに RBAC 権限を付与する」をご参照ください。
Argo Workflow Clusters コンソールにログインし、対象のクラスター名をクリックします。
クラスター情報ページで、接続情報タブをクリックします。パブリックネットワークアクセスまたは内部ネットワークアクセスを選択し、KubeConfig をコピーします。
内部ネットワークアクセス:内部ネットワークアクセス用の KubeConfig を取得します。kubectl クライアントマシンはクラスターと同じ VPC 内に存在する必要があります。Alibaba Cloud の内部ネットワーク経由で接続することで、レイテンシが低く、より安全です。
パブリックネットワークアクセス:パブリックネットワークアクセス用の KubeConfig を取得します。パブリックネットワーク上の任意のマシンをクライアントとしてクラスターに接続できます。この方法では、API サーバーへの接続にElastic IP アドレス (EIP)を使用します。ローカル開発やリモート O&M に適しています。
EIP をアタッチした後は、関連する料金について「従量課金」をご確認ください。
コピーした KubeConfig の内容を、クライアント上の $HOME/.kube/config ファイルに貼り付けます。その後、ファイルを保存して終了します。
$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
RAM ユーザーに RBAC 権限を付与する
Argo Workflow Clusters コンソールにログインし、対象のクラスター名をクリックします。
権限管理ページで、対象の RAM ユーザーの右側にある [権限付与の管理] をクリックします。以下の権限を RAM ユーザーに付与します。
RBAC 権限
権限の説明
admin (管理者)
クラスタースコープおよびすべての名前空間におけるリソースに対する読み取り・書き込み権限。
dev (開発者)
選択した名前空間内のリソースに対する読み取り・書き込み権限。
Container Argo Workflow Cluster における kubectl 権限
標準の Kubernetes クラスターとは異なり、Container Argo Workflow Cluster では一部の kubectl 操作が制限されています。権限の詳細は次の表のとおりです。
クラスターリソース | 権限の説明 |
PriorityClass | PriorityClass を管理し、ワークフロー内で PriorityClass を指定して、Pod の優先度に基づくスケジューリング順序を制御できます。 |
Namespace | 名前空間を作成できます。作成した名前空間に対しては完全な権限を持ち、そのリソースにアクセス可能です。ただし、システム名前空間のリソースにはアクセスできません。システム名前空間とは、 重要 クラスター ID と同じ名前の名前空間は、Argo システム名前空間です。この名前空間内では操作が可能です。たとえば、workflow-controller-configmap を変更して Argo Workflow の実行時パラメーターを設定できます。 |
Persistentvolume | 完全な権限。 |
Persistentvolumeclaim | 作成した名前空間内では完全な権限。 |
Secret Configmap Serviceaccount | 作成した名前空間内では完全な権限。 |
Pod | 作成した名前空間内では読み取り権限。 |
Pods/logevents | 作成した名前空間内では読み取り権限。 |
Pods/exec | 作成した名前空間内では作成権限。 |
Argo リソース: workflows workflowtasksets workflowtemplates cronworkflows | 作成した名前空間内では完全な権限。 |