自己管理ノードのCloud-initスクリプトの作成
Kubernetes Engineで作成された拡張クラスタに追加する自己管理ノードのcloud-initスクリプトを作成する方法を確認します。
拡張クラスタに追加する自己管理ノードを作成する場合は、クラスタのKubernetes APIプライベート・エンドポイントおよびbase64でエンコードされたCA証明書を指定するcloud-initスクリプトを指定する必要があります。
自己管理ノードのcloud-initスクリプトを作成するには:
- コンソールまたはCLIを使用して、自己管理ノードを追加する拡張クラスタのKubernetes APIプライベート・エンドポイントを取得します:
- コンソールの使用:
- 「クラスタ」リスト・ページで、自己管理ノードを追加する拡張クラスタの名前を選択します。リスト・ページまたはクラスタの検索に関するヘルプが必要な場合は、クラスタのリストを参照してください。
「クラスタ詳細」タブには、ポート番号を含む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=" - 自己管理ノードの作成時に使用するテキスト・ファイルを保存します。