機械翻訳について

このドキュメントで説明されているソフトウェアは、サポートされなくなったか、拡張サポートされています。
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を使用してすべてのコマンド・オプションを渡すかわりに、構成ファイルのロケーションを指定するだけです。

環境を作成し、Kubernetesをオペレータ・ノードにデプロイするには:
  1. olcnectl environment createコマンドを--config-fileオプションとともに使用します:

    olcnectl environment create \
    --config-file myenvironment.yaml 

    環境が作成され、Kubernetesモジュールのインストールに使用する準備が整います。 構成ファイルに複数の環境が設定されている場合は、すべてこの1つのステップを使用して作成されます。

  2. olcnectl module createコマンドを使用して、Kubernetesモジュールを作成します。

    olcnectl module create \
    --config-file myenvironment.yaml 

    構成ファイルに複数のモジュールが設定されている場合は、すべてこの1つのステップを使用して作成されます。

  3. モジュールがノードにインストール可能かどうかも検証する必要があります。 olcnectl module validateコマンドを使用して、モジュールを検証します。

    olcnectl module validate \
    --config-file myenvironment.yaml 

    構成ファイルに複数のモジュールが設定されている場合は、それらがすべて検証されます。

  4. 最後のステップは、モジュールを取り付けることです。 olcnectl module installコマンドを使用して、モジュールをインストールします。

    olcnectl module install \
    --config-file myenvironment.yaml 

    構成ファイルに複数のモジュールが設定されている場合は、それらがすべてインストールされます。

  5. 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 

環境が削除されます。