Varias versiones de Kubernetes

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.

Acerca de las versiones de Kubernetes

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.3 en las Notas de la versión de VMware Tanzu Kubernetes Grid 2.3.

Enumerar versiones disponibles

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:

  • Para enumerar todas las versiones, ejecute tanzu kubernetes-release get.
  • Para enumerar todas las versiones que coinciden con v1.24.17, ejecute tanzu kubernetes-release get v1.24.17.
tanzu kubernetes-release get
NAME                       VERSION                  COMPATIBLE  ACTIVE  UPDATES AVAILABLE
v1.24.17---vmware.1-tkg.1  v1.24.17+vmware.1-tkg.1  True        True
v1.25.13---vmware.1-tkg.1  v1.25.13+vmware.1-tkg.1  True        True
v1.26.8---vmware.2-tkg.1   v1.26.8+vmware.1-tkg.1   True        True

Enumerar las actualizaciones disponibles

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

Activar o desactivar una versión de Tanzu Kubernetes

Un TKr puede activarse o desactivarse. Para activar un TKr:

tanzu kubernetes-release activate TKR-NAME

Por ejemplo:

tanzu kubernetes-release activate v1.25.13---vmware.1-tkg.1

Para desactivar un TKr:

tanzu kubernetes-release deactivate TKR-NAME

Por ejemplo:

tanzu kubernetes-release deactivate v1.25.13---vmware.1-tkg.1

Implementar un clúster con una versión de Kubernetes no predeterminada

Cada versión de Tanzu Kubernetes Grid proporciona una versión predeterminada de Kubernetes. La versión predeterminada de Tanzu Kubernetes Grid v2.3 es Kubernetes 1.26.8.

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.

  • Para ver una lista de las versiones de Kubernetes disponibles, consulte Versiones de Kubernetes disponibles anteriormente.
  • Para implementar clústeres que ejecutan una versión no predeterminada de Kubernetes, siga los pasos que se indican a continuación.

Publicar la versión de Kubernetes en la infraestructura

En vSphere y Azure, debe realizar un paso adicional para poder implementar clústeres que ejecuten versiones no predeterminadas de Kubernetes:

  • vSphere: Importe el archivo OVA de plantilla de imagen base adecuado en vSphere y conviértalo en una plantilla de máquina virtual. Para obtener información sobre cómo importar archivos OVA base en vSphere, consulte Importar la plantilla de imagen base en vSphere.

  • Azure: Ejecute el comando CLI de Azure para aceptar la licencia de la versión base del sistema operativo. Una vez que haya aceptado una licencia, puede omitir este paso en el futuro:

    1. 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:
      • Cambie v inicial a k8s-.
      • Cambie . a dot en el número de versión.
      • Cambie +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.
      • Ejemplos: k8s-1dot26dot8-ubuntu-2004, k8s-1dot25dot13-ubuntu-2004.
    2. Ejecute az vm image terms accept. Por ejemplo:

      az vm image terms accept --publisher vmware-inc --offer tkg-capi-2022-06-24 --plan k8s-1dot26dot8-ubuntu-2004
      
  • Amazon Web Services (AWS): No es necesaria ninguna acción. Las imágenes de máquina de Amazon (AMI) de Amazon Linux 2 que incluyen las versiones de Kubernetes compatibles estarán disponibles públicamente para todos los usuarios de AWS, en todas las regiones de AWS compatibles. Tanzu Kubernetes Grid utiliza automáticamente la AMI adecuada para la versión de Kubernetes que se especifica.

Implementar el clúster de Kubernetes

Para implementar el clúster de carga de trabajo que ejecuta una versión de Kubernetes no predeterminada:

  1. 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
    
  2. 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:

    1. 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.3.1 y los valores de TKR-VERSON-* son versiones de TKr anteriores, tal como se indica en tanzu kubernetes-release get, por ejemplo, v1.24.14--vmware.1-tkg.

    2. Cree el objeto ConfigMap:

      kubectl apply -f old-tkrs-config.yaml
      
  3. 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-13-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.

Implementar un clúster con una imagen de máquina personalizada

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:

Usar una imagen de máquina alternativa

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:

  1. Cargue la imagen en vSphere como se describe en Importar la plantilla de imagen base en vSphere.

  2. 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.4---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.

  3. 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.4 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.4---vmware.1-tkg.1-6c92aa1cbb96b644085e6229f41ef14d
        type: ova
      kubernetesVersion: v1.26.4+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 (.).
    • TKG copia estos valores en la configuración OSImage del objeto metadata.labels siguiendo el patrón ova-MY-FIELD: MY-VALUE.
  4. 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.

    • Para los nodos del plano de control, edite el metadata.annotations en topology.controlPlane.
    • Para los nodos de trabajo, edite el 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
      

Compilar y usar una imagen de máquina personalizada

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 crear clústeres en un sistema operativo base que VMware admite, pero no distribuye, como Red Hat Enterprise Linux (RHEL) v8.
  • Para instalar paquetes adicionales en la imagen de máquina base o personalizarla de otro modo como se describe en Personalización en la documentación de Image Builder.

Para obtener instrucciones, consulte Crear imágenes de máquina.

check-circle-line exclamation-circle-line close-line
Scroll to top icon