このドキュメントで説明されているソフトウェアは、サポートされなくなったか、拡張サポートされています。
Oracleでは、現在サポートされているリリースにアップグレードすることをお勧めします。
第2章 構成ファイルの使用
環境およびモジュールの作成と管理を簡素化するために、構成ファイルを使用できます。 構成ファイルには、作成する環境およびモジュールに関するすべての情報が含まれます。 構成ファイルを使用して、Platform CLIコマンド・オプションの繰返しエントリを保存します。
構成ファイルは、グローバル・コマンド・オプションであるため、プラットフォームCLIコマンドとともに--config-file
オプションを使用できます。 --config-file
オプションをPlatform CLIコマンドとともに使用すると、--force
オプションを除き、その他のコマンド行オプションは無視されます。 構成ファイルに含まれる情報のみが、olcnectlコマンドとともに使用されます。
次の項では、構成ファイルの記述および構成ファイルを使用した環境およびモジュールの作成と削除について説明します。 この章で説明するよりも、構成ファイルの用途が多くなっています。 この章で説明するユースケースは、構成ファイルを使用する最も一般的な方法です。
2.1 構成ファイルの作成
構成ファイルは、yaml
またはyml
のファイル拡張子を持つ有効なYAMLである必要があります。 構成ファイル内のコンポーネントの基本的な形式は、次のとおりです:
environments: - environment-name: name globals: key: value modules: - module: name name: name args: key: value - module: name name: name args: key: value - environment-name: name globals: key: value modules: - module: name name: name args: key: value - module: name name: name args: key: value
olcnectl templateコマンドは、環境の構成ファイルを起動するためのいくつかの基本構成オプションを含むYAMLファイルを作成する場合に役立ちます。
olcnectl template
このコマンドは、ローカル・ディレクトリにconfig-file-template.yaml
という名前のファイルを作成します。 このファイルは必要に応じて編集できます。
構成ファイルには、olcnectlコマンド・オプションのkey: value
ペアが含まれている必要があります。 たとえば、環境を作成する場合、次のようなolcnectlコマンドを使用できます:
olcnectl environment create \ --api-server 127.0.0.1:8091 \ --environment-name myenvironment \ --secret-manager-type vault \ --vault-token s.3QKNuRoTqLbjXaGBOmO6Psjh \ --vault-address https://192.0.2.20:8200 \ --update-config
構成ファイルでこの同じ情報をYAML形式で表すには、次を使用します:
environments: - environment-name: myenvironment globals: api-server: 127.0.0.1:8091 secret-manager-type: vault vault-token: s.3QKNuRoTqLbjXaGBOmO6Psjh vault-address: https://192.0.2.20:8200 update-config: true
環境マップをYAMLのkey: value
ペアに直接作成するためのolcnectl environment createコマンド・オプションに注意してください。
modules
項を記述する場合は、モジュールに関連する任意のolcnectl moduleコマンド・オプションを使用できます。 つまり、モジュールで使用できるolcnectl moduleコマンド・オプションは、module
項に含めることができます。 モジュールのargs
項には、olcnectl module createコマンドで使用可能なオプションのみを含める必要があります。 その他のオプションは、メインのmodule
オプション・セットの下に置く必要があります。
この例では、--generate-scripts
および--force
オプションはolcnectl module createコマンドでは有効ではありませんが、olcnectl module validateまたはolcnectl module uninstallオプションに有効なオプションです。 generate-scripts
およびforce
オプションは、モジュールargs
として追加しないでください。かわりに、module: kubernetes
項にリストされます。
... modules: - module: kubernetes name: mycluster generate-scripts: true force: true args: kube-version: 1.21.14-3 container-registry: container-registry.oracle.com/olcne load-balancer: lb.example.com:6443 master-nodes: - control1.example.com:8090 - control2.example.com:8090 - control3.example.com:8090 worker-nodes: - worker1.example.com:8090 - worker2.example.com:8090 - worker3.example.com:8090 selinux: enforcing restrict-service-externalip: true restrict-service-externalip-ca-cert: /etc/olcne/certificates/restrict_external_ip/ca.cert restrict-service-externalip-tls-cert: /etc/olcne/certificates/restrict_external_ip/node.cert restrict-service-externalip-tls-key: /etc/olcne/certificates/restrict_external_ip/node.key
コマンドの必須オプションをすべて指定しない場合は、olcnectlで構成ファイルを使用するときに、オプションの入力を求めるプロンプトが表示されます。 キーの値を指定しない場合、そのolcnectlコマンド・オプションのデフォルトが使用されます。デフォルト値がない場合、そのキーは無視されます。 有効でないキー値を追加すると、無効なオプションの修正に役立つエラーが表示されます。 有効でないキーを追加すると、無視されます。
構成ファイルのolcnectlコマンドに--config-file
オプションを含めないでください。 このオプションは無視され、構成ファイルでは使用できません。
YAMLファイルのコンポーネントの順序は重要です。 コンポーネントは、Platform CLIを使用して作成する場合と同じ順序である必要があります。
たとえば、このファイルでは2つの環境が作成され、最初の環境にはKubernetesモジュールのみが含まれます。 2番目の環境には、Kubernetesモジュール、Helmモジュール、Operator Lifecycle Managerモジュール(Helmが必要)、Istioモジュール(Helmも必要)および最後にOracle Cloud Infrastructure Container Storage Interfaceモジュール(Helmも必要)が含まれます。 環境とすべてのモジュールの両方を、単一のolcnectlコマンドを使用して作成およびインストールできます。
environments: - environment-name: myenvironment1 globals: api-server: 127.0.0.1:8091 secret-manager-type: file olcne-ca-path: /etc/olcne/certificates/ca.cert olcne-node-cert-path: /etc/olcne/certificates/node.cert olcne-node-key-path: /etc/olcne/certificates/node.key modules: - module: kubernetes name: mycluster1 args: container-registry: container-registry.oracle.com/olcne load-balancer: lb.example.com:6443 master-nodes: - control1.example.com:8090 - control2.example.com:8090 - control3.example.com:8090 worker-nodes: - worker1.example.com:8090 - worker2.example.com:8090 - worker3.example.com:8090 selinux: enforcing restrict-service-externalip: true restrict-service-externalip-ca-cert: /etc/olcne/certificates/restrict_external_ip/ca.cert restrict-service-externalip-tls-cert: /etc/olcne/certificates/restrict_external_ip/node.cert restrict-service-externalip-tls-key: /etc/olcne/certificates/restrict_external_ip/node.key - environment-name: myenvironment2 globals: api-server: 127.0.0.1:8091 secret-manager-type: file olcne-ca-path: /etc/olcne/certificates/ca.cert olcne-node-cert-path: /etc/olcne/certificates/node.cert olcne-node-key-path: /etc/olcne/certificates/node.key modules: - module: kubernetes name: mycluster2 args: container-registry: container-registry.oracle.com/olcne load-balancer: lb.example.com:6443 master-nodes: - control4.example.com:8090 - control5.example.com:8090 - control6.example.com:8090 worker-nodes: - worker4.example.com:8090 - worker5.example.com:8090 - worker6.example.com:8090 node-labels: failure-domain.beta.kubernetes.io/zone=US-ASHBURN-AD-2 node-ocids: - control4.example.com=ocid1.instance.oc1.iad... - control5.example.com=ocid1.instance.oc1.iad... - control6.example.com=ocid1.instance.oc1.iad... - worker4.example.com=ocid1.instance.oc1.iad... - worker5.example.com=ocid1.instance.oc1.iad... - worker6.example.com=ocid1.instance.oc1.iad... selinux: enforcing restrict-service-externalip: true restrict-service-externalip-ca-cert: /etc/olcne/certificates/restrict_external_ip/ca.cert restrict-service-externalip-tls-cert: /etc/olcne/certificates/restrict_external_ip/node.cert restrict-service-externalip-tls-key: /etc/olcne/certificates/restrict_external_ip/node.key - module: helm name: myhelm args: helm-kubernetes-module: mycluster2 - module: operator-lifecycle-manager name: myolm args: olm-helm-module: myhelm - module: istio name: myistio args: istio-helm-module: myhelm - module: oci-csi name: myoci args: oci-csi-helm-module: myhelm oci-region: us-ashburn-1 oci-tenancy: ocid1.tenancy.oc1... oci-compartment: ocid1.compartment.oc1... oci-user: ocid1.user.oc1... oci-fingerprint: b5:52:... oci-private-key: /home/opc/.oci/oci_api_key.pem
2.2 構成ファイルを使用したインストール
この項では、構成ファイルを使用して環境を作成し、それにKubernetesをデプロイする例を示します。
この構成ファイルはmyenvironment.yaml
という名前で、次が含まれます:
environments: - environment-name: myenvironment globals: api-server: 127.0.0.1:8091 secret-manager-type: file olcne-ca-path: /etc/olcne/certificates/ca.cert olcne-node-cert-path: /etc/olcne/certificates/node.cert olcne-node-key-path: /etc/olcne/certificates/node.key modules: - module: kubernetes name: mycluster args: container-registry: container-registry.oracle.com/olcne load-balancer: lb.example.com:6443 master-nodes: - control1.example.com:8090 - control2.example.com:8090 - control3.example.com:8090 worker-nodes: - worker1.example.com:8090 - worker2.example.com:8090 - worker3.example.com:8090 selinux: enforcing restrict-service-externalip: true restrict-service-externalip-ca-cert: /etc/olcne/certificates/restrict_external_ip/ca.cert restrict-service-externalip-tls-cert: /etc/olcne/certificates/restrict_external_ip/node.cert restrict-service-externalip-tls-key: /etc/olcne/certificates/restrict_external_ip/node.key
通常、環境を作成してKubernetesモジュールをデプロイするのと同じコマンドを使用しますが、プラットフォームCLIを使用してすべてのコマンド・オプションを渡すかわりに、構成ファイルのロケーションを指定するだけです。
-
olcnectl environment createコマンドを
--config-file
オプションとともに使用します:olcnectl environment create \ --config-file myenvironment.yaml
環境が作成され、Kubernetesモジュールのインストールに使用する準備が整います。 構成ファイルに複数の環境が設定されている場合は、すべてこの1つのステップを使用して作成されます。
-
olcnectl module createコマンドを使用して、Kubernetesモジュールを作成します。
olcnectl module create \ --config-file myenvironment.yaml
構成ファイルに複数のモジュールが設定されている場合は、すべてこの1つのステップを使用して作成されます。
-
モジュールがノードにインストール可能かどうかも検証する必要があります。 olcnectl module validateコマンドを使用して、モジュールを検証します。
olcnectl module validate \ --config-file myenvironment.yaml
構成ファイルに複数のモジュールが設定されている場合は、それらがすべて検証されます。
-
最後のステップは、モジュールを取り付けることです。 olcnectl module installコマンドを使用して、モジュールをインストールします。
olcnectl module install \ --config-file myenvironment.yaml
構成ファイルに複数のモジュールが設定されている場合は、それらがすべてインストールされます。
-
Kubernetesモジュールがデプロイされ、olcnectl module instancesコマンドを使用してノードが設定されていることを確認できます。
olcnectl module instances \ --config-file myenvironment.yaml
INSTANCE MODULE STATE control1.example.com:8090 node installed control2.example.com:8090 node installed control3.example.com:8090 node installed worker1.example.com:8090 node installed worker2.example.com:8090 node installed worker3.example.com:8090 node installed mycluster kubernetes installed
2.3 構成ファイルを使用したモジュールまたは環境の追加
デプロイメントにモジュールまたは環境を追加する場合は、それらを構成ファイルに追加し、olcnectlコマンドを実行してデプロイメントに追加します。 たとえば、Operator Lifecycle Managerモジュールを既存のKubernetesデプロイメントに追加するには、次のようなファイルを作成します。 このファイルは、HelmおよびOperator Lifecycle Managerモジュールを追加して環境を作成し、Kubernetesをデプロイするために第2.2項、「構成ファイルを使用したインストール」で使用されるファイルと同じです。
environments: - environment-name: myenvironment globals: api-server: 127.0.0.1:8091 secret-manager-type: file olcne-ca-path: /etc/olcne/certificates/ca.cert olcne-node-cert-path: /etc/olcne/certificates/node.cert olcne-node-key-path: /etc/olcne/certificates/node.key modules: - module: kubernetes name: mycluster args: container-registry: container-registry.oracle.com/olcne load-balancer: lb.example.com:6443 master-nodes: - control1.example.com:8090 - control2.example.com:8090 - control3.example.com:8090 worker-nodes: - worker1.example.com:8090 - worker2.example.com:8090 - worker3.example.com:8090 selinux: enforcing restrict-service-externalip: true restrict-service-externalip-ca-cert: /etc/olcne/certificates/restrict_external_ip/ca.cert restrict-service-externalip-tls-cert: /etc/olcne/certificates/restrict_external_ip/node.cert restrict-service-externalip-tls-key: /etc/olcne/certificates/restrict_external_ip/node.key - module: helm name: myhelm args: helm-kubernetes-module: mycluster - module: operator-lifecycle-manager name: myolm args: olm-helm-module: myhelm
olcnectl moduleコマンドを使用して、HelmモジュールとOperator Lifecycle Managerモジュールをインストールします。
olcnectl module create \ --config-file myenvironment.yaml olcnectl module validate \ --config-file myenvironment.yaml olcnectl module install \ --config-file myenvironment.yaml
追加のHelmおよびOperator Lifecycle Managerモジュールは、環境の既存のKubernetesクラスタにインストールされます。
2.4 構成ファイルを使用した特定のモジュールまたは環境のアンインストール
Platform APIサーバーは、構成ファイルに含まれているすべての情報を処理するため、デプロイメントから特定のコンポーネントを削除する場合、他のコンポーネントを残したまま、削除するコンポーネントのみを含む別の構成ファイルを作成する必要があります。 新しい構成ファイルには、アンインストールする環境およびモジュールに関する情報のみが含まれます。
たとえば、環境のKubernetesモジュールではなくHelmおよびOperator Lifecycle Managerモジュールを削除するには、次のようなファイルを作成します。 このファイルは、Kubernetesモジュールに関する情報なしで第2.3項、「構成ファイルを使用したモジュールまたは環境の追加」で使用されるファイルと同じです。 モジュールがデプロイされる環境と、削除するモジュールのみを指定します。
environments: - environment-name: myenvironment globals: api-server: 127.0.0.1:8091 secret-manager-type: file olcne-ca-path: /etc/olcne/certificates/ca.cert olcne-node-cert-path: /etc/olcne/certificates/node.cert olcne-node-key-path: /etc/olcne/certificates/node.key modules: - module: helm name: myhelm args: helm-kubernetes-module: mycluster - module: operator-lifecycle-manager name: myolm args: olm-helm-module: myhelm
この例のファイル名はmyenvironment-olm.yaml
です。
デプロイメントの整合性を維持するために、構成ファイルが正しいことを確認してから、モジュールをアンインストールしてください。
olcnectl module uninstallコマンドを使用して、HelmおよびOperator Lifecycle Managerモジュールをアンインストールします。 --force
オプションを使用して、プラットフォームAPIサーバーによって正しい順序でモジュールが削除されるようにしてください。
olcnectl module uninstall \ --config-file myenvironment-olm.yaml \ --force
HelmおよびOperator Lifecycle Managerモジュールは環境からアンインストールされますが、Kubernetesモジュールは変更されません。
2.5 構成ファイルを使用したクラスタのスケーリング
この項の情報は、構成ファイルを使用してKubernetesクラスタをスケーリングする方法を示しています。 クラスタのスケーリングおよびノードの準備の詳細は、「コンテナ・オーケストレーション」を参照してください。
構成ファイルを使用してKubernetesクラスタをスケーリングするには、Kubernetesモジュールにリストされているノードを変更し、olcnectl module updateコマンドを使用してモジュールに変更を適用します。 たとえば、構成ファイルに次がリストされている既存のクラスタにノードを追加するには:
... modules: - module: kubernetes name: mycluster args: container-registry: container-registry.oracle.com/olcne load-balancer: lb.example.com:6443 master-nodes: - control1.example.com:8090 - control2.example.com:8090 - control3.example.com:8090 worker-nodes: - worker1.example.com:8090 - worker2.example.com:8090 - worker3.example.com:8090 ...
新しいノードを構成ファイルに追加します。 この場合、2つの追加コントロール・プレーン・ノードと1つの追加ワーカー・ノードがあります。
... modules: - module: kubernetes name: mycluster args: container-registry: container-registry.oracle.com/olcne load-balancer: lb.example.com:6443 master-nodes: - control1.example.com:8090 - control2.example.com:8090 - control3.example.com:8090 - control4.example.com:8090 - control5.example.com:8090 worker-nodes: - worker1.example.com:8090 - worker2.example.com:8090 - worker3.example.com:8090 - worker4.example.com:8090 ...
olcnectl module updateコマンドを使用して、クラスタをスケール・アップします。
olcnectl module update \ --config-file myenvironment.yaml
プラットフォームAPIサーバーがクラスタをバックアップし、新しいノードを追加します。
クラスタをスケール・ダウンするには、クラスタから削除するノードに関する情報を構成ファイルから削除すること以外は、同じステップを実行します。
2.6 構成ファイルを使用した更新およびアップグレード
モジュールを更新またはアップグレードするときに、構成ファイルを使用できます。 モジュールの更新またはアップグレードの詳細は、「更新およびアップグレード」を参照してください。
すべてのモジュールを使用可能な最新のエラータ・リリースに更新するには、olcnectl module updateコマンドを使用します。
olcnectl module update \ --config-file myenvironment.yaml
モジュールを最新の使用可能なリリースにアップグレードするには、構成ファイルでモジュールのバージョンを設定し、olcnectl module updateコマンドを使用します。 たとえば、Kubernetesモジュールを最新バージョンにアップグレードするには、kube-version: 1.21.14-3
を追加し、Istioモジュールにistio-version: 1.13.9
を追加します :
... modules: - module: kubernetes name: mycluster args: container-registry: container-registry.oracle.com/olcne load-balancer: lb.example.com:6443 kube-version: 1.21.14-3 master-nodes: - control1.example.com:8090 - control2.example.com:8090 - control3.example.com:8090 worker-nodes: - worker1.example.com:8090 - worker2.example.com:8090 - worker3.example.com:8090 selinux: enforcing restrict-service-externalip: true restrict-service-externalip-ca-cert: /etc/olcne/certificates/restrict_external_ip/ca.cert restrict-service-externalip-tls-cert: /etc/olcne/certificates/restrict_external_ip/node.cert restrict-service-externalip-tls-key: /etc/olcne/certificates/restrict_external_ip/node.key modules: - module: helm name: myhelm args: helm-kubernetes-module: mycluster - module: istio name: myistio args: istio-helm-module: myhelm istio-version: 1.13.9
olcnectl module updateコマンドを使用して、構成ファイルにリストされているモジュールをアップグレードします。
olcnectl module update \ --config-file myenvironment.yaml
2.7 構成ファイルを使用したアンインストール
構成ファイルを使用して環境およびモジュールをアンインストールするには、ファイルを使用せずにモジュールを削除するために使用するものと同じolcnectlコマンドを使用する必要があります。 つまり、最初にモジュールを削除してから、環境を削除してください。
環境からモジュールを削除するときに、olcnectl module uninstallコマンドの--force
オプションを使用して、プラットフォームの依存性順序がプラットフォームAPIサーバーによって内部的に維持されるようにします。
olcnectl module uninstall \ --config-file myenvironment.yaml \ --force
構成ファイル内のすべてのモジュールが削除されます。
次を使用して環境を削除します:
olcnectl environment delete \ --config-file myenvironment.yaml
環境が削除されます。