Una versión de Tanzu Kubernetes proporciona la distribución de software de Kubernetes firmada y compatible con VMware para su uso con clústeres de TKG en Supervisor. El formato TKR se ha actualizado para que TKG admita paquetes y varios sistemas operativos.

Notas de la versión de TKR

Consulte las Notas de la versión de las distintas versiones de Tanzu Kubernetes para obtener la lista completa de las TKR disponibles, las novedades de cada versión, los problemas conocidos y la compatibilidad de TKR con Supervisor y TKG. Consulte también vSphere with Tanzu actualización, soporte y versiones de Kubernetes.

Distribución y consumo de TKR

VMware distribuye versiones de Tanzu Kubernetes a través de una red de entrega de contenido. Utilice una biblioteca de contenido vSphere para asociar TKR con espacios de nombres de vSphere. Para automatizar el consumo de TKR, utilice una biblioteca de contenido suscrita. Para entornos con restricciones de Internet, utilice una biblioteca de contenido local.

Cada versión de Tanzu Kubernetes se distribuye como una plantilla de OVA. La controladora de TKR en Supervisor utiliza la plantilla de OVA para construir las máquinas virtuales para los nodos del clúster de TKG. El tamaño de disco de la máquina virtual se establece mediante la plantilla de TKR OVA. Los recursos de CPU y RAM se especifican mediante clases de máquinas virtuales.

La biblioteca de contenido de TKR no está en el ámbito del espacio de nombres. Todos los espacios de nombres de vSphere utilizan la misma biblioteca de contenido de TKR para TKG en Supervisor. Al editar la biblioteca de contenido de TKR para un espacio de nombres de vSphere, se actualizará para el resto.

Cadena de nombre de TKR

Utilice el comando kubectl get tkr para enumerar las imágenes TKR que están disponibles para su uso en el espacio de nombres de vSphere. Por ejemplo:
kubectl get tkr
NAME                                  VERSION                             READY   COMPATIBLE   CREATED
v1.16.14---vmware.1-tkg.1.ada4837     v1.16.14+vmware.1-tkg.1.ada4837     False   False        19d
v1.17.17---vmware.1-tkg.1.d44d45a     v1.17.17+vmware.1-tkg.1.d44d45a     False   False        19d
v1.18.19---vmware.1-tkg.1.17af790     v1.18.19+vmware.1-tkg.1.17af790     False   False        19d
v1.19.16---vmware.1-tkg.1.df910e2     v1.19.16+vmware.1-tkg.1.df910e2     False   False        19d
v1.20.12---vmware.1-tkg.1.b9a42f3     v1.20.12+vmware.1-tkg.1.b9a42f3     False   False        19d
v1.21.6---vmware.1-tkg.1.b3d708a      v1.21.6+vmware.1-tkg.1.b3d708a      True    True         19d
v1.22.9---vmware.1-tkg.1.cc71bc8      v1.22.9+vmware.1-tkg.1.cc71bc8      True    True         19d
v1.23.8---vmware.2-tkg.2-zshippable   v1.23.8+vmware.2-tkg.2-zshippable   True    True         19d
v1.23.8---vmware.3-tkg.1              v1.23.8+vmware.3-tkg.1              True    True         19d
La cadena TKR NAME se utiliza para aprovisionar clústeres de TKG en Supervisor. Si utiliza la API v1alpha3, proporcione la cadena completa TKR NAME en el campo tkr.reference.name. Si utiliza la API v1beta1, proporcione la cadena completa TKR NAME en el campo topology.version.
Nota: No utilice la cadena VERSION al hacer referencia a la TKR en la especificación del clúster. El formato debe coincidir exactamente con la cadena TKR NAME.

El nombre de la TKR en la biblioteca de contenido debe ser la cadena TKR NAME completa. Si utiliza una biblioteca de contenido suscrita, la cadena de nombre de TKR se crea automáticamente. Si utiliza una biblioteca de contenido local, asegúrese de que el nombre que asigne a la TKR coincida con la cadena TKR NAME. Consulte la biblioteca de contenido local para obtener más información.

Compatibilidad de TKR con Supervisor

Los TKR se publican y se actualizan de forma independiente desde Supervisor.

Para aprovisionar un clúster de TKG, TKR debe ser compatible con el componente de controladora de TKG que se ejecuta en Supervisor. No puede utilizar una TKR que no sea compatible con la instancia de Supervisor que está ejecutando. Además, debe asegurarse de ejecutar una TKR compatible para la versión de Supervisor de destino para la actualización.

Puede comprobar la compatibilidad de TKR con Supervisor mediante el comando kubectl get tkr. La columna COMPATIBLE devuelve un valor booleano. True significa que la TKR es compatible con Supervisor, False significa que la TKR no es compatible con Supervisor.

Compatibilidad de TKR con TKG 2.x

TKG 2.x es la última versión de la Tanzu Kubernetes Grid con nueva funcionalidad, incluido el aprovisionamiento de API. TKG 2.0 se introdujo con vSphere 8. Consulte Aprovisionar clústeres de TKG en el Supervisor para obtener más información.

El formato TKR es diferente para clústeres de TKG 2.x que para clústeres de TKG heredados admitidos en vSphere 7. Para aprovisionar un clúster de TKG 2.x, debe utilizar una TKR no heredada. Si la TKR es una TKR heredada, solo se puede utilizar para aprovisionar un clúster de TKG de vSphere 7. Las imágenes TKR que no son compatibles con TKG 2.x incluyen la etiqueta de anotación legacy-tkr.

Es posible que pueda aprovisionar un clúster de TKG vSphere 7 en un Supervisor compatible, pero no podrá aprovechar las funciones de TKG 2.x a menos que utilice una TKR no heredada. Por ejemplo, si bien el comando kubectl get tkr puede indicar que la TKR es compatible con Supervisor, si se trata de una TKR heredada, solo se puede utilizar para aprovisionar un clúster de TKG de vSphere 7.

Puede comprobar la compatibilidad de TKR con TKG 2.x mediante los comandos kubectl get tkr -o yaml y kubectl get tkr --show-labels. Si la etiqueta de anotación legacy-tkr está presente, no se puede utilizar TKR para aprovisionar un clúster de TKG 2.x.

Por ejemplo, el siguiente comando muestra que la imagen especificada es un legacy-tkr. Esto significa que no se puede utilizar para aprovisionar un clúster de TKG 2.x. Esta TKR solo se puede utilizar para aprovisionar un clúster de TKG heredado.
kubectl get tkr v1.23.8---vmware.3-tkg.1 -o yaml
apiVersion: run.tanzu.vmware.com/v1alpha3
kind: TanzuKubernetesRelease
metadata:
  creationTimestamp: "2023-03-15T20:33:17Z"
  finalizers:
  - tanzukubernetesrelease.run.tanzu.vmware.com
  generation: 1
  labels:
    os-arch: amd64
    os-name: photon
    os-type: linux
    os-version: "3.0"
    run.tanzu.vmware.com/legacy-tkr: ""
    v1: ""
    v1.23: ""
    v1.23.8: ""
    v1.23.8---vmware: ""
    v1.23.8---vmware.3: ""
    v1.23.8---vmware.3-tkg: ""
    v1.23.8---vmware.3-tkg.1: ""
  name: v1.23.8---vmware.3-tkg.1
En el siguiente ejemplo, se utiliza la marca --show-labels para comprobar si TKR es compatible con el aprovisionamiento de clústeres de TKG 2.x. La etiqueta legacy-tkr está presente, por lo que la imagen solo se puede utilizar para crear un clúster de TKG heredado.
kubectl get tkr v1.23.8---vmware.3-tkg.1 --show-labels
NAME                       VERSION                  READY   COMPATIBLE   CREATED   LABELS
v1.23.8---vmware.3-tkg.1   v1.23.8+vmware.3-tkg.1   True    True         19d       os-arch=amd64,os-name=photon,os-type=linux,os-version=3.0,run.tanzu.vmware.com/legacy-tkr=,
El siguiente ejemplo muestra un TKR que es compatible con la creación de clústeres de TKG 2.x porque la etiqueta legacy-tkr está ausente en la lista de etiquetas.
kubectl get tkr v1.23.8---vmware.2-tkg.2-zshippable --show-labels
NAME                                  VERSION                             READY   COMPATIBLE   CREATED   LABELS
v1.23.8---vmware.2-tkg.2-zshippable   v1.23.8+vmware.2-tkg.2-zshippable   True    True         19d       os-arch=amd64,os-name=ubuntu,os-type=linux,os-version=20.04,v1.23.8---vmware.2-tkg.2-zshippable=,
Al ejecutar el comando equivalente con -o yaml también se muestra que la etiqueta de legacy-tkr está ausente, lo que indica que TKR se puede utilizar para aprovisionar un clúster de TKG 2.x.
kubectl get tkr v1.23.8---vmware.2-tkg.2-zshippable -o yaml
apiVersion: run.tanzu.vmware.com/v1alpha3
kind: TanzuKubernetesRelease
metadata:
  creationTimestamp: "2023-03-15T20:31:45Z"
  finalizers:
  - tanzukubernetesrelease.run.tanzu.vmware.com
  generation: 2
  labels:
    os-arch: amd64
    os-name: ubuntu
    os-type: linux
    os-version: "20.04"
    v1: ""
    v1.23: ""
    v1.23.8: ""
    v1.23.8---vmware: ""
    v1.23.8---vmware.2: ""
    v1.23.8---vmware.2-tkg: ""
    v1.23.8---vmware.2-tkg.2: ""
    v1.23.8---vmware.2-tkg.2-zshippable: ""
  name: v1.23.8---vmware.2-tkg.2-zshippable
Importante: El sufijo -zshippable no es un método fiable para determinar si TKR es compatible con TKG 2.x. Este sufijo se elimina de la cadena TKR NAME a partir de la vSphere 8 U1. Debe comprobar la presencia de la etiqueta de legacy-tkr en TKR para determinar si se puede utilizar con vSphere 8 para aprovisionar un clúster de TKG 2.x. Si ya aprovisionó un clúster de TKG 2.x mediante una TKR con el sufijo -zshippable, debe cambiar la URL de la biblioteca de contenido a una ubicación temporal durante la transición fuera del uso de este sufijo. Consulte las notas de la versión de Tanzu Kubernetes para obtener más información.

Formato TKR OSImage

El formato TKR OSImage admite varias imágenes de sistema operativo para una sola TKR. Esto significa que hay una única versión de Tanzu Kubernetes para una versión específica de Kubernetes para todos los sistemas operativos compatibles, actualmente Photon OS y Ubuntu. La imagen de SO predeterminada es Photon OS.

Para utilizar la edición de Ubuntu de TKR, incluya una anotación en la especificación del clúster como se muestra. Por ejemplo, la siguiente especificación de clúster de TKG utiliza la edición Ubuntu de la TKR designada.
apiVersion: run.tanzu.vmware.com/v1alpha3
kind: TanzuKubernetesCluster
metadata:
  name: tkg2-cluster-ubuntu
  namespace: tkg2-cluster-ns
  annotations:
    run.tanzu.vmware.com/resolve-os-image: os-name=ubuntu
spec:
   topology:
     controlPlane:
       ...
       tkr:
         reference:
           name: v1.23.8---vmware.2-tkg.2-zshippable
El formato OSImage admite implementaciones de clústeres heterogéneos. Por ejemplo, el siguiente manifiesto del clúster crea un clúster de Tanzu Kubernetes con Photon OS predeterminado para el plano de control y Ubuntu para los nodos de trabajo. La versión de TKR es una referencia en el plano de control y la anotación especifica Ubuntu para el grupo de nodos de trabajo designado.
apiVersion: run.tanzu.vmware.com/v1alpha3
kind: TanzuKubernetesCluster
metadata:    
  name: tkg2-cluster-multiOS
  namespace: tkg2-cluster-ubuntu
  annotations:
    //Worker's annotation
    run.tanzu.vmware.com/resolve-os-image.np-1: os-name=ubuntu
spec:    
  topology:      
    controlPlane:        
      tkr:          
        reference:            
          name: v1.23.8---vmware.2-tkg.2-zshippable
      replicas: 3
      vmClass: guaranteed-medium
      storageClass: tkg2-storage-profile 
    nodePools:     
    - replicas: 3
      name: np-1
      vmClass: guaranteed-medium
      storageClass: tkg2-storage-profile
Cuando vSphere with Tanzu se actualiza a TKG 2 en el Supervisor de vSphere 8, las TKR existentes se convierten automáticamente al formato TKR OSImage con referencia a una sola OSImage. De esta forma, las TKR heredadas pueden ser compatibles con TKG 2. Si utiliza la edición Ubuntu de la TKR y solo especifica la versión corta de la cadena ( v1.21.6+vmware.1-tkg.1) en lugar de la versión completa de la cadena ( ubuntu-2004-v1.21.6---vmware.1-tkg.1), debe incluir la anotación del sistema operativo en la especificación del clúster. Esto es así si utiliza la API v1alpha3 o la API vlapha2. Por ejemplo:
apiVersion: run.tanzu.vmware.com/v1alpha2
kind: TanzuKubernetesCluster
metadata:    
  name: tkg-cluster-ubuntu
  namespace: tkg-cluster-ubuntu
  annotations: 
    run.tanzu.vmware.com/resolve-os-image: os-name=ubuntu
spec:    
  topology:      
    controlPlane:        
      replicas: 3
      vmClass: guaranteed-medium
      storageClass: tkg-storage-policy
      tkr:          
        reference:            
          name: v1.21.6+vmware.1-tkg.1
    nodePools:     
    - name: worker-nodepool
      replicas: 3
      vmClass: guaranteed-medium
      storageClass: tkg2-storage-policy
      tkr:          
        reference:            
          name: v1.21.6+vmware.1-tkg.1
  settings:
    storage:
      defaultClass: tkg-storage-policy

Paquetes de TKR

Las imágenes de TKR compatibles con vSphere 8 se actualizan a un marco basado en paquetes para los componentes de TKG 2.0, como la interfaz de almacenamiento de contenedor (Container Storage Interface, CSI) y la interfaz de red de contenedor (Container Network Interface, CNI). Si utiliza la API v1beta, el cambio o la actualización de estos componentes se realiza mediante definiciones de recursos personalizados.

Para ver los paquetes que componen un TKR, ejecute el siguiente comando:
kubectl get tkr TKR-NAME -o yaml
Por ejemplo:
kubectl get tkr v1.23.8---vmware.2-tkg.2-zshippable -o yaml
El comando devuelve todos los paquetes del TKR. Por ejemplo:
spec:
bootstrapPackages:
- name: antrea.tanzu.vmware.com.1.5.3+tkg.2-zshippable
- name: vsphere-pv-csi.tanzu.vmware.com.2.6.0+vmware.1-tkg.1-zshippable
- name: vsphere-cpi.tanzu.vmware.com.1.23.1+vmware.1-tkg.2-zshippable
- name: kapp-controller.tanzu.vmware.com.0.38.4+vmware.1-tkg.2-zshippable
- name: guest-cluster-auth-service.tanzu.vmware.com.1.0.0+tkg.2-zshippable
- name: metrics-server.tanzu.vmware.com.0.6.1+vmware.1-tkg.2-zshippable
- name: secretgen-controller.tanzu.vmware.com.0.9.1+vmware.1-tkg.2-zshippable
- name: pinniped.tanzu.vmware.com.0.12.1+vmware.2-tkg.2-zshippable
- name: capabilities.tanzu.vmware.com.0.26.0-dev-68-g09198af6+vmware.1
- name: calico.tanzu.vmware.com.3.22.1+vmware.1-tkg.2-zshippable

Consulte Ejemplo de v1beta1: clúster con CNI de Calico para ver un ejemplo de caso práctico.

Migrar tipos de sistema operativo de TKR

No se admiten actualizaciones de clústeres in situ entre sistemas operativos de TKR. Esto significa, por ejemplo, que no se puede actualizar un clúster de TKG mediante TKR 1.21 Photon a TKR versión 1.22 en Ubuntu.

Si desea cambiar el tipo de sistema operativo de TKR que utiliza un clúster de TKG, tenga en cuenta el siguiente procedimiento. En este ejemplo, el clúster de origen utiliza TKR Photon y el destino es TKR Ubuntu.

Fortalecimiento de TKR

Hay disponibles guías de implementación técnica de seguridad (STIG) para los componentes de vSphere with Tanzu 8, incluidos Supervisor y las TKR. Consulte Fortalecimiento de STIG de Tanzu para obtener más información.

Cree su propia TKR

A partir de una versión específica de TKR, puede crear imágenes de máquina TKR personalizadas para clústeres de TKG 2 que se ejecuten en Supervisor de vSphere 8. Una imagen de máquina personalizada empaqueta un sistema operativo y una versión compatibles, una versión de Kubernetes basada en una TKR publicada y cualquier personalización que realice.

Para crear imágenes de máquina personalizadas para los nodos de clúster de TKG 2, utilice VMware Image Builder.