Antes de comenzar
Necesitarás:
- Un clúster existente con Kf instalado.
- Acceso a una máquina que tiene
gcloud
,kf
ykubectl
instalados.
Valida la instalación de Kf existente
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
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.
- La versión de la CLI se muestra en
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 resultadodoctor
para resolver el problema y vuelve a ejecutar el comando hasta que tenga éxito.
Actualización
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
Ejecuta
kf version
para obtener la versión actual de Kf.$ kf version kf version v2.0.0 linux
Encuentra la próxima versión más reciente de Kf en la página de descargas.
Descarga el archivo YAML de la actualización de Kf y guárdalo como
kf-release.yaml
.Descarga la versión de Kf para tu SO y asígnale el nombre
kf-next
.Ejecuta
chmod
para quekf-next
sea ejecutable:chmod +x kf-next
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
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
Ejecuta
kubectl diff -f kf-release.yaml
y, luego, inspecciona los cambios que la actualización haría en tu clúster.Edita
kf-release.yaml
y modifícalo para conservar los cambios que quieras conservar.Por ejemplo, si estableces la propiedad
spaceDefaultToV3Stack
del configmapconfig-defaults
como falsa env2.0.0
de Kf, la versiónv2.1.0
tendrá el valor predeterminado detrue
.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
Abre la página de descargas y busca la matriz de dependencia de la versión de Kf a la que estás actualizando.
Actualiza Tekton:
Abre la página de versiones de Tekton.
Busca la versión de Tekton que aparece en la matriz de dependencia de Kf.
Ejecuta el comando que aparece bajo el encabezado "Installation one-liner" para actualizar Tekton.
Actualiza Cloud Service Mesh:
En el menú desplegable de versiones, selecciona la versión de Cloud Service Mesh que aparece en la matriz de dependencia de Kf.
Sigue la guía para actualizar ASM.
Actualiza y verifica Kf
Instala los componentes de Kf actualizados mediante la configuración de la versión modificada:
kubectl apply -f kf-release.yaml
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 dedoctor
para resolver el problema y vuelve a ejecutar el comando hasta que tenga éxito.Reemplaza la CLI
kf
existente en tu sistema con la CLIkf-next
.chmod +x kf-next
mv kf-next $(which kf)
Compara el archivo
config-defaults-backup.yaml
conkubectl 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