Actualizar Kf

En este documento, se describe cómo actualizar una instalación de Kf existente y sus dependencias.

Antes de comenzar

Necesitarás:

  • Un clúster existente con Kf instalado.
  • Acceso a una máquina que tiene gcloud, kf y kubectl instalados.

Valida la instalación de Kf existente

  1. Obtén credenciales de autenticación para interactuar con el clúster:

    gcloud container clusters get-credentials CLUSTER_NAME \
      --zone CLUSTER_ZONE \
      --project CLUSTER_PROJECT_ID
    
  2. Ejecuta kf debug y valida la CLI de Kf y la coincidencia de las versiones del servidor de Kf.

    • La versión de la CLI se muestra en Kf Client.
    • La versión del servidor Kf aparecerá en kf["app.kubernetes.io/version"].
    $ kf debug
    ...
    Version:
      Kf Client:                        v2.0.0
      Server version:                   v1.17.13-gke.1401
      kf["app.kubernetes.io/version"]:  v2.0.0
    ...
    

    Si el cliente de Kf y los valores del servidor Kf no coinciden, descarga y, luego, instala la versión de la CLI de Kf que coincide con la versión del servidor y repite la verificación con la CLI nueva. La versión de la CLI debe coincidir con la versión del servidor para poder continuar.

  3. Ejecuta kf doctor para verificar el estado de tu clúster. Asegúrate de que todas las pruebas se aprueben antes de continuar.

    $ kf doctor
    ...
    === RUN doctor/user
    === RUN doctor/user/ContainerRegistry
    --- PASS: doctor/user
       --- PASS: doctor/user/ContainerRegistry
    ...
    

    Si ves el mensaje Error: environment failed checks, sigue las instrucciones del resultado doctor para resolver el problema y vuelve a ejecutar el comando hasta que tenga éxito.

Actualiza

Para actualizar Kf, sigue estos pasos:

  • Prepara el entorno local y la actualización.
  • Actualiza las dependencias de Kf.
  • Actualiza Kf y verifica que la actualización fue un éxito.

Prepara la actualización

  1. Ejecuta kf version para obtener la versión actual de Kf.

    $ kf version
    kf version v2.0.0 linux
    
  2. Encuentra la próxima versión más reciente de Kf en la página de descargas.

    1. Descarga el archivo YAML de la actualización de Kf y guárdalo como kf-release.yaml.

    2. Descarga la versión de Kf para tu SO y asígnale el nombre kf-next.

    3. Ejecuta chmod para que kf-next sea ejecutable:

      chmod +x kf-next
      
    4. Ejecuta kf-next version para asegurarte de que la versión descargada coincida con la versión de Kafka que deseas instalar:

      $ kf-next version
      kf version v2.1.0 linux
      
  3. Haz una copia de seguridad del configmap de config-defaults con el siguiente comando:

    kubectl get configmap config-defaults -o yaml -n kf > config-defaults-backup.yaml
    
  4. Ejecuta kubectl diff -f kf-release.yaml y, luego, inspecciona los cambios que la actualización haría en tu clúster.

  5. Edita kf-release.yaml y modifícalo para conservar los cambios que quieras conservar.

    Por ejemplo, si estableces la propiedad spaceDefaultToV3Stack del configmap config-defaults como falsa en v2.0.0 de Kf, la versión v2.1.0 tendrá el valor predeterminado de true.

  6. Ejecuta kubectl diff -f kf-release.yaml otra vez para asegurarte de que los cambios que realizaste generen el resultado esperado.

Actualiza las dependencias de Kf

  1. Abre la página de descargas y busca la matriz de dependencia de la versión de Kf a la que estás actualizando.

  2. Actualiza Tekton:

    1. Abre la página de versiones de Tekton.

    2. Busca la versión de Tekton que aparece en la matriz de dependencia de Kf.

    3. Ejecuta el comando que aparece bajo el encabezado "Installation one-liner" para actualizar Tekton.

  3. Actualiza Cloud Service Mesh:

    1. Abre la guía de actualización de Cloud Service Mesh.

    2. En el menú desplegable de versiones, selecciona la versión de Cloud Service Mesh que aparece en la matriz de dependencia de Kf.

    3. Sigue la guía para actualizar ASM.

Actualiza y verifica Kf

  1. Instala los componentes de Kf actualizados mediante la configuración de la versión modificada:

    kubectl apply -f kf-release.yaml
    
  2. Ejecuta doctor para asegurarte de que la versión recién instalada esté en buen estado:

    kf-next doctor --retries=12 --delay=5s
    

    El comando ejecutará verificaciones del clúster varias veces. Es normal que algunos de ellos fallen mientras se inician los controladores nuevos.

    Si el comando falla con el mensaje Error: environment failed checks, sigue las instrucciones del resultado de doctor para resolver el problema y vuelve a ejecutar el comando hasta que tenga éxito.

  3. Reemplaza la CLI kf existente en tu sistema con la CLI kf-next.

    chmod +x kf-next
    mv kf-next $(which kf)
    
  4. Compara el archivo config-defaults-backup.yaml con kubectl diff -f config-defaults-backup.yaml para asegurarte de que tu clúster aún esté configurado de forma correcta.

    Por ejemplo, si conservaste todos los cambios de tu versión anterior de Kf y rechazaste el uso de un nuevo paquete de compilación con la siguiente versión de Kf:

    $ kubectl diff -f config-defaults-backup.yaml
    diff -u -N /tmp/LIVE/v1.ConfigMap.kf.config-defaults /tmp/MERGED/v1.ConfigMap.kf.config-defaults
    --- /tmp/LIVE/v1.ConfigMap.kf.config-defaults
    +++ /tmp/MERGED/v1.ConfigMap.kf.config-defaults
    @@ -131,6 +131,8 @@
         enable_route_services: false
       spaceBuildpacksV2: |
    -    - name: new_buildpack
    -      url: https://github.com/cloudfoundry/new-buildpack
         - name: staticfile_buildpack
           url: https://github.com/cloudfoundry/staticfile-buildpack
         - name: java_buildpack
    exit status 1