vSphere 上の単一ノード クラスタ

Tanzu Kubernetes Grid (TKG) は、単一ノード クラスタをサポートします。単一ノード クラスタは、ホストされたワークロードが、単一の ESXi ホスト上で制御プレーン インフラストラクチャと一緒に実行されるワークロード クラスタです。

単一ノード クラスタの占有量をさらに最小限に抑えるには、tiny Tanzu Kubernetes リリース (TKr) から作成します。これは、基本 OS に Photon または Ubuntu の Tiny OVA を持っています。このようなクラスタは、「最小」単一ノード クラスタと呼ばれます。

単一ノード クラスタは、vSphere で実行され、スタンドアローン管理クラスタによって展開されるクラスベースのワークロード クラスタです。

単一ノード クラスタは、Telco Cloud Automation (TCA) で完全にサポートされています。

Tanzu Mission Control (TMC) を使用して単一ノード クラスタを作成および管理することはできませんが、この機能は TMC の今後のリリースで計画されています。

単一ノード クラスタのユースケースは次のとおりです。

  • 最小単一ノード クラスタ
    • 離れているエッジ セル サイトや他のエッジの場所など、リソースに制約のあるホスト環境
  • 標準の単一ノード クラスタ
    • 試験的な開発環境とテスト環境

互換性

単一ノード クラスタは、次の環境およびコンポーネントでサポートされます。

カテゴリ サポートされているオプション
インフラストラクチャ vSphere 7、vSphere 8
ノードの OS Ubuntu 20.04、Photon 3
ノード サイズ small
パッケージ Cert Manager、Fluent Bit、Multus、Prometheus、Whereabouts
制御プレーン エンドポイント プロバイダ Kube-Vip*
ワークロード ロード バランサ Kube-Vip*
ワークロード クラスタ タイプ クラスベース
CNI Antrea、Calico
接続モード オンライン、インターネット制限

*TKG v2.4 の単一ノード クラスタでは、NSX Advanced Load Balancer (ALB) はサポートされていません。

前提条件

最小単一ノード クラスタの作成

占有量を最小限に抑えるため、tiny Tanzu Kubernetes リリース (TKr) を使用する単一ノード ワークロード クラスタを vSphere に作成するには、次の手順を実行します。

  1. OVA を準備します。

    1. Tanzu Kubernetes Grid のダウンロード ページに移動し、Customer Connect にログインします。

    2. VMware Tanzu Kubernetes Grid の行で、[ダウンロードに移動 (Go to Downloads)] をクリックします。

    3. バージョン 2.x を選択し、[VMware Tanzu Kubernetes Grid] > [ダウンロードに移動 (GO TO DOWNLOADS)] の順にクリックします。

    4. Tiny TKG OVA で、単一ノード クラスタに使用する Tiny OVA をダウンロードします。

      • Photon v3 Kubernetes v1.27.5 Tiny OVA

      • Ubuntu 2004 Kubernetes v1.27.5 Tiny OVA

    5. 基本イメージ テンプレートの vSphere へのインポート」で説明されているように、Tiny OVA を vSphere 環境にインポートして、仮想マシン テンプレートに変換します。

  2. 単一ノード ワークロード クラスタを作成します。

    最小の単一ノード クラスタを作成するには、kubernetes スタイルのオブジェクト仕様を使用して tanzu cluster create コマンドを実行する必要があります。フラット クラスタ構成ファイルから開始する場合は、「クラスベースのクラスタを作成する」で説明されている 2 段階のプロセスに従ってオブジェクト仕様を生成し、以下で説明するように編集してから、tanzu cluster create を再度実行してクラスタを作成する必要があります。

    1. この例で設定するように、環境変数を設定します。

      export CLUSTER_NAME='workload-snc'
      export CLUSTER_NAMESPACE='default'
      export CLUSTER_CIDR='100.96.0.0/11'
      export SERVICE_CIDR='100.64.0.0/13'
      export VSPHERE_CONTROL_PLANE_ENDPOINT=10.185.11.134
      export VSPHERE_SERVER=10.185.12.154
      export VSPHERE_USERNAME='[email protected]'
      export VSPHERE_PASSWORD=<encoded:QWRtaW4hMjM=>
      export VSPHERE_DATACENTER='/dc0'
      export VSPHERE_DATASTORE='/dc0/datastore/sharedVmfs-0'
      export VSPHERE_FOLDER='/dc0/vm'
      export VSPHERE_NETWORK='/dc0/network/VM Network'
      export VSPHERE_RESOURCE_POOL='/dc0/host/cluster0/Resources'
      export VSPHERE_SSH_AUTHORIZED_KEY=ssh-rsa AAAAB3[...]tyaw== [email protected]
      export VSPHERE_TLS_THUMBPRINT=47:F5:83:8E:5D:36:[...]:72:5A:89:7D:29:E5:DA
      export VSPHERE_CONTROL_PLANE_NUM_CPUS='2'
      export VSPHERE_CONTROL_PLANE_MEM_MIB='4096'
      export VSPHERE_CONTROL_PLANE_DISK_GIB='20'
      export TKG_CUSTOM_IMAGE_REPOSITORY='projects.registry.vmware.com/tkg'
      export OS_NAME='photon'
      export TKG_CUSTOM_IMAGE_REPOSITORY_CA_CERTIFICATE="LS0tL[...]0tLQo="
      
    2. 上記の変数を参照する Cluster および Secret のオブジェクト仕様を使用して、マニフェスト vsphere-snc.yaml を作成します。

      apiVersion: cluster.x-k8s.io/v1beta1
      kind: Cluster
      metadata:
        annotations:
          tkg.tanzu.vmware.com/cluster-controlplane-endpoint: ${VSPHERE_CONTROL_PLANE_ENDPOINT}
          run.tanzu.vmware.com/resolve-tkr: 'tkr.tanzu.vmware.com/tiny'
        labels:
          tkg.tanzu.vmware.com/cluster-name: ${CLUSTER_NAME}
        name: ${CLUSTER_NAME}
        namespace: ${CLUSTER_NAMESPACE}
      spec:
        clusterNetwork:
          pods:
            cidrBlocks:
            - ${CLUSTER_CIDR}
          services:
            cidrBlocks:
            - ${SERVICE_CIDR}
        topology:
          class: tkg-vsphere-default-v1.1.1
          controlPlane:
            metadata:
              annotations:
                run.tanzu.vmware.com/resolve-os-image: image-type=ova,os-name=${OS_NAME}
            replicas: 1
          variables:
          - name: controlPlaneTaint
            value: false
          - name: auditLogging
            value:
              enabled: false
          - name: apiServerEndpoint
            value: ${VSPHERE_CONTROL_PLANE_ENDPOINT}
          - name: aviAPIServerHAProvider
            value: false
          - name: imageRepository
            value:
              host: ${TKG_CUSTOM_IMAGE_REPOSITORY}
          - name: trust
            value:
              additionalTrustedCAs:
              - data: ${TKG_CUSTOM_IMAGE_REPOSITORY_CA_CERTIFICATE}
                name: imageRepository
          - name: vcenter
            value:
              cloneMode: fullClone
              datacenter: ${VSPHERE_DATACENTER}
              datastore: ${VSPHERE_DATASTORE}
              folder: ${VSPHERE_FOLDER}
              network: ${VSPHERE_NETWORK}
              resourcePool: ${VSPHERE_RESOURCE_POOL}
              server: ${VSPHERE_SERVER}
              storagePolicyID: ""
              tlsThumbprint: ${VSPHERE_TLS_THUMBPRINT}
          - name: user
            value:
              sshAuthorizedKeys:
              - ${VSPHERE_SSH_AUTHORIZED_KEY}
          - name: controlPlane
            value:
              machine:
                diskGiB: ${VSPHERE_CONTROL_PLANE_DISK_GIB}
                memoryMiB: ${VSPHERE_CONTROL_PLANE_MEM_MIB}
                numCPUs: ${VSPHERE_CONTROL_PLANE_NUM_CPUS}
          version: v1.27.5+vmware.1-tiny.2
      ---
      apiVersion: v1
      kind: Secret
      metadata:
        name: ${CLUSTER_NAME}
        namespace: ${CLUSTER_NAMESPACE}
      stringData:
        password: ${VSPHERE_PASSWORD}
        username: ${VSPHERE_USERNAME}
      EOF
      

      次の点に注意してください。

      • run.tanzu.vmware.com/resolve-tkrmetadata.annotations 設定
      • controlPlaneTainttopology.variables 設定
      • topology.workers ブロックはなく、topology.controlPlane のみです。
      • 以前のバージョンの TKG では、topology.version は、v2.2.0 の場合は v1.25.7+vmware.1-tiny.1、v2.1.1 の場合は v1.24.10+vmware.1-tiny.1、v2.1.0 の場合は v1.24.9+vmware.1-tiny.2 である必要があります。
    3. (オプション)デフォルトの Antrea CNI ではなく Calico を CNI として使用するようにクラスタを構成するには、「スーパーバイザーまたは単一ノードのクラスベースのワークロード クラスタの Calico CNI」にある、単一ノード クラスタ向けの手順に従ってください。

    4. Cluster オブジェクト マニフェストを適用します。

      tanzu cluster create -f vsphere-snc.yaml
      

標準の単一ノード クラスタの作成

標準の Photon または Ubuntu TKr を使用する vSphere に単一ノード ワークロード クラスタを作成するには、次の手順を実行します。

  1. スタンドアローン管理クラスタを使用する vSphere の構成ファイル」の説明に従って、ワークロード クラスタのフラット構成ファイルを作成します。

  2. オブジェクト仕様の作成」で説明されているように、--dry-run フラグを使用して tanzu cluster create を実行し、フラット構成ファイルを Kubernetes スタイルの Cluster オブジェクト仕様に変換します。

  3. 次の設定を含めるように Cluster オブジェクト仕様を編集します。

    • topology.controlPlane を次のようにします。

      replicas: 1
      
    • topology.workers ブロックがある場合は削除します。

    • topology.variables を次のようにします。

      - name: controlPlaneTaint
        value: false
      
  4. オブジェクト仕様からのクラスベースのクラスタの作成」で説明されているように、変更した Cluster オブジェクト仕様を使用して、tanzu cluster create を実行します。

check-circle-line exclamation-circle-line close-line
Scroll to top icon