vSphere 上的单节点集群

Tanzu Kubernetes Grid (TKG) 支持单节点集群。单节点集群是工作负载集群,其中托管的工作负载与控制平面基础架构一起在单个 ESXi 主机上运行。

要进一步最大限度减少单节点集群的占用空间,可以从 tiny Tanzu Kubernetes 版本 (Tkr) 创建该集群,该版本的基础操作系统有一个 Photon 或 Ubuntu tiny OVA。此类集群称为最小单节点集群。

单节点集群是在 vSphere 上运行且由独立管理集群部署的基于类的工作负载集群。

Telco Cloud Automation (TCA) 完全支持单节点集群。

注意

无法使用 Tanzu Mission Control (TMC) 创建和管理单节点集群,但此功能计划在将来的 TMC 版本中提供。

单节点集群用例包括:

  • 最少的单节点集群
    • 资源受限的主机环境,例如远边缘单元站点和其他边缘位置
  • 标准的单节点集群
    • 实验开发和测试环境

兼容性

以下环境和组件支持单节点集群:

类别 支持的选项
基础架构 vSphere 7、vSphere 8
节点操作系统 Ubuntu 20.04、Photon 3
节点大小 small
软件包 证书管理器、Fluent Bit、Multus、Prometheus、Whereabouts
控制平面端点提供程序 Kube-Vip*
工作负载均衡器 Kube-Vip*
工作负载集群类型 基于类
CNI Antrea,Calico
连接模式 联机、Internet 受限

*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. 微型 TKG OVA [Tiny TKG OVAs] 下,下载 Tiny OVA 以用于单节点集群:

      • Photon v3 Kubernetes v1.27.5 微型 OVA

      • Ubuntu 2004 Kubernetes v1.27.5 微型 OVA

    5. 将微型 OVA 导入您的 vSphere 环境并将其转换为虚拟机模板,如将基础映像模板导入到 vSphere 中所述。

  2. 创建单节点工作负载集群。

    注意

    要创建最小单节点集群,必须使用 Kubernetes 样式的对象规范运行 tanzu cluster create 命令。如果从平面集群配置文件开始,则必须按照 创建基于类的集群中所述的两个步骤过程生成对象规范,然后第二次运行 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.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 应为 v1.25.7+vmware.1-tiny.1(适用于 v2.2.0)、v1.24.10+vmware.1-tiny.1(适用于 v2.1.1)和 v1.24.9+vmware.1-tiny.2(适用于v2.1.0)。
    3. (可选)要将集群配置为使用 Calico 作为 CNI 而不是默认 Antrea 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