自己管理ノードのCloud-initスクリプトの作成
Kubernetes Engineで作成された拡張クラスタに追加する自己管理ノードのcloud-initスクリプトを作成する方法を確認します。
拡張クラスタに追加する自己管理ノードを作成する場合は、クラスタのKubernetes APIプライベート・エンドポイントおよびbase64でエンコードされたCA証明書を指定するcloud-initスクリプトを指定する必要があります。
自己管理ノードのcloud-initスクリプトを作成するには:
- コンソールまたはCLIを使用して、自己管理ノードを追加する拡張クラスタのKubernetes APIプライベート・エンドポイントを取得します:
- コンソールの使用:
- ナビゲーション・メニューを開き、「開発者サービス」を選択します。「コンテナとアーティファクト」で、「Kubernetesクラスタ(OKE」を選択します。
- 「クラスタ・リスト」ページで、自己管理ノードを追加する拡張クラスタの名前をクリックします。
「クラスタの詳細」ページに、ポート番号を含むKubernetes APIプライベート・エンドポイントが表示されます。例:
10.0.103.170:6443
- ポート番号なしで、クラスタのKubernetes APIプライベート・エンドポイントをノートにとります。例:
10.0.103.170
- CLIの使用:
- 次を入力します:
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アドレスのみを残します。 - クラスタのKubernetes APIプライベート・エンドポイントをノートにとります。例:
10.0.103.170
- 次を入力します:
- コンソールの使用:
- コンソールまたはCLIを使用して、クラスタのkubeconfigファイルからクラスタのbase64エンコードCA証明書を取得します:
- コンソールの使用:
- 「クラスタの詳細」ページで、クラスタのOCIDをノートにとります。たとえば、
ocid1.cluster.oc1.phx.aaaaaaaa______ivq
です。 - 「クラスタへのアクセス」をクリックします。
- 「クラスタへのアクセス」ダイアログで、「クラウド・シェル・アクセス」をクリックし、「クラウド・シェルの起動」をクリックします。
- 「クラウド・シェル」ウィンドウで、次のコマンドを入力します:
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
という文字で始まる長い英数字の文字列としてクラウド・シェル・ウィンドウに表示されます。 - クラスタのbase64でエンコードされたCA証明書をノートにとります。
- 「クラスタの詳細」ページで、クラスタのOCIDをノートにとります。たとえば、
- CLIの使用:
- 次を入力します:
oci ce cluster create-kubeconfig --cluster-id <cluster-ocid> --region <region-identifier> --file - | grep -oE "LS0t.*"
base64でエンコードされたCA証明書は、
LS0t
という文字で始まる長い英数字の文字列としてクラウド・シェル・ウィンドウに表示されます。 - クラスタのbase64でエンコードされたCA証明書をノートにとります。
- 次を入力します:
- コンソールの使用:
- 次のようにcloud-initスクリプトを作成します。
- 任意のテキスト・エディタで、新しいテキスト・ファイルを作成します。
- 次のスクリプトをコピーしてファイルに貼り付けます。
#!/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="
- 自己管理ノードの作成時に使用するテキスト・ファイルを保存します。