Une Version de Tanzu Kubernetes (TKr) fournit la distribution logicielle Kubernetes signée et prise en charge par VMware pour une utilisation avec les clusters de Service TKG. Le format TKR est mis à jour pour vSphere 8 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.

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 le 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 l' 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 le Service TKG

Les TKR sont publiés et mis à jour indépendamment du Service TKG et de Superviseur.

Pour provisionner un cluster TKG, la TKr doit être compatible avec le Service TKG. Vous ne pouvez pas utiliser une TKr qui n'est pas compatible avec l'instance de Service TKG. En outre, vous devez vous assurer que vous exécutez une TKr compatible avec la version que vous ciblez pour la mise à niveau.

Vous pouvez vérifier la compatibilité de la TKr à l'aide de la commande kubectl get tkr. La colonne COMPATIBLE renvoie une valeur booléenne. True signifie que la TKr est compatible, Falsesignifie qu'elle n'est pas compatible.

Compatibilité de la TKr avec vSphere

Le format de la TKr est mis à jour pour vSphere 8. Les TKr pour vSphere 8 ne peuvent s'exécuter que sur vSphere 8.x. Les TKr pour vSphere 7.x sont des images héritées qui fonctionnent avec vSphere 7. Ces images peuvent s'exécuter sur vSphere 8, mais uniquement à des fins de mise à niveau. Les images TKr héritées sont identifiées par l'étiquette d'annotation legacy-tkr.

Vous pouvez vérifier la compatibilité de la TKr à 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 prend pas en charge les fonctionnalités de vSphere 8 et ne doit être utilisée que pour effectuer la mise à niveau vers vSphere 8 à partir de vSphere 7.

Par exemple, la commande suivante indique que l'image spécifiée est un legacy-tkr.
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 la compatibilité de la TKr. 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 qu'une TKr est conçue pour vSphere 8.x, car l'étiquette legacy-tkr est absente de la liste des étiquettes.
kubectl get tkr v1.28.8---vmware.1-fips.1-tkg.2 --show-labels
NAME                              VERSION                         READY   COMPATIBLE   CREATED   LABELS
v1.28.8---vmware.1-fips.1-tkg.2   v1.28.8+vmware.1-fips.1-tkg.2   True    True         21d       os-arch=amd64,os-name=photon,os-type=linux,os-version=5.0,tkr.tanzu.vmware.com/standard=,v1.28.8---vmware.1-fips.1-tkg.2=,v1.28.8---vmware.1-fips.1-tkg=,v1.28.8---vmware.1-fips.1=,v1.28.8---vmware.1-fips=,v1.28.8---vmware.1=,v1.28.8---vmware=,v1.28.8=,v1.28=,v1=
L'exécution de la commande équivalente à l'aide de -o yaml indique également que l'étiquette legacy-tkr est absente, indiquant que la TKr est conçue pour vSphere 8.x.
 kubectl get tkr v1.28.8---vmware.1-fips.1-tkg.2 -o yaml
apiVersion: run.tanzu.vmware.com/v1alpha3
kind: TanzuKubernetesRelease
metadata:
  creationTimestamp: "2024-05-08T20:03:57Z"
  finalizers:
  - tanzukubernetesrelease.run.tanzu.vmware.com
  generation: 2
  labels:
    os-arch: amd64
    os-name: photon
    os-type: linux
    os-version: "5.0"
    tkr.tanzu.vmware.com/standard: ""
    v1: ""
    v1.28: ""
    v1.28.8: ""
    v1.28.8---vmware: ""
    v1.28.8---vmware.1: ""
    v1.28.8---vmware.1-fips: ""
    v1.28.8---vmware.1-fips.1: ""
    v1.28.8---vmware.1-fips.1-tkg: ""
    v1.28.8---vmware.1-fips.1-tkg.2: ""
  name: v1.28.8---vmware.1-fips.1-tkg.2
...

Format d'image du système d'exploitation de la TKr

Le format d'image du système d'exploitation de la 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. Le format d'image du système d'exploitation par défaut est PhotonOS.

Par défaut, l'édition PhotonOS de la TKr nommée est utilisée pour les nœuds de cluster TKG. Si la TKr référencée prend en charge le format d'image du système d'exploitation et dispose d'une édition du système d'exploitation Ubuntu disponible, utilisez l'annotation run.tanzu.vmware.com/resolve-os-image: os-name=ubuntu pour spécifier l'édition du système d'exploitation Ubuntu de la TKr. 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: tkgs-cluster-ubuntu
  namespace: tkgs-cluster-ns
  annotations:
    run.tanzu.vmware.com/resolve-os-image: os-name=ubuntu
spec:
   topology:
     controlPlane:
       ...
       tkr:
         reference:
           name: v1.28.8---vmware.1-fips.1-tkg.2
Le format d'image du système d'exploitation prend en charge les déploiements de clusters hétérogènes. Par exemple, le manifeste de cluster suivant crée un cluster Tanzu Kubernetes avec l'instance par défaut de PhotonOS pour les nœuds du plan de contrôle et Ubuntu pour les nœuds worker. La version de la TKr est référencée dans la section du 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: tkgs-cluster-multiOS
  namespace: tkgs-cluster-ubuntu
  annotations:
    //Worker nodes annotation
    run.tanzu.vmware.com/resolve-os-image.np-1: os-name=ubuntu
spec:    
  topology:      
    controlPlane:        
      tkr:          
        reference:            
          name: v1.28.8---vmware.1-fips.1-tkg.2
      replicas: 3
      vmClass: guaranteed-medium
      storageClass: tkgs-storage-profile 
    nodePools:     
    - replicas: 3
      name: np-1
      vmClass: guaranteed-medium
      storageClass: tkgs-storage-profile

Lorsque le système est mis à niveau vers vSphere 8, les TKr existantes sont automatiquement converties au format d'image du système d'exploitation de la TKr avec référence à une seule image du système d'exploitation. Cela permet aux TKr héritées d'être compatibles pour la mise à niveau vers une TKr non héritée.

Les TKr héritées disposent de deux éditions : Photon et Ubuntu. Lorsque la TKr héritée dispose d'une édition spécifique à Ubuntu, vous pouvez utiliser la chaîne de version complète (avec « ubuntu ») et omettre l'étiquette d'annotation, ou utiliser la chaîne de version courte (sans « ubuntu ») et inclure l'étiquette de version.

Modules de TKr

Les images de la TKr compatibles avec vSphere 8 sont mises à jour vers une infrastructure basée sur les modules pour les composants principaux, tels 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 une TKR, exécutez la commande suivante :
kubectl get tkr TKR-NAME -o yaml
Par exemple :
kubectl get tkr v1.28.8---vmware.1-fips.1-tkg.2 -o yaml
La commande renvoie tous les modules dans la TKR. Par exemple :
spec:
  bootstrapPackages:
  - name: antrea.tanzu.vmware.com.1.13.3+vmware.3-tkg.2-vmware
  - name: vsphere-pv-csi.tanzu.vmware.com.3.1.0+vmware.1-tkg.6-vmware
  - name: vsphere-cpi.tanzu.vmware.com.1.28.0+vmware.1-tkg.1-vmware
  - name: kapp-controller.tanzu.vmware.com.0.48.2+vmware.1-tkg.1-vmware
  - name: guest-cluster-auth-service.tanzu.vmware.com.1.3.3+tkg.1-vmware
  - name: metrics-server.tanzu.vmware.com.0.6.2+vmware.3-tkg.5-vmware
  - name: secretgen-controller.tanzu.vmware.com.0.15.0+vmware.1-tkg.1-vmware
  - name: pinniped.tanzu.vmware.com.0.25.0+vmware.2-tkg.1-vmware
  - name: capabilities.tanzu.vmware.com.0.32.1+vmware.1
  - name: gateway-api.tanzu.vmware.com.1.0.0+vmware.1-tkg.1-vmware
  - name: calico.tanzu.vmware.com.3.26.3+vmware.1-tkg.1-vmware

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.27.11 Photon vers TKr version 1.28.8 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 système (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 de TKr v1.25.7 pour vSphere 8.x, vous pouvez créer des images de machine TKr personnalisées pour les clusters TKG qui s'exécutent sur vSphere 8. 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, utilisez vSphere Tanzu Kubernetes Grid Image Builder. Reportez-vous à la documentation pour plus d'informations sur la création d'images personnalisées, les versions de TKR prises en charge et les personnalisations prises en charge.