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構成ファイルを作成します。

ヒント

Compute Cloud@Customerコンソールのクラスタ詳細ページの「クイック・スタート」ボタンは、Kubernetes構成ファイルの作成方法を示し、クラスタのOCIDを提供します。

  1. クラスタのOCIDを取得します: oci ce cluster list

  2. 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のデプロイとアクセスを参照してください。

次の手順:

OKEワーカー・ノード・プールの作成