機械翻訳について

OCIでのクラスタの作成

OCIでKubernetesクラスタを作成する方法を学習します。

ociプロバイダを使用してクラスタを作成すると、次のようになります:

  1. CLIは、管理クラスタが使用可能かどうかを検出します。 そうでない場合は、エフェメラル・クラスタを起動して管理クラスタとして機能します。 エフェメラル・クラスタの起動に必要なすべてのリソースがフェッチされ、インストールされます。

  2. 管理クラスタが使用可能な場合、構成されたOCIコンパートメントで、互換性のあるコンピュートOracle Container Host for Kubernetes (OCK)イメージがチェックされます。 使用可能なOCKイメージがない場合は、それらが生成され、OCI Object Storageバケットにアップロードされて、管理クラスタにインポートされます。 OCKイメージは、Qcow2形式からブート可能なコンピュート・イメージに変換され、カスタム・コンピュート・イメージとして保存されます。

  3. このプロセスが完了すると、すべてのKubernetesクラスタAPIプロバイダが管理クラスタにインストールされます。

  4. KubernetesクラスタAPIプロバイダが起動すると、KubernetesクラスタAPIリソースが管理クラスタにインストールされます。

  5. 管理クラスタの準備が完了すると、コンピュート・インスタンス、ネットワーキングおよびネットワーク・ロード・バランサを含むOCIクラスタが作成および設定されます。

  6. OCIクラスタが自己管理に設定されている場合は、クラスタAPIリソースがワークロード・クラスタに移行されます。

OCIクラスタの作成

ociプロバイダを使用して、OCIにKubernetesクラスタを作成します。

ociプロバイダを使用してOCIにKubernetesクラスタを作成するには、まずlibvirtプロバイダを使用してエフェメラル・クラスタを作成するようにlocalhostを設定するか、クラスタを管理クラスタとして使用できるようにする必要があります。 管理クラスタの詳細は、「OCIプロバイダ」を参照してください。

また、OCI CLIをlocalhostにインストールおよび構成して、クラスタが作成されているOCIコンパートメントへのアクセスを有効にする必要があります。

オプションで、クラスタ構成ファイルを使用して、コントロール・プレーンおよびワーカー・ノードの数、クラスタAPI CRを含むクラスタ定義ファイル、オブジェクト・ストレージ・バケット名(ocne-imagesのデフォルトが使用されていない場合)、またはその他の数の構成オプションなどのクラスタ情報を指定できます。

クラスタ構成ファイル・オプションで設定が指定されていないが、クラスタAPIプロバイダで使用可能な場合は、クラスタのCRを含むクラスタ・テンプレート・ファイルを作成します。 その後、「クラスタAPI」オプションを使用してこれらのCRを手動で編集し、テンプレートをクラスタ構成ファイルに含めることができます。

重要:

高可用性のスプリット・イン・シナリオを回避するには、コントロール・プレーン・ノードの数を奇数(1、3、5など)にする必要があります。 デフォルトは1つのコントロール・プレーン・ノードと0つのワーカー・ノードです。

  1. ociプロバイダを使用してクラスタをプロビジョニングするようにlocalhostを設定します。

    「OCIプロバイダの設定」を参照してください。

  2. (オプション)クラスタ構成ファイルを設定します。

    クラスタ構成には、クラスタの作成時に使用するクラスタ固有の情報が含まれます。 このファイルは、デフォルトの構成($HOME/.ocne/defaults.yamlファイルで設定)をオーバーライドします。 クラスタ構成ファイルには次のものが含まれます:

    provider: oci
    name: mycluster
    providers:
      oci:
        compartment: ocid1.compartment.oc1..uniqueID
        vcn: ocid1.vcn.oc1.uniqueID
        loadBalancer:
          subnet1: ocid1.subnet.oc1.uniqueID
          subnet2: ocid1.subnet.oc1.uniqueID

    または、より複雑なクラスタ構成ファイルには次のものが含まれます:

    provider: oci
    proxy:
      httpsProxy: http://myproxy.example.com:2138
      httpProxy: http://myproxy.example.com:2138
      noProxy: .example.com,127.0.0.1,localhost,169.254.169.254,10.96.0.0/12,10.244.0.0/16
    headless: true
    name: mycluster
    workerNodes: 3 
    controlPlaneNodes: 3
    providers:
      oci:
        profile: MYTENANCY
        selfManaged: false
        imageBucket: my-ocne-images
        compartment: ocid1.compartment.oc1..uniqueID
        vcn: ocid1.vcn.oc1.uniqueID
        loadBalancer:
          subnet1: ocid1.subnet.oc1.uniqueID
          subnet2: ocid1.subnet.oc1.uniqueID
        workerShape: 
          shape: VM.Standard.E4.Flex
          ocpus: 2
        controlPlaneShape: 
          shape: VM.Standard.E4.Flex
          ocpus: 2

    クラスタ構成ファイルの詳細は、「クラスタ構成ファイル」を参照してください。

  3. (オプション)クラスタ・テンプレート・ファイルを設定します。

    クラスタ・テンプレートには、クラスタを作成するためのKubernetesクラスタAPI CRが含まれます。 クラスタ構成ファイルで構成を使用してテンプレートを生成し、結果として生成されるCRを編集して、クラスタ構成でオプションとして使用できないオプションを含めることができます。 クラスタ・テンプレートの作成の詳細は、「クラスタAPIテンプレート」を参照してください。

    ヒント:

    コンパートメント内の既存のVCNを使用するようにクラスタを構成するには、「既存のVCNの使用」を参照してください。

    クラスタ構成ファイルにクラスタ・テンプレートへのリンクを含めます。 たとえば、次のオプションも含まれます:

    clusterDefinition: /path/template.yaml
  4. クラスタを作成します。

    ocne cluster startコマンドを使用して、クラスタを作成します。 構文は次のとおりです。

    ocne cluster start 
    [{-u|--auto-start-ui} {true|false}]
    [{-o|--boot-volume-container-image} URI]
    [{-C|--cluster-name} name]
    [{-c|--config} path] 
    [{-n|--control-plane-nodes} integer] 
    [{-i|--key} path]
    [--load-balancer address]
    [{-P|--provider} provider]
    [{-s|--session} URI]
    [{-v|--version} version]
    [--virtual-ip IP]
    [{-w|--worker-nodes} integer]

    構文オプションの詳細は、Oracle Cloud Native Environment: CLIを参照してください。

    たとえば:

    ocne cluster start --provider oci
    ocne cluster start --config myconfig.yaml

クラスタ・インストールのモニタリング

KubernetesクラスタAPIポッドのログを表示して、OCIでのKubernetesクラスタの作成を監視します。

OCIでのKubernetesクラスタのデプロイメントを監視するには、管理クラスタで作成された複数のKubernetesクラスタAPIポッドのログを確認します。

ヒント:

クラスタを自己管理に設定した場合、デプロイメントが成功すると、エフェメラル・クラスタは削除されます。 エフェメラル・クラスタの削除後にログを表示するには、次のように、クラスタのkubeconfigファイルをOCIで実行されているワークロード・クラスタに設定します:

export KUBECONFIG=$(ocne cluster show --cluster-name cluster-name)

ここで、cluster_nameはワークロード・クラスタの名前です。

  1. 管理クラスタのkubeconfigファイルのロケーションを設定します。

    別の端末セッションで、管理クラスタのkubeconfigファイルのロケーションを設定します。

    export KUBECONFIG=$(ocne cluster show --cluster-name cluster-name)

    ここで、cluster_nameは管理クラスタの名前です。

  2. イベントを表示します。

    kubectl get eventsコマンドを使用して、クラスタが作成されたネームスペース内のイベントに関する情報を取得します。 デフォルトのネームスペースはocneです。 たとえば:

    kubectl get events --namespace ocne
  3. capoci-controller-managerポッド・ログを表示します。

    kubectl logsコマンドを使用して、ポッドのログを表示します。

    表示されたコマンドをコピーし、Tabキーを押して完全なポッド名にアクセスします。

    kubectl logs --namespace cluster-api-provider-oci-system capoci-controller-manager
  4. control-plane-capi-controller-managerポッド・ログを表示します。

    kubectl logsコマンドを使用して、ポッドのログを表示します。

    表示されたコマンドをコピーし、Tabキーを押して完全なポッド名にアクセスします。

    kubectl logs --namespace capi-kubeadm-control-plane-system control-plane-capi-controller-manager
  5. bootstrap-capi-controller-managerポッド・ログを表示します。

    kubectl logsコマンドを使用して、ポッドのログを表示します。

    表示されたコマンドをコピーし、Tabキーを押して完全なポッド名にアクセスします。

    kubectl logs --namespace capi-kubeadm-bootstrap-system bootstrap-capi-controller-manager