VMware vSphere with Tanzu 8.0 | 2022 年 10 月 11 日

请查看发行说明以了解新增内容及更新。

发行说明内容

本发行说明包含以下主题:

新增功能

vSphere with Tanzu 8.0 引入了以下新功能和增强功能: 

  • 工作负载管理配置监控

    现在,您可以更详细地跟踪主管的激活、停用和升级状态。启动主管激活、停用或升级后,主管将尝试通过达到与主管的不同组件(如控制平面虚拟机)关联的各种条件以达到所需状态。您可以跟踪每个条件的状态、查看关联的警告、重试状态、查看已达到的条件及其时间戳。

  • vSphere 区域

    vSphere 区域是一个新构造,用于将可用区分配给 vSphere 集群。通过跨 vSphere 区域部署主管,可在特定的可用区和故障域中置备 Tanzu Kubernetes Grid 集群。这样,工作负载可以跨多个集群,从而提高硬件和软件的故障恢复能力。

  • 多集群主管

    通过使用 vSphere 区域,您可以跨多个 vSphere 集群部署主管,以便为 Tanzu Kubernetes Grid 集群提供高可用性和故障域。本版本不适用于 Metro 集群部署。多集群主管的用例是将 vSphere 集群放在单个物理数据中心的单独机架中。然后,将每个 vSphere 集群添加到单独的 vSphere 区域,从而为本地化硬件和软件故障提供故障切换和弹性。当区域、机架或 vSphere 集群脱机时,主管会检测到故障并重新启动另一个 vSphere 区域上的工作负载。

  • 主管支持 Kubernetes 1.23

    本版本增加了对 Kubernetes 1.23 的支持,并且不再支持 Kubernetes 1.20。此版本中受支持的 Kubernetes 版本为 1.23、1.22 和 1.21。在 Kubernetes 版本 1.20 上运行的主管将自动升级到版本 1.21,以确保所有主管集群都在支持的 Kubernetes 版本上运行。

  • 使用 SecurityPolicy CRD 提供一致的网络策略

    SecurityPolicy 自定义资源定义能够为 Kubernetes 集群中的虚拟机和 Pod 配置网络安全控制。

已知问题

  • 如果 DevOps 用户在 vCenter Server 重新引导时启动卷操作或有状态应用程序部署,则此操作可能会失败

    出现此问题的原因是工作负载存储管理用户帐户被锁定,主管上运行的 vSphere CSI 插件无法进行身份验证。因此,卷操作失败并显示 InvalidLogin 错误。

    日志文件 /var/log/vmware/vpxd/vpxd.log 显示以下消息:

    Authentication failed: The account of the user trying to authenticate is locked.:: The account of the user trying to authenticate is locked.:: User account locked: {Name: workload_storage_management-<id>, Domain: <domain>})

    解决办法:

    1. 获取帐户解除锁定时间。

      1. 在 vSphere Client 中,导航到“系统管理”,然后单击 Single Sign On 下的“配置”。

      2. 单击“选择帐户”选项卡。

      3. 在“锁定策略”下,获取解除锁定时间(以秒为单位)。

    2. 使用适用于 kubectl 的 vSphere 插件对主管进行身份验证。

      kubectl vsphere login –server IP-ADDRESS --vsphere-username USERNAME

    3. 记下 vmware-system-csi- namespace 中 vsphere-csi-controller 部署的原始副本计数。

      kubectl get deployment vsphere-csi-controller -n vmware-system-csi -o=jsonpath='{.spec.replicas}'

      original-replica-count

    4. 将 vsphere-csi-controller 部署副本计数缩减为零。

      kubectl scale --replicas=0 deployment vsphere-csi-controller -n vmware-system-csi

    5. 等待“解除锁定时间”下指示的秒数。

    6. 将 vsphere-csi-controller 部署副本计数增加到原始值。

      kubectl scale --replicas=original-replica-count deployment vsphere-csi-controller -n vmware-system-csi

  • 从共享数据存储(如 vSAN)中删除多个 FCD 和卷时,您可能会注意到性能变化

    性能变化可能是由一个已修复的问题导致的。如果未能修复,该问题会导致失效的 FCD 和卷在 FCD 删除操作失败后仍保留在数据存储中。

    解决办法:无。尽管性能发生变化,但删除操作仍照常运行。

  • 删除包含 Tanzu Kubernetes Grid 集群的主管命名空间时,主管中的持久卷声明可能始终处于正在终止状态

    当系统删除命名空间并从 Tanzu Kubernetes Grid 集群中的 Pod 中分离卷时,可能会出现资源冲突,此时您会看到此问题。

    主管命名空间删除未完成,vSphere Client 显示命名空间状态为“正在终止”。连接到 Tanzu Kubernetes Grid 集群中的 Pod 的持久卷声明也保持正在终止状态。

    如果运行以下命令,则会看到“无法在 persistentvolumeclaims 上执行操作 (Operation cannot be fulfilled on persistentvolumeclaims)”错误:

    kubectl vsphere login --server=IP-ADDRESS --vsphere-username USERNAME

    kubectl logs vsphere-csi-controller-pod-name -n vmware-system-csi -c vsphere-syncer

    无法更新命名空间 \\\"<supervisor-namespace>\\\" 上的PersistentVolumeClaim: \\\"<pvc-name>\\\"。错误: 无法在 persistentvolumeclaims \\\"<pvc-name>\\\\" 上执行操作: 对象已修改;请将更改应用到最新版本,然后重试 (failed to update PersistentVolumeClaim: \\\"<pvc-name>\\\" on namespace: \\\"<supervisor-namespace>\\\". Error: Operation cannot be fulfilled on persistentvolumeclaims \\\"<pvc-name>\\\": the object has been modified; please apply your changes to the latest version and try again\)

    解决办法:

    使用以下命令修复此问题:

    kubectl vsphere login --server=IP-ADDRESS --vsphere-username USERNAME

    kubectl patch pvc <pvc-name> -n <supervisor-namespace> -p '{"metadata":{"finalizers":[]}}' --type=merge

  • 如果 vSphere 管理员为自助命名空间模板配置的资源限制超出集群容量,不会触发警示。

    vSphere 管理员配置的资源限制超出集群容量时,DevOps 工程师可以使用该模板为 vSphere Pod 部署高资源。这会导致工作负载出现故障。

    解决办法:无

  • 升级 vCenter Server 和 vSphere with Tanzu 后,Tanzu Kubernetes Grid 集群无法完成升级,因为卷显示已连接到集群的节点

    当 Tanzu Kubernetes Grid 集群升级失败时,您会注意到一个卷显示为已连接到集群的节点,并且不会被清除。此问题可能是由上游 Kubernetes 中的问题导致的。

    解决办法:

    1. 使用以下命令获取有关已禁用调度的 TKG 集群节点的信息:

      kubectl get node tkc_node_name -o yaml

      例如:

      # kubectl get node gcm-cluster-antrea-1-workers-pvx5v-5b9c4dbcc7-28p95 -o yaml
      apiVersion: v1
      kind: Node
      metadata:
        annotations:
          cluster.x-k8s.io/cluster-name: gcm-cluster-antrea-1
          cluster.x-k8s.io/cluster-namespace: c1-gcm-ns
          cluster.x-k8s.io/machine: gcm-cluster-antrea-1-workers-pvx5v-5b9c4dbcc7-28p95
          cluster.x-k8s.io/owner-kind: MachineSet
          cluster.x-k8s.io/owner-name: gcm-cluster-antrea-1-workers-pvx5v-5b9c4dbcc7
          csi.volume.kubernetes.io/nodeid: '{"csi.vsphere.vmware.com":"gcm-cluster-antrea-1-workers-pvx5v-5b9c4dbcc7-28p95"}'
          kubeadm.alpha.kubernetes.io/cri-socket: /run/containerd/containerd.sock
          node.alpha.kubernetes.io/ttl: "0"
          volumes.kubernetes.io/controller-managed-attach-detach: "true"
      ….
      ….
        volumesAttached:
        - devicePath: ""
          name: kubernetes.io/csi/csi.vsphere.vmware.com^943bd457-a6cb-4f3d-b1a5-e301e6fa6095-59c73cea-4b75-407d-8207-21a9a25f72fd

      检查此节点的 status.volumeAttached 属性中是否包含任何 vSphere CSI 卷。如果包含任何卷,请继续执行下一步。

    2. 确认步骤 1 中标识的节点上没有正在运行的 Pod。使用以下命令:

      kubectl get pod -o wide | grep tkc_node_name

      例如:

      kubectl get pod -o wide | grep gcm-cluster-antrea-1-workers-pvx5v-5b9c4dbcc7-28p95

      此命令输出为空,则表示没有 Pod。继续执行下一步,因为步骤 1 中的输出显示卷连接的节点不包含任何 Pod。

    3. 获取有关所有节点对象的信息,确保同一个卷连接到另一个节点:

      kubectl get node -o yaml

      例如:

      相同的卷名称显示在两个 TKG 集群节点对象中。

      On old node - "gcm-cluster-antrea-1-workers-pvx5v-5b9c4dbcc7-28p95"
        volumesAttached:
        - devicePath: ""
          name: kubernetes.io/csi/csi.vsphere.vmware.com^943bd457-a6cb-4f3d-b1a5-e301e6fa6095-59c73cea-4b75-407d-8207-21a9a25f72fd
      
      On new node "gcm-cluster-antrea-1-workers-pvx5v-84486fc97-ndh88"
        volumesAttached:
        - devicePath: ""
          name: kubernetes.io/csi/csi.vsphere.vmware.com^943bd457-a6cb-4f3d-b1a5-e301e6fa6095-59c73cea-4b75-407d-8207-21a9a25f72fd
          ...
        volumesInUse:
        - kubernetes.io/csi/csi.vsphere.vmware.com^943bd457-a6cb-4f3d-b1a5-e301e6fa6095-59c73cea-4b75-407d-8207-21a9a25f72fd
        ...
    4. 根据卷名称中的卷句柄搜索 PV。

      在上例中,卷名称为 kubernetes.io/csi/csi.vsphere.vmware.com^943bd457-a6cb-4f3d-b1a5-e301e6fa6095-59c73cea-4b75-407d-8207-21a9a25f72fd,卷句柄为 943bd457-a6cb-4f3d-b1a5-e301e6fa6095-59c73cea-4b75-407d-8207-21a9a25f72fd

      使用以下命令获取所有 PVS 并搜索上述卷句柄:

      kubectl get pv -o yaml

      在上例中,具有该卷句柄的 PV 为 pvc-59c73cea-4b75-407d-8207-21a9a25f72fd

    5. 使用 volumeattachment 命令搜索上一步中找到的 PV:

      kubectl get volumeattachment | grep pv_name

      例如:

      # kubectl get volumeattachment | grep pvc-59c73cea-4b75-407d-8207-21a9a25f72fd
      NAME                                                                   ATTACHER                 PV                                         NODE                                                 ATTACHED   AGE
      csi-2ae4c02588d9112d551713e31dba4aab4885c124663ae4fcbb68c632f0f46d3e   csi.vsphere.vmware.com   pvc-59c73cea-4b75-407d-8207-21a9a25f72fd   gcm-cluster-antrea-1-workers-pvx5v-84486fc97-ndh88   true       3d20h

      您会看到卷连接到节点 gcm-cluster-antrea-1-workers-pvx5v-84486fc97-ndh88,而不是节点 gcm-cluster-antrea-1-workers-pvx5v-5b9c4dbcc7-28p95。这表示 gcm-cluster-antrea-1-workers-pvx5v-5b9c4dbcc7-28p95 中的 status.volumeAttached 不正确。

    6. 从节点对象中删除失效的 volumeAttached 条目:

      kubectl edit node tkc_node_name

      例如:

      kubectl edit node gcm-cluster-antrea-1-workers-pvx5v-5b9c4dbcc7-28p95

      status.volumeAttached 中移除失效的卷条目。

    7. status.volumeAttached 属性中的所有失效卷重复上述步骤。

    8. 如果 WCPMachines 仍然存在,请手动将其删除并等待几分钟以协调集群。

      # kubectl get wcpmachines -n c1-gcm-ns
      NAMESPACE   NAME                                       ZONE   PROVIDERID                                       IPADDR
      c1-gcm-ns   gcm-cluster-antrea-1-workers-jrc58-zn6wl          vsphere://423c2281-d1bd-9f91-0e87-b155a9d291a1   192.168.128.17
      
      # kubectl delete wcpmachine gcm-cluster-antrea-1-workers-jrc58-zn6wl -n c1-gcm-ns
      wcpmachine.infrastructure.cluster.vmware.com "gcm-cluster-antrea-1-workers-jrc58-zn6wl" deleted

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