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を提供します。

  1. クラスタのOCIDの取得: oci ce cluster list

  2. コマンドを実行して構成ファイルを作成します。

    --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にアクセスできます。