Kubernetes構成ファイルの作成
Compute Cloud@Customerでは、作業するOKEクラスタごとにKubernetes構成ファイルを設定できます。Kubernetes構成ファイルでは、kubectl
コマンドおよびKubernetes Dashboardを使用してOKEクラスタにアクセスできます。
Kubernetes構成ファイルは、クラスタ、ユーザー、ネームスペースおよび認証メカニズムに関する情報を整理します。コンテキストを定義して、クラスタとネームスペースを簡単に切り替えることができます。kubectl
ツールは、Kubernetes構成ファイルを使用して、クラスタを選択し、クラスタのAPIサーバーと通信するために必要な情報を検索します。
Kubernetesコマンドライン・ツールのインストール
Kubernetesコマンドライン・ツールkubectl
をインストールおよび構成します。kubectl
ツールを使用すると、アプリケーションのデプロイ、クラスタ・リソースの検査と管理、ログの表示などのOKEクラスタに対する操作を実行できます。
kubectl
をインストールするには、Kubernetesインストール・ツールを参照してください。kubectl
バージョンは、OKEクラスタKubernetesバージョンの1つのマイナー・バージョン内である必要があります。たとえば、v1.29クライアントは、v1.28、v1.29およびv1.30コントロール・プレーンと通信できます。サポートされているKubernetesのバージョンを参照してください。
kubectl
操作の完全なリストを含む詳細は、https://kubernetes.io/docs/reference/kubectl/のリファレンス・ページを参照してください。
Kubernetes構成ファイルの作成
CLIを使用して、Kubernetes構成ファイルを作成します。
-
クラスタのOCIDを取得します:
oci ce cluster list
-
oci ce cluster create-kubeconfigコマンドを実行して、構成ファイルを作成します:
--cluster-id
オプションは必須です。--file
オプションのデフォルト値は~/.kube/config
です。指定された場所にすでにファイルがあり、そのファイルを置き換える場合は、--overwrite
オプションを使用します。複数の構成ファイルを保持するには、KUBECONFIG
環境変数または--kubeconfig
オプションを使用して、別のファイルを選択します。--kube-endpoint
オプションの値はPUBLIC_ENDPOINT
である必要があります。--profile
オプションを指定しない場合、OCI_CLI_PROFILE
環境の現在の値が使用されます。ベスト・プラクティスはこの値を指定することです。指定する場合、
--token-version
オプションの値は2.0.0である必要があります。例:
次のコマンドを使用して、パブリック・エンドポイントを使用して、指定したクラスタのKubernetes構成ファイルを構成します:
$ oci ce cluster create-kubeconfig --cluster-id ocid1.cluster.unique_ID \ --file $HOME/.kube/config --kube-endpoint PUBLIC_ENDPOINT --profile profile-name New config written to the Kubeconfig file /home/username/.kube/config
Kubernetes構成ファイルには、認証トークンを動的に生成し、
kubectl
コマンドの実行時に挿入するCLIコマンドが含まれています。デフォルトでは、Kubernetes構成ファイルのCLIコマンドは、認証トークンの生成時に現在のCLIプロファイルを使用します。CLI構成ファイルに複数のプロファイルを定義している場合は、次のいずれかの方法を使用して、認証トークンの生成時に使用するプロファイルを指定します。profile-nameの値は、CLI構成ファイル内のプロファイルの名前です。-
OCI_CLI_PROFILE
環境変数が、ocid1.cluster.unique_ID
が存在するテナンシのプロファイルに設定されていることを確認します。この設定は、Kubernetes構成ファイルでこのクラスタのプロファイルを指定するために次のいずれかの方法が使用された場合、無視されます。 -
前述の例のコマンドに示すように、
create-kubeconfig
コマンドラインで--profile
オプションを指定します。 -
次の例に示すように、生成された構成ファイルを編集します。
user: exec: apiVersion: client.authentication.k8s.io/v1beta1 args: - ce - cluster - generate-token - --cluster-id - cluster ocid - --profile - profile-name command: oci env: []
次のコマンドを使用して、
KUBECONFIG
環境変数を、前述のコマンドで作成または更新したKubernetes構成ファイルに設定します:$ export KUBECONFIG=$HOME/.kube/config
次のコマンドは、新しいYAML構成ファイルの内容を表示します。
$ kubectl config view
別のクラスタOCIDを使用してコマンドを再度実行すると、新しい情報が既存の情報とマージされます。次のメッセージが表示されます:
Existing Kubeconfig file found at /home/username/.kube/config and new config merged into it
-
クラスタ・アクセスの検証
kubectl
コマンドを実行する前に、OCI_CLI_PROFILE
環境変数に、OCI構成ファイルで定義されているプロファイルの名前が設定されていることを確認します。
$ export OCI_CLI_PROFILE=profile-name
次のコマンドを実行して、クラスタにアクセスできることを確認します。
$ kubectl cluster-info
すべてのKubernetesネームスペースには、少なくとも1つのServiceAccount (そのネームスペースのデフォルトのServiceAccount) (default
という名前)が含まれます。ポッドの作成時にServiceAccountを指定しない場合、OKEサービスでは、そのネームスペースにdefault
という名前のServiceAccountが自動的に割り当てられます。
ポッド内で実行されているアプリケーションは、自動的にマウントされたサービス・アカウント資格証明を使用してKubernetes APIにアクセスできます。
Kubernetes Dashboardの作成
ダッシュボードは、クラスタの管理、およびクラスタで実行されているアプリケーションの管理とトラブルシューティングに役立ちます。
Kubernetesサイトで、Kubernetes Dashboardのデプロイとアクセスを参照してください。
次の手順: