En este tema se explica cómo enumerar las versiones de Kubernetes disponibles e implementar un clúster de carga de trabajo con una versión de Kubernetes no predeterminada.
Cada versión de Tanzu Kubernetes Grid con un clúster de administración independiente proporciona una versión predeterminada y dos no predeterminadas de Kubernetes, que se pueden enumerar ejecutando tanzu kubernetes-release get
.
Tanzu Kubernetes Grid administra las versiones de Kubernetes con objetos de la versión de Tanzu Kubernetes (TKr). Un TKr especifica las imágenes del sistema operativo, los componentes principales de Kubernetes y los paquetes de arranque que son compatibles con la versión de Kubernetes definida en TKr. Cuando se ejecuta tanzu cluster create
con un TKr predeterminado o no predeterminado, Tanzu Kubernetes Grid utiliza los componentes y los paquetes de arranque especificados en la TKr para crear el clúster. También lee el archivo de configuración del clúster para determinar qué imagen de las imágenes del sistema operativo compatibles se utilizará al crear el clúster.
Para obtener una lista completa de las versiones de Kubernetes compatibles, consulte Versiones de Kubernetes compatibles en Tanzu Kubernetes Grid v2.4 en las Notas de la versión de VMware Tanzu Kubernetes Grid 2.4.
Para enumerar todas las versiones de Kubernetes disponibles con su estado actual de compatibilidad y actualización, ejecute tanzu kubernetes-release get
con un argumento de coincidencia de versión opcional, por ejemplo:
tanzu kubernetes-release get
.v1.26.8
, ejecute tanzu kubernetes-release get v1.26.8
.tanzu kubernetes-release get
NAME VERSION COMPATIBLE ACTIVE UPDATES AVAILABLE
v1.25.13---vmware.1-tkg.1 v1.25.13+vmware.1-tkg.1 True True
v1.26.8---vmware.1-tkg.1 v1.26.8+vmware.1-tkg.1 True True
v1.27.5---vmware.2-tkg.1 v1.27.5+vmware.1-tkg.1 True True
Para detectar las versiones de TKr que están disponibles para un clúster de carga de trabajo específico, ejecute tanzu cluster available-upgrades get
con el nombre completo del clúster, por ejemplo:
tanzu cluster available-upgrades get my-cluster
Un TKr puede activarse o desactivarse. Para activar un TKr:
tanzu kubernetes-release activate TKR-NAME
Por ejemplo:
tanzu kubernetes-release activate v1.27.5---vmware.1-tkg.1
Para desactivar un TKr:
tanzu kubernetes-release deactivate TKR-NAME
Por ejemplo:
tanzu kubernetes-release deactivate v1.27.5---vmware.1-tkg.1
Cada versión de Tanzu Kubernetes Grid proporciona una versión predeterminada de Kubernetes. La versión predeterminada de Tanzu Kubernetes Grid v2.4 es Kubernetes v1.27.5.
A medida que Kubernetes ascendente publica revisiones o nuevas versiones, VMware las publica en un registro público y el controlador de versiones Tanzu Kubernetes las importa en el clúster de administración. Esto permite a la CLI de Tanzu crear clústeres basados en las nuevas versiones.
En vSphere y Azure, debe realizar un paso adicional para poder implementar clústeres que ejecuten versiones no predeterminadas de Kubernetes:
Convierta la versión de Kubernetes de destino que aparece en los resultados del comando tanzu kubernetes-release get
en su SKU de imagen de Azure de la siguiente manera:
v
inicial a k8s-
..
a dot
en el número de versión.+vmware.*
final a -ubuntu-2004
, para designar Ubuntu v20.04, la versión del sistema operativo predeterminada para todas las máquinas virtuales Tanzu Kubernetes Grid en Azure.k8s-1dot27dot5-ubuntu-2004
, k8s-1dot26dot8-ubuntu-2004
.
az vm image terms accept
. Por ejemplo:az vm image terms accept --publisher vmware-inc --offer tkg-capi-2022-06-24 --plan k8s-1dot27dot5-ubuntu-2004
Para implementar el clúster de carga de trabajo que ejecuta una versión de Kubernetes no predeterminada:
Si va a implementar un clúster basado en planes, establezca una variable de entorno ALLOW_LEGACY_CLUSTER
en true
:
export ALLOW_LEGACY_CLUSTER=true
Si la versión de revisión de Kubernetes con la que va a implementar el clúster es anterior a la última revisión admitida para su versión secundaria, tal como se indica en Versiones de Kubernetes compatibles, cree un objeto ConfigMap
para su TKr en el espacio de nombres tkg-system
:
Cree una definición de objeto ConfigMap
en el espacio de nombres tkg-system
que enumere los TKr anteriores:
apiVersion: v1
kind: ConfigMap
metadata:
namespace: tkg-system
name: TKR-CONFIG-NAME
labels:
run.tanzu.vmware.com/additional-compatible-tkrs: ""
data:
tkrVersions: |
- TKR-VERSON-1
- TKR-VERSON-2
Donde TKR-CONFIG-NAME
es cualquier nombre de objeto legal, como tkg-v2.4.0
y los valores de TKR-VERSON-*
son versiones de TKr anteriores, tal como se indica en tanzu kubernetes-release get
, por ejemplo, v1.24.11--vmware.1-tkg
.
Cree el objeto ConfigMap
:
kubectl apply -f old-tkrs-config.yaml
Para implementar un clúster de carga de trabajo con una versión de Kubernetes que no sea la predeterminada para su versión de Tanzu Kubernetes Grid, especifique la versión de Tanzu Kubernetes en la opción --tkr
. Por ejemplo, para implementar un clúster de Kubernetes v1.25.13, ejecute:
tanzu cluster create my-1-25-10-cluster --tkr v1.25.13---vmware.1-tkg
Para obtener más información sobre cómo crear un clúster de carga de trabajo, consulte Crear clústeres de carga de trabajo.
Para combinaciones comunes de versión de sistema operativo, versión de Kubernetes e infraestructura de destino, Tanzu Kubernetes Grid con un clúster de administración independiente proporciona imágenes de máquina predeterminadas. Opcionalmente, puede especificar imágenes de máquina personalizadas, incluidas las imágenes que cree usted mismo.
En las siguientes secciones se explica cómo implementar un clúster con una imagen de máquina alternativa o creada a medida:
En un archivo de configuración del clúster, se establecen OS_NAME
, OS_VERSION
y OS_ARCH
para especificar la imagen de máquina base, por ejemplo, ubuntu
, 20.04
o photon
, 3
; y amd64
. Estos valores predeterminados son las imágenes del sistema operativo que VMware distribuye, pero también puede especificar su propia imagen de sistema operativo alternativa que se utilizará para los nodos del clúster:
Cargue la imagen en vSphere como se describe en Importar la plantilla de imagen base en vSphere.
Realice una de las siguientes acciones, en función de si la imagen comparte la misma versión del sistema operativo que una imagen de máquina existente distribuida por VMware:
Si va a especificar una imagen alternativa con el mismo nombre de sistema operativo, versión y arquitectura que un TKr y una imagen existentes que VMware distribuye, edite su objeto OSImage
, por ejemplo:
kubectl edit OSImage v1.26.8---vmware.1-tkg.1-6c92aa1cbb96b644085e6229f41ef14d
De lo contrario, cree y aplique un nuevo objeto OSImage
, utilizando una definición de objeto OSImage
existente como plantilla. Establezca sus valores metadata.name
y spec.image.ref.version
en el nombre de archivo OVA.
En el bloque spec.image.ref
del objeto OSImage
, agregue un valor y un campo de identificador. Por ejemplo, para habilitar una alternativa a la imagen de Kubernetes v1.26.8 en Ubuntu 20.04 que VMware distribuye:
apiVersion: run.tanzu.vmware.com/v1alpha3
kind: OSImage
metadata:
creationTimestamp: "2023-06-02T06:08:35Z"
generation: 2
labels:
image-type: ova
os-arch: amd64
os-name: ubuntu
os-type: linux
...
spec:
image:
ref:
MY-FIELD: MY-VALUE
version: v1.26.8---vmware.1-tkg.1-6c92aa1cbb96b644085e6229f41ef14d
type: ova
kubernetesVersion: v1.26.8+vmware.1
os:
arch: amd64
name: ubuntu
type: linux
version: "2004"
Donde MY-FIELD
y MY-VALUE
son el campo de identificador y el valor que estableció para incluir en las especificaciones del objeto Cluster
.
MY-VALUE
debe tener entre 0 y 63 caracteres y puede estar vacío, o bien debe comenzar y terminar con caracteres alfanuméricos y contener caracteres alfanuméricos, guiones (-
), guiones bajos (_
) o puntos (.
).OSImage
del objeto metadata.labels
siguiendo el patrón ova-MY-FIELD: MY-VALUE
.Para utilizar la imagen de máquina alternativa en un clúster, edite el objeto Cluster
para agregar la configuración ova-MY-FIELD=MY-VALUE
al metadata.annotations
para los nodos del clúster que utilizarán la imagen.
metadata.annotations
en topology.controlPlane
.metadata.annotations
en topology.workers.machineDeployments
para las implementaciones de máquina que usarán la imagen.Por ejemplo:
metadata:
annotations:
run.tanzu.vmware.com/resolve-os-image: image-type=ova,ova-my-field=my-value
Puede crear su propia imagen de máquina para utilizarla en los nodos del clúster. Entre los motivos para hacer esto se incluyen:
Para obtener instrucciones, consulte Crear imágenes de máquina.