Kubernetes構成ファイルの作成
操作するOKEクラスタごとに、Kubernetes構成ファイルを設定します。 Kubernetes構成ファイルを使用すると、kubectl
コマンドおよびKubernetesダッシュボードを使用してOKEクラスタにアクセスできます。
Kubernetes構成ファイルは、クラスタ、ユーザー、ネームスペースおよび認証メカニズムに関する情報を編成します。 コンテキストを定義して、クラスタとネームスペースを簡単に切り替えることができます。 kubectl
ツールは、Kubernetes構成ファイルを使用して、クラスタの選択およびクラスタのAPIサーバーとの通信に必要な情報を検索します。
Kubernetesコマンドライン・ツールのインストール
Kubernetesコマンドライン・ツールkubectl
をインストールして構成します。 kubectl
ツールを使用すると、アプリケーションのデプロイ、クラスタ・リソースの検査および管理、ログの表示などのOKEクラスタに対する操作を実行できます。
kubectl
をインストールするには、https://kubernetes.io/docs/tasks/tools/を参照してください。 kubectl
バージョンは、OKEクラスタのKubernetesバージョンの1つのマイナー・バージョン内にある必要があります。 たとえば、v1.29クライアントは、v1.28、v1.29およびv1.30コントロール・プレーンと通信できます。 「サポートされているバージョンのKubernetes」を参照してください。
kubectl
操作の完全なリストを含む詳細は、「コマンドライン・ツール(kubectl)」リファレンス・ページを参照してください。
Kubernetes構成ファイルの作成
OCI CLIを使用して、Kubernetes構成ファイルを作成します。
ヒント:
「コンピュートWeb UI」のクラスタ詳細ページの「クイック・スタート」ボタンは、Kubernetes構成ファイルの作成方法を示し、クラスタのOCIDを提供します。
-
クラスタのOCIDの取得:
oci ce cluster list
-
コマンドを実行して構成ファイルを作成します。
--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
コマンドの実行時に挿入するOCI CLIコマンドが含まれています。 デフォルトでは、Kubernetes構成ファイル内のOCI CLIコマンドは、認証トークンの生成時に現在のOCI CLIプロファイルを使用します。 OCI CLI構成ファイルで複数のプロファイルを定義している場合は、次のいずれかのメソッドを使用して、認証トークンの生成時に使用するプロファイルを指定します。profile-name
の値は、OCI 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 CLI構成ファイルで定義されているプロファイルの名前に設定されていることを確認します:
$ export OCI_CLI_PROFILE=profile-name
次のコマンドを実行して、クラスタにアクセスできることを確認します:
$ kubectl cluster-info
各Kubernetesネームスペースには、少なくとも1つのServiceAccountが含まれます: そのネームスペースのデフォルトのServiceAccount。default
という名前です。 ポッドの作成時にServiceAccountを指定しない場合、「OKEサービス」は、そのネームスペースにdefault
という名前のServiceAccountを自動的に割り当てます。
Pod内で実行されているアプリケーションは、自動的にマウントされたサービス・アカウント資格証明を使用してKubernetes APIにアクセスできます。