Una Release di Tanzu Kubernetes (TKr) fornisce la distribuzione del software Kubernetes firmata e supportata da VMware per l'uso con i cluster Servizio TKG. Il formato TKr è stato aggiornato per consentire il supporto di pacchetti e più sistemi operativi in vSphere 8.

Note di rilascio di TKr

Fare riferimento alle Note di rilascio delle versioni di Tanzu Kubernetes per l'elenco completo delle TKr disponibili, le novità di ogni versione, i problemi noti e la compatibilità con TKr.

Distribuzione e utilizzo di TKr

VMware distribuisce Release di Tanzu Kubernetes attraverso una rete di distribuzione dei contenuti. Utilizzare una libreria di contenuti di vSphere per associare TKr a Spazi dei nomi vSphere. Per automatizzare l'utilizzo di TKr, usare una libreria di contenuti con sottoscrizione. Per gli ambienti con limitazioni Internet, utilizzare una libreria di contenuti locale.

Ogni Release di Tanzu Kubernetes viene distribuita come modello OVA. Il controller TKr in Supervisore utilizza il modello OVA per creare le macchine virtuali per i nodi del cluster TKG. Le dimensioni del disco della macchina virtuale sono impostate dal modello OVA di TKr. È possibile specificare le risorse di CPU e RAM utilizzando le classi della macchina virtuale.

L'ambito della libreria di contenuti TKr non è lo spazio dei nomi. Tutte le istanze di Spazi dei nomi vSphere utilizzano la stessa libreria di contenuti TKr per TKG con Supervisore. Se si modifica la libreria dei contenuti TKr per un'istanza di Spazio dei nomi vSphere, verrà aggiornata anche per tutte le altre.

Stringa TKr Name

Utilizzare il comando kubectl get tkr per generare un elenco delle immagini TKr disponibili per l'uso in Spazio dei nomi vSphere. Ad esempio:
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
Utilizzare la stringa TKr NAME per eseguire il provisioning dei cluster TKG in Supervisore. Se si utilizza l' API v1alpha3, specificare la stringa TKr NAME completa nel campo tkr.reference.name. Se si utilizza l' API v1beta1, specificare la stringa TKr NAME completa nel campo topology.version.
Nota: Non utilizzare la stringa VERSION quando si fa riferimento a TKr nella specifica del cluster. Il formato deve corrispondere esattamente alla stringa TKr NAME.

Il nome di TKr nella libreria di contenuti deve essere la stringa TKr NAME completa. Se si utilizza una libreria di contenuti con sottoscrizione, la stringa TKr Name viene creata automaticamente. Se si utilizza una libreria di contenuti locale, assicurarsi che il nome specificato per TKr corrisponda alla stringa TKr NAME. Per informazioni dettagliate, vedere la libreria di contenuti locale.

Compatibilità di TKr con Servizio TKG

Le TKr vengono rilasciate e aggiornate indipendentemente da Servizio TKG e dal Supervisore.

Per eseguire il provisioning di un cluster TKG, la TKr deve essere compatibile con Servizio TKG. Non è possibile utilizzare una TKr non compatibile con il Servizio TKG. È inoltre necessario assicurarsi di eseguire una TKr compatibile per la versione che si intende aggiornare.

È possibile verificare la compatibilità della TKr utilizzando il comando kubectl get tkr. La colonna COMPATIBLE restituisce un valore booleano. True significa che la TKr è compatibile, mentre False significa che la TKr non è compatibile.

Compatibilità della TKr con vSphere

Il formato TKr è stato aggiornato per vSphere 8. Le TKr per vSphere 8 possono essere eseguite solo in vSphere 8.x. Le TKr per vSphere 7.x sono immagini legacy che funzionano con vSphere 7. Tali immagini possono essere eseguite in vSphere 8 ma solo a scopo di aggiornamento. Le immagini TKr legacy vengono identificate dall'etichetta di annotazione legacy-tkr.

È possibile verificare la compatibilità della TKr utilizzando i comandi kubectl get tkr -o yaml e kubectl get tkr --show-labels. Se è presente l'etichetta di annotazione legacy-tkr, TKr non supporta le funzionalità vSphere 8 e deve essere utilizzata solo per eseguire l'aggiornamento a vSphere 8 da vSphere 7.

Ad esempio, il comando seguente mostra che l'immagine specificata è una 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
Nell'esempio seguente viene utilizzato il flag --show-labels per verificare la compatibilità della TKr. È presente l'etichetta legacy-tkr, pertanto l'immagine può essere utilizzata solo per creare un cluster TKG legacy.
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'esempio seguente mostra che una TKr è stata creata appositamente per vSphere 8.x perché nell'elenco non è presente l'etichetta legacy-tkr.
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=
Se si esegue il comando equivalente utilizzando -o yaml, si vede anche che l'etichetta legacy-tkr è assente, a indicare che la TKr è appositamente creata per 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
...

Formato immagine sistema operativo TKr

Il formato Immagine OS della TKr supporta più immagini del sistema operativo per una singola TKr. Questo significa che è presente una singola Release di Tanzu Kubernetes per una specifica versione di Kubernetes per tutti i sistemi operativi supportati, che attualmente sono PhotonOS e Ubuntu. Il formato dell'immagine del sistema operativo predefinito è PhotonOS.

Per impostazione predefinita, per i nodi del cluster TKG viene utilizzata l'edizione PhotonOS della TKR denominata. Se la TKr di riferimento supporta il formato immagine OS e dispone di un'edizione del sistema operativo Ubuntu, utilizzare l'annotazione run.tanzu.vmware.com/resolve-os-image: os-name=ubuntu per specificare l'edizione del sistema operativo Ubuntu della TKr. Ad esempio, la specifica del cluster TKG seguente utilizza la versione Ubuntu della TKr denominata.
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
Il formato immagine OS supporta le distribuzioni di cluster eterogenei. Ad esempio, il seguente manifesto del cluster crea un cluster Tanzu Kubernetes con il PhotonOS predefinito per i nodi del piano di controllo e Ubuntu per i nodi di lavoro. Alla versione della TKr viene fatto riferimento nella sezione del piano di controllo e l'annotazione specifica Ubuntu per il pool di nodi di lavoro denominato.
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

Quando il sistema viene aggiornato a vSphere 8, le TKr esistenti vengono convertite automaticamente nel formato immagine del sistema operativo della TKr in riferimento a una singola immagine del sistema operativo. In questo modo, le TKr legacy possono essere compatibili per l'aggiornamento a una TKr non legacy.

Le TKr legacy hanno due edizioni: Photon e Ubuntu. Quando la TKr legacy dispone di un'edizione specifica di Ubuntu, è possibile utilizzare la stringa della versione completa (con "ubuntu") e omettere l'etichetta dell'annotazione oppure utilizzare la stringa della versione breve (senza "ubuntu") e includere l'etichetta della versione.

Pacchetti TKr

Le immagini TKr compatibili con vSphere 8 vengono aggiornate in un framework basato su pacchetti per i componenti principali, ad esempio Container Storage Interface (CSI) e Container Network Interface (CNI). Se si utilizza l'API v1beta, la modifica o l'aggiornamento di questi componenti viene eseguito utilizzando definizioni di risorse personalizzate.

Per visualizzare i pacchetti che comprendono una TKr, eseguire il comando seguente:
kubectl get tkr TKR-NAME -o yaml
Ad esempio:
kubectl get tkr v1.28.8---vmware.1-fips.1-tkg.2 -o yaml
Il comando restituisce tutti i pacchetti nella TKr. Ad esempio:
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

Vedere Esempio v1beta1: cluster con CNI di Calico per un caso d'uso di esempio.

Migrazione dei tipi di sistema operativo di TKr

Gli aggiornamenti del cluster sul posto tra sistemi operativi di TKr non sono supportati. Questo significa ad esempio che non è possibile aggiornare un cluster TKG che utilizza TKr v1.27.11 Photon a TKr v1.28.8 Ubuntu.

Se si desidera modificare il tipo di sistema operativo di TKr utilizzato da un cluster TKG, eseguire la procedura seguente. In questo esempio, il cluster di origine utilizza TKr Photon e il cluster di destinazione è TKr Ubuntu.

Protezione avanzata di TKr

Sono disponibili le guide all'implementazione tecnica della sicurezza (STIG) per i componenti di Sistema, inclusi il Supervisore e le TKr. Per informazioni dettagliate, vedere Protezione avanzata STIG di Tanzu.

Creazione di una TKr personalizzata

A partire dalla TKr v1.25.7 per vSphere 8.x, è possibile creare immagini della macchina TKr personalizzate per i cluster TKG in vSphere 8. Un'immagine di macchina personalizzata include un sistema operativo e una versione supportati, una versione di Kubernetes basata su una TKr rilasciata e tutte le personalizzazioni che sono state eseguite.

Per creare immagini di macchina personalizzate per i nodi del cluster TKG, utilizzare vSphere Tanzu Kubernetes Grid Image Builder. Fare riferimento alla documentazione per informazioni dettagliate sulla creazione di immagini personalizzate, sulle versioni di TKr supportate e sulle personalizzazioni supportate.