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が自動的に割り当てられます。

Pod内で実行されているアプリケーションは、自動的にマウントされたサービス・アカウント資格証明を使用してKubernetes APIにアクセスできます。

次の手順:

Kubernetes Dashboardを作成します

Kubernetes Dashboardの作成

ダッシュボードは、クラスタの管理、およびクラスタで実行されているアプリケーションの管理とトラブルシューティングに役立ちます。

Kubernetesサイトで、Kubernetes Dashboardのデプロイおよびアクセスを参照してください

次の手順:

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