自己管理ノードのCloud-initスクリプトの作成

Kubernetes Engineで作成された拡張クラスタに追加する自己管理ノードのcloud-initスクリプトを作成する方法を確認します。

拡張クラスタに追加する自己管理ノードを作成する場合は、クラスタのKubernetes APIプライベート・エンドポイントおよびbase64でエンコードされたCA証明書を指定するcloud-initスクリプトを指定する必要があります。

自己管理ノードのcloud-initスクリプトを作成するには:

  1. コンソールまたはCLIを使用して、自己管理ノードを追加する拡張クラスタのKubernetes APIプライベート・エンドポイントを取得します:
    • コンソールの使用:
      1. ナビゲーション・メニューを開き、「開発者サービス」を選択します。「コンテナとアーティファクト」で、「Kubernetesクラスタ(OKE」を選択します。
      2. 「クラスタ・リスト」ページで、自己管理ノードを追加する拡張クラスタの名前をクリックします。

        「クラスタの詳細」ページに、ポート番号を含むKubernetes APIプライベート・エンドポイントが表示されます。例: 10.0.103.170:6443

      3. ポート番号なしで、クラスタのKubernetes APIプライベート・エンドポイントをノートにとります。例: 10.0.103.170
    • CLIの使用:
      1. 次を入力します:
        oci ce cluster create-kubeconfig --cluster-id <cluster-ocid> --region <region-identifier> --kube-endpoint PRIVATE_ENDPOINT --file - \
        | grep -oE "https://[0-9\.]+:6443" \
        | sed -E 's^https://([0-9\.]+):.*^\1^' 

        grepコマンドは、ce cluster create-kubeconfigコマンドの出力からクラスタ・エンドポイントのURLを抽出します。sedコマンドは、プロトコルおよびポート情報をクラスタ・エンドポイントのURLから削除して、IPアドレスのみを残します。

      2. クラスタのKubernetes APIプライベート・エンドポイントをノートにとります。例: 10.0.103.170
  2. コンソールまたはCLIを使用して、クラスタのkubeconfigファイルからクラスタのbase64エンコードCA証明書を取得します:
    • コンソールの使用:
      1. 「クラスタの詳細」ページで、クラスタのOCIDをノートにとります。たとえば、ocid1.cluster.oc1.phx.aaaaaaaa______ivqです。
      2. 「クラスタへのアクセス」をクリックします。
      3. 「クラスタへのアクセス」ダイアログで、「クラウド・シェル・アクセス」をクリックし、「クラウド・シェルの起動」をクリックします。
      4. 「クラウド・シェル」ウィンドウで、次のコマンドを入力します:
        oci ce cluster create-kubeconfig --cluster-id <cluster-ocid> --region <region-identifier> --file - | grep -oE "LS0t.*"

        ここでは:

        • <cluster-ocid>は、「クラスタへのアクセス」ダイアログのステップ2に示されている--cluster-idパラメータの値です。
        • <region-identifier>は、「クラスタへのアクセス」ダイアログのステップ2に示されている--regionパラメータの値です。

        例:

        oci ce cluster create-kubeconfig --cluster-id ocid1.cluster.oc1.phx.aaaaaaaa______ivq --region us-phoenix-1 --file - | grep -oE "LS0t.*"

        base64でエンコードされたCA証明書は、LS0tという文字で始まる長い英数字の文字列としてクラウド・シェル・ウィンドウに表示されます。

      5. クラスタのbase64でエンコードされたCA証明書をノートにとります。
    • CLIの使用:
      1. 次を入力します:
        oci ce cluster create-kubeconfig --cluster-id <cluster-ocid> --region <region-identifier> --file - | grep -oE "LS0t.*"

        base64でエンコードされたCA証明書は、LS0tという文字で始まる長い英数字の文字列としてクラウド・シェル・ウィンドウに表示されます。

      2. クラスタのbase64でエンコードされたCA証明書をノートにとります。
  3. 次のようにcloud-initスクリプトを作成します。
    1. 任意のテキスト・エディタで、新しいテキスト・ファイルを作成します。
    2. 次のスクリプトをコピーしてファイルに貼り付けます。
      #!/usr/bin/env bash
      bash /etc/oke/oke-install.sh \
        --apiserver-endpoint "<cluster-endpoint>" \
        --kubelet-ca-cert "<base64-encoded-certificate>"

      ここでは:

      • <cluster-endpoint>は、(ポート番号なしで)以前に取得したクラスタのKubernetes APIプライベート・エンドポイントです。例: 10.0.103.170
      • <base64-encoded-certificate>は、以前に取得したクラスタのbase64でエンコードされたCA証明書です(文字LS0tから開始)。

      例:

      #!/usr/bin/env bash
      bash /etc/oke/oke-install.sh \
        --apiserver-endpoint "10.0.103.170" \
        --kubelet-ca-cert "LS0t______UtLS0tLQo="
    3. 自己管理ノードの作成時に使用するテキスト・ファイルを保存します。