Une Version de Tanzu Kubernetes fournit la distribution logicielle Kubernetes signée et prise en charge par VMware pour une utilisation avec les clusters TKG sur le Superviseur. Le format TKR est mis à jour pour TKG afin de prendre en charge les modules et plusieurs systèmes d'exploitation.

Notes de mise à jour de TKR

Reportez-vous aux Notes de mise à jour des versions de Tanzu Kubernetes pour obtenir la liste complète des TKR disponibles, les nouveautés de chaque version, les problèmes connus et la compatibilité de TKR avec Superviseur et TKG. Reportez-vous également aux sections Mise à niveau de vSphere with Tanzu, Prise en charge et Versions de Kubernetes.

Distribution et consommation de TKR

VMware distribue Versions de Tanzu Kubernetes via un réseau de diffusion de contenu. Vous utilisez une bibliothèque de contenu vSphere pour associer les TKR à Espaces de noms vSphere. Pour automatiser la consommation de TKR, utilisez une bibliothèque de contenu avec abonnement. Pour les environnements sur lesquels Internet est restreint, utilisez une bibliothèque de contenu locale.

Chaque Version de Tanzu Kubernetes est distribuée en tant que modèle OVA. Le contrôleur TKR sur Superviseur utilise le modèle OVA pour construire les machines virtuelles pour les nœuds de cluster TKG. La taille de disque de la machine virtuelle est définie par le modèle TKR OVA. Vous spécifiez les ressources de CPU et de RAM à l'aide de classes VM.

La bibliothèque de contenu TKR n'a pas de portée d'espace de noms. Tous les Espaces de noms vSphere utilisent la même bibliothèque de contenu TKR pour TKG avec Superviseur. La modification de la bibliothèque de contenu TKR pour un Espace de noms vSphere le mettra à jour pour toutes les autres.

Chaîne de nom TKR

Utilisez la commande kubectl get tkr pour obtenir la liste des images TKR qui peuvent être utilisées dans le Espace de noms vSphere. Par exemple :
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
Vous utilisez la chaîne TKR NAME pour provisionner des clusters TKG sur Superviseur. Si vous utilisez l' API v1alpha3, vous fournissez une chaîne TKR NAME complète dans le champ tkr.reference.name. Si vous utilisez l' API v1beta1, vous fournissez la chaîne TKR NAME complète dans le champ topology.version.
Note : N'utilisez pas la chaîne VERSION lorsque vous faites référence à la TKR dans la spécification du cluster. Le format doit correspondre exactement à la chaîne TKR NAME.

Le nom de la TKR dans la bibliothèque de contenu doit être la chaîne TKR NAME complète. Si vous utilisez une bibliothèque de contenu avec abonnement, la chaîne TKR NAME est créée pour vous. Si vous utilisez une bibliothèque de contenu locale, assurez-vous que le nom que vous attribuez à la TKR correspond à la chaîne TKR NAME. Pour plus d'informations, reportez-vous à la section Bibliothèque de contenu local .

Compatibilité de TKR avec Superviseur

Les TKR sont publiées et mises à jour indépendamment du Superviseur.

Pour provisionner un cluster TKG, le TKR doit être compatible avec le composant du contrôleur TKG qui s'exécute sur Superviseur. Vous ne pouvez pas utiliser un TKR qui n'est pas compatible avec l'instance de Superviseur que vous exécutez. En outre, vous devez vous assurer que vous exécutez un TKR compatible avec la version de Superviseur que vous ciblez pour la mise à niveau.

Vous pouvez vérifier la compatibilité du TKR avec Superviseur à l'aide de la commande kubectl get tkr. La colonne COMPATIBLE renvoie une valeur booléenne. True signifie que le TKR est compatible avec Superviseur, False signifie qu'il n'est pas compatible avec Superviseur.

Compatibilité de TKR avec TKG 2.x

TKG 2.x est la dernière version de Tanzu Kubernetes Grid avec de nouvelles fonctionnalités, notamment les API de provisionnement. TKG 2.0 a été introduit avec vSphere 8. Consultez Provisionnement de clusters TKG sur Superviseur pour plus d'informations.

Le format TKR est différent pour les clusters TKG 2.x de celui des clusters TKG hérités pris en charge sur vSphere 7. Pour provisionner un cluster TKG 2, vous devez utiliser une TKR non héritée. Si la TKR est une TKR héritée, elle ne peut être utilisé que pour provisionner un cluster TKG vSphere 7. Les images TKR qui ne sont pas compatibles avec TKG 2.x incluent l'étiquette d'annotation legacy-tkr.

Il est possible que vous soyez en mesure de provisionner un cluster TKG vSphere 7 sur un Superviseur compatible, mais vous ne pourrez tirer parti des fonctionnalités de TKG 2.x que si vous utilisez une TKR non héritée. Par exemple, alors que la commande kubectl get tkr peut indiquer que le TKR est compatible avec le Superviseur, s'il s'agit d'une TKR héritée, elle ne peut être utilisée que pour provisionner un cluster TKG vSphere 7.

Vous pouvez vérifier la compatibilité de la TKR avec TKG 2.x à l'aide des commandes kubectl get tkr -o yaml et kubectl get tkr --show-labels. Si l'étiquette d'annotation legacy-tkr est présente, la TKR ne peut pas être utilisée pour provisionner un cluster TKG 2.x.

Par exemple, la commande suivante indique que l'image spécifiée est un legacy-tkr. Cela signifie qu'elle ne peut pas être utilisée pour provisionner un cluster TKG 2.x. Cette TKR ne peut être utilisée que pour provisionner un cluster TKG hérité.
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
L'exemple suivant utilise l'indicateur --show-labels pour vérifier si la TKR est compatible pour le provisionnement des clusters TKG 2.x. L'étiquette legacy-tkr est présente, de sorte que l'image ne peut être utilisée que pour créer un cluster TKG hérité.
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=,
L'exemple suivant montre une TKR compatible pour la création du cluster TKG 2.x, car l'étiquette legacy-tkr est absente de la liste des étiquettes.
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=,
L'exécution de la commande équivalente à l'aide de -o yaml indique également que l'étiquette du legacy-tkr est absente, ce qui signifie que la TKR peut être utilisée pour provisionner un cluster 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
Important : Le suffixe -zshippable n'est pas une méthode fiable pour déterminer si la TKR est compatible avec TKG 2.x. Ce suffixe est supprimé de la chaîne TKR NAME à partir de la version vSphere 8 U1. Vous devez vérifier la présence de l'étiquette legacy-tkr dans la TKR pour déterminer si celle-ci peut être utilisée avec vSphere 8 pour provisionner un cluster TKG 2.x. Si vous avez déjà provisionné un cluster TKG 2.x en utilisant une TKR avec le suffixe -zshippable, vous devez faire pointer l'URL de la bibliothèque de contenu vers un emplacement temporaire différent de celui indiqué par ce suffixe pendant la transition. Pour plus d'informations, reportez-vous aux Notes de mise à jour des versions de Tanzu Kubernetes.

Format OSImage de TKR

Le format OSImage de TKR prend en charge plusieurs images de système d'exploitation pour une seule TKR. Cela signifie qu'il existe une seule Version de Tanzu Kubernetes pour une version de Kubernetes spécifique pour tous les systèmes d'exploitation pris en charge, à savoir actuellement PhotonOS et Ubuntu. L'image OSImage par défaut est PhotonOS.

Pour utiliser l'édition Ubuntu du TKR incluez une annotation dans la spécification du cluster. Par exemple, la spécification de cluster TKG suivante utilise l'édition Ubuntu de la TKR nommée.
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
Le format OSImage prend en charge les déploiements de cluster hétérogènes. Par exemple, le manifeste de cluster suivant crée un cluster Tanzu Kubernetes avec PhotonOS par défaut pour le plan de contrôle et Ubuntu pour les nœuds worker. La version de TKR est référencée dans le plan de contrôle et l'annotation spécifie Ubuntu pour le pool de nœuds worker nommé.
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
Lorsque vSphere with Tanzu est mis à niveau vers TKG 2 sur vSphere 8 Superviseur, les TKR existantes sont automatiquement converties au format OSImage de TKR avec une référence à une seule image OSImage. Cela permet aux TKR héritées d'être compatibles avec TKG 2. Si vous utilisez l'édition Ubuntu de TKR et que vous spécifiez uniquement la chaîne de version courte ( v1.21.6+vmware.1-tkg.1) plutôt que la chaîne de version complète ( ubuntu-2004-v1.21.6---vmware.1-tkg.1), vous devez inclure l'annotation du système d'exploitation dans la spécification de cluster. Cela est vrai si vous utilisez l'API v1alpha3 ou l'API vlapha2. Par exemple :
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

Packages de TKR

Les nouvelles images de TKR compatibles avec vSphere 8 sont mises à jour vers une infrastructure basée sur les modules pour les composants TKG 2.0, telle que CSI (Container Storage Interface) et CNI (Container Network Interface). Si vous utilisez l'API v1beta, la modification ou la mise à jour de ces composants s'effectue à l'aide de définitions de ressources personnalisées.

Pour afficher les modules qui comprennent un TKR, exécutez la commande suivante :
kubectl get tkr TKR-NAME -o yaml
Par exemple :
kubectl get tkr v1.23.8---vmware.2-tkg.2-zshippable -o yaml
La commande renvoie tous les modules dans le TKR. Par exemple :
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

Reportez-vous à Exemple v1beta1 : cluster avec le CNI Calico pour consulter un exemple de cas d'utilisation.

Migration des types de systèmes d'exploitation TKR

Les mises à jour du cluster sur place entre les systèmes d'exploitation TKR ne sont pas prises en charge. Cela signifie, par exemple, que vous ne pouvez pas mettre à niveau un cluster TKG à l'aide de TKR version 1.21 Photon vers TKR version 1.22 Ubuntu.

Si vous souhaitez modifier le type de système d'exploitation TKR qu'un cluster TKG utilise, envisagez la procédure suivante. Dans cet exemple, le cluster d'origine utilise TKR Photon et la cible est TKR Ubuntu.

Sécurisation renforcée de TKR

Les guides de mise en œuvre technique de la sécurité (STIG) pour les composants vSphere with Tanzu 8 (y compris le Superviseur et les TKR) sont disponibles. Pour plus d'informations, reportez-vous à la section Sécurisation renforcée STIG Tanzu.

Créer votre propre TKR

À partir d'une version spécifique de TKR, vous pouvez créer des images de machine TKR personnalisées pour les clusters TKG 2 qui s'exécutent sur vSphere 8 Superviseur. Une image de machine personnalisée regroupe un système d'exploitation et une version pris en charge, une version de Kubernetes basée sur une TKR publiée et toutes les personnalisations que vous effectuez.

Pour créer des images de machine personnalisées pour des nœuds de cluster TKG 2, utilisez VMware Image Builder.