クラスタAPIテンプレート
Oracle CNEのKubernetesクラスタAPIテンプレート・ファイルについて説明します。
デフォルトのOCIクラスタは、追加の引数なしでoci
プロバイダを使用して作成できます。 たとえば:
ocne cluster start --provider oci
デフォルトのクラスタ設定によって有用なクラスタが作成されますが、追加の構成が必要になる可能性があります。 デプロイメントをカスタマイズするには、クラスタのベースとして使用するクラスタ・テンプレートを生成します。
ocne cluster template
コマンドは、クラスタ・テンプレートを作成するために使用され、テンプレートを生成するために設定したデフォルト構成およびクラスタ構成を使用します。 また、構成済コンパートメントからコンピュート・イメージOCIDsなどのものが自動的にフェッチされます。 クラスタ・テンプレートを作成してファイルに保存できます。次に例を示します:
ocne cluster template > mytemplate.yaml
結果のYAMLファイルには、ローカル・システム上にあるすべての構成を使用して、クラスタを作成するためのKubernetesクラスタAPIのクラスタ・リソースが含まれます。
たとえば、デプロイメントへのカスタマイズを含むクラスタ構成ファイル(この例ではmyconfig.yaml
という名前)を作成し、次のものを含めることができます:
provider: oci
name: mycluster
controlPlaneNodes: 3
workerNodes: 3
clusterDefinition: /home/username/mytemplate.yaml
providers:
oci:
compartment: ocid1.compartment.oc1..uniqueID
この例では、clusterDefinition
ファイルはKubernetesクラスタAPIテンプレートのロケーションです。このテンプレートは、このクラスタ構成ファイルの構成に基づいて生成されます。 このテンプレートは、クラスタの作成時に使用します。 ocne cluster template
コマンドを再度実行し、構成ファイルを指定して、この新しい構成を使用するようにクラスタ・テンプレートを更新できます。 たとえば:
ocne cluster template --config myconfig.yaml > $HOME/mytemplate.yaml
テンプレート・ファイルを編集して、クラスタ構成ファイルで指定されていないKubernetes「クラスタAPI」オプションを構成します。 テンプレートに問題がない場合は、クラスタ構成ファイルを使用してクラスタを作成します。 このクラスタ構成ファイルにはclusterDefinition
のクラスタ・テンプレートへのリンクが含まれているため、テンプレートはクラスタの作成に使用されます。 たとえば:
ocne cluster start --config myconfig.yaml
クラスタAPIテンプレート・ファイル
KubernetesクラスタAPIテンプレート・ファイルの内容について説明します。
KubernetesクラスタAPIテンプレート・ファイルを生成できます。このテンプレート・ファイルには、KubernetesクラスタAPIを使用してKubernetesクラスタを作成するために必要なすべての情報が含まれています。 ocne cluster template
コマンドを使用して、このファイルを作成します。 KubernetesクラスタAPIを使用してクラスタを作成するために、このテンプレートを保存および編集します。
オプションで、作成するクラスタにあわせてテンプレート内のカスタム・リソースを編集します。 使用可能なオプションについては、「Oracle Cloud Infrastructureドキュメント用のアップストリームKubernetesクラスタAPIプロバイダ」を参照してください。
テンプレート・ファイルには、クラスタの各コンポーネントのカスタム・リソースが含まれ、次のものが含まれます:
apiVersion: cluster.x-k8s.io/v1beta1
kind: Cluster
metadata:
labels:
cluster.x-k8s.io/cluster-name: "ocne"
name: "ocne"
namespace: "ocne"
spec:
...
---
apiVersion: infrastructure.cluster.x-k8s.io/v1beta2
kind: OCICluster
metadata:
labels:
cluster.x-k8s.io/cluster-name: "ocne"
name: "ocne"
namespace: "ocne"
spec:
...
---
kind: KubeadmControlPlane
apiVersion: controlplane.cluster.x-k8s.io/v1beta1
metadata:
name: "ocne-control-plane"
namespace: "ocne"
spec:
...
---
kind: OCIMachineTemplate
apiVersion: infrastructure.cluster.x-k8s.io/v1beta2
metadata:
name: "ocne-control-plane"
namespace: "ocne"
spec:
...
---
apiVersion: infrastructure.cluster.x-k8s.io/v1beta2
kind: OCIMachineTemplate
metadata:
name: "ocne-md-0"
namespace: "ocne"
spec:
...
---
apiVersion: bootstrap.cluster.x-k8s.io/v1beta1
kind: KubeadmConfigTemplate
metadata:
name: "ocne-md-0"
namespace: "ocne"
spec:
...
クラスタAPIテンプレートの作成
ocne cluster template
コマンドを使用して、KubernetesクラスタAPIテンプレートを作成します。
KubernetesクラスタAPIテンプレートは、KubernetesクラスタAPIを使用してクラスタをデプロイする場合に使用できます。
クラスタAPIテンプレートは、ローカル・システムに設定されているデフォルトを使用するか、クラスタ構成ファイルを使用して生成できます。
既存のVCNの使用
クラスタAPIテンプレートを編集して、既存のOCI Virtual Cloud Network (VCN)を使用します。
KubernetesクラスタをOCIにデプロイする際に既存のVCNを使用するには、VCN情報を含めるようにクラスタAPIテンプレートを生成および編集します。 次のOCIDsを指定する必要があります:
-
VCN. クラスタ・ノードに使用するVCN。
-
ネットワーク・セキュリティ・グループ。 これは、VCNへのイングレス・ルールを含むネットワーク・セキュリティ・グループです。
-
サブネット これはVCNのサブネットです。
VCNおよびサブネットに指定された値は、デプロイメント中にOCI Cloud Controller Managerによって、コントロール・プレーン・ロード・バランサを構成するためにも使用されます。