vSphere 단일 노드 클러스터

TKG(Tanzu Kubernetes Grid)는 단일 노드 클러스터를 지원합니다. 단일 노드 클러스터는 호스팅된 워크로드가 단일 ESXi 호스트의 제어부 인프라와 함께 실행되는 워크로드 클러스터입니다.

단일 노드 클러스터의 설치 공간을 더욱 최소화하려면 기본 OS에 대한 Photon 또는 Ubuntu Tiny OVA가 있는 tiny Tanzu Kubernetes 릴리스(TKr)에서 생성할 수 있습니다. 이러한 클러스터를 최소 단일 노드 클러스터라고 합니다.

단일 노드 클러스터는 vSphere 실행되고 독립형 관리 클러스터에 의해 배포되는 클래스 기반 워크로드 클러스터입니다.

단일 노드 클러스터는 TCA(Telco Cloud Automation)에 대해 완전히 지원됩니다.

참고

TMC(Tanzu Mission Control)를 사용하여 단일 노드 클러스터를 생성하고 관리할 수는 없지만 이 기능은 향후 TMC 릴리스를 위해 계획되어 있습니다.

단일 노드 클러스터 사용 사례에는 다음이 포함됩니다.

  • 최소 단일 노드 클러스터
    • 원거리 Edge 셀 사이트 및 기타 Edge 위치와 같이 리소스가 제한된 호스트 환경
  • 표준 단일 노드 클러스터
    • 실험적인 개발 및 테스트 환경

호환성

단일 노드 클러스터는 다음 환경 및 구성 요소에 대해 지원됩니다.

범주 지원되는 옵션
인프라 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.3의 단일 노드 클러스터에서는 ALB(*NSX Advanced Load Balancer)가 지원되지 않습니다.

사전 요구 사항

최소 단일 노드 클러스터 생성

tiny Tanzu Kubernetes 릴리스(TKr)를 사용하여 설치 공간을 최소화하는 vSphere에서 단일 노드 워크로드 클러스터를 생성하려면 다음을 수행합니다.

  1. OVA를 준비합니다.

    1. VMware Customer Connect로 이동한 후 VMware Customer Connect 자격 증명을 사용하여 로그인합니다.

    2. Tanzu Kubernetes Grid v2.3.1 제품 다운로드로 이동하세요.

    3. Tiny TKG OVA에서 단일 노드 클러스터에 사용할 매우 작은 OVA를 다운로드합니다.

      • Photon v3 Kubernetes v1.26.8 Tiny OVA

      • Ubuntu 2004 Kubernetes v1.26.8 Tiny OVA

    4. Tiny OVA를 vSphere 환경으로 가져와서 기본 이미지 템플릿을 vSphere로 가져오기에 설명된 대로 VM 템플릿으로 변환합니다.

  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. 위 변수를 참조하는 ClusterSecret 개체 규격을 사용하여 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.0
          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.26.8+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.3.1의 경우 v1.26.5+vmware.1-tiny.2, 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로 사용하도록 클러스터를 구성하려면 Supervisor 또는 단일 노드 클래스 기반 워크로드 클러스터용 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