Como parte del procedimiento de actualización, asegúrate de que la instalación de Kf use la versión más reciente de su operador:
- Confirma que tu versión actual de Kf pueda actualizarse a Kf v2.4.1.
- Actualiza a Kf v2.4.1.
- Actualiza las dependencias (si es necesario).
Antes de comenzar
Necesitarás:
- Un clúster existente con Kf instalado.
- Acceso a una máquina que tiene
gcloud
,kf
ykubectl
instalados.
Prepárate para la actualización
Conéctate a tu clúster de destino
gcloud container clusters get-credentials CLUSTER_NAME \
--zone CLUSTER_ZONE \
--project CLUSTER_PROJECT_ID
Confirma que la CLI de Kf actual y las versiones del servidor coincidan
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.3.2
Server version: v1.20.6-gke.1000
kf["app.kubernetes.io/version"]: v2.3.2
...
Si el cliente de Kf y los valores de servidor de Kf no coinciden, pero la versión del servidor es v2.3.x, instala la CLI de Kf v2.4.1 antes de continuar.
Si el valor del servidor de Kf es anterior a v2.3.x, primero debes actualizar a Kf v2.3.x de forma incremental para continuar.
Confirma que Kf esté en buen estado antes de realizar la actualización
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 algún mensaje FAIL
o Error: environment failed checks
, sigue las instrucciones de la salida de kf doctor
o ve la guía de solución de problemas para resolver el problema y volver a ejecutar el comando hasta que tenga éxito.
También puedes crear copias de seguridad de los mapas de configuración de Kf si realizaste personalizaciones
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
Haz una copia de seguridad del configmap de
config-secrets
con el siguiente comando:kubectl get configmap config-secrets -o yaml -n kf > config-secrets-backup.yaml
Actualiza el operador Kf
El operador Kf se lanzó por primera vez como parte de las versiones 2.4.0:
Si ya instalaste el operador de Kf como parte de la instalación de 2.4.0, solo debes actualizarlo como parte de la actualización a 2.4.1.
Consulta Actualiza el operador de Kf.
Si actualizas desde la versión 2.3.2, debes instalar la versión 2.4.1 del operador Kf para actualizar a Kf administrado por un operador.
Consulta Instala el operador Kf.
Actualiza el operador de Kf actual
El operador Kf realiza actualizaciones por ti.
Aplica el operador yaml:
kubectl apply -f "https://storage.googleapis.com/kf-releases/v2.4.1/operator.yaml"
Instala el operador Kf por primera vez
Sigue estos pasos para actualizar a Kf administrado por el operador.
Aplica el operador yaml:
kubectl apply -f "https://storage.googleapis.com/kf-releases/v2.4.1/operator.yaml"
Elige entre usar valores predeterminados o retener personalizaciones:
Prepara
kfsystem.yaml
para la actualización con los valores predeterminados:Descarga el archivo
kfsystem.yaml
, completa las variables que se indican a continuación y, luego, ejecuta los comandos en el mismo directorio que el archivo a fin de prepararte automáticamente para la actualización dekfsystem.yaml
.export CLUSTER_PROJECT_ID=YOUR_PROJECT_ID export CLUSTER_NAME=YOUR_CLUSTER_NAME export CONTAINER_REGISTRY=YOUR_CLUSTER_COMPUTE_REGION-docker.pkg.dev/${CLUSTER_PROJECT_ID}/${CLUSTER_NAME} kubectl apply -f kfsystem.yaml kubectl patch \ kfsystem kfsystem \ --type='json' \ -p="[{'op': 'replace', 'path': '/spec/kf', 'value': {'enabled': true, 'config': {'spaceContainerRegistry': '${CONTAINER_REGISTRY}', 'secrets':{'workloadidentity':{'googleserviceaccount':'${CLUSTER_NAME}-sa', 'googleprojectid':'${CLUSTER_PROJECT_ID}'}}}}}]"
Prepara
kfsystem.yaml
para la actualización a la vez que preservas las personalizaciones:Descarga el archivo
kfsystem.yaml
.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
Haz una copia de seguridad del configmap de
config-secrets
con el siguiente comando:kubectl get configmap config-secrets -o yaml -n kf > config-secrets-backup.yaml
Inspecciona los archivos config-default y config-secrets actuales, y busca la configuración correspondiente en
kfsystem.yaml
.Copia la configuración existente de
config-secrets
yconfig-defaults
. Toda la configuración deconfig-secrets
yconfig-defaults
se encuentra enkfsystem.yaml
. El campogoogleProjectId
ahora es obligatorio.El campo
wi.googleServiceAccount
es la cuenta de servicio completa deconfig-secrets
, pero se debe quitar el sufijo parakfsystem
. Por ejemplo,${CLUSTER_NAME}-sa@${CLUSTER_PROJECT_ID}.iam.gserviceaccount.com
convertirá${CLUSTER_NAME}-sa
enkfsystem.yaml
.Después de copiar la configuración, cambia el campo
enabled
enkfsystem
atrue
.Guarda los cambios en
kfsystem.yaml
.Configura el operador para Kf:
kubectl apply -f kfsystem.yaml
Actualiza las dependencias de Kf
Actualiza Tekton:
kubectl apply -f "https://storage.googleapis.com/tekton-releases/pipeline/previous/v0.23.0/release.yaml"
Actualiza Cloud Service Mesh:
- Sigue los pasos de la guía de actualización de Cloud Service Mesh 1.9.
Actualiza Config Connector.
Descarga el archivo tar de Config Connector más reciente.
Extrae el archivo tar.
tar zxvf release-bundle.tar.gz
Instala el operador de Config Connector en tu clúster.
kubectl apply -f operator-system/configconnector-operator.yaml
Configura el conector de Config Connector si instalas Config Connector por primera vez.
Copia el siguiente YAML en un archivo llamado
configconnector.yaml
:# configconnector.yaml apiVersion: core.cnrm.cloud.google.com/v1beta1 kind: ConfigConnector metadata: # the name is restricted to ensure that there is only one # ConfigConnector resource installed in your cluster name: configconnector.core.cnrm.cloud.google.com spec: mode: cluster googleServiceAccount: "KF_SERVICE_ACCOUNT_NAME" # Replace with the full service account resolved from ${CLUSTER_NAME}-sa@${CLUSTER_PROJECT_ID}.iam.gserviceaccount.com
Aplica la configuración al clúster.
kubectl apply -f configconnector.yaml
Verifica que Config Connector esté completamente instalado antes de continuar.
Config Connector ejecuta todos sus componentes en un espacio de nombres llamado
cnrm-system
. Ejecuta el siguiente comando para verificar que los Pods estén listos:kubectl wait -n cnrm-system --for=condition=Ready pod --all
Si Config Connector está instalado correctamente, el resultado es similar al siguiente:
pod/cnrm-controller-manager-0 condition met
Configura Workload Identity si instalas Config Connector por primera vez.
kubectl annotate serviceaccount \ --namespace cnrm-system \ --overwrite \ cnrm-controller-manager \ iam.gke.io/gcp-service-account=${CLUSTER_NAME}-sa@${CLUSTER_PROJECT_ID}.iam.gserviceaccount.com
Actualiza a la CLI de Kf v2.4.1
Instala la CLI:
Linux
Con este comando, se instala la CLI de Kf para todos los usuarios del sistema. Sigue las instrucciones de la pestaña de Cloud Shell para instalarlo tú mismo.
gcloud storage cp gs://kf-releases/v2.4.1/kf-linux /tmp/kf
chmod a+x /tmp/kf
sudo mv /tmp/kf /usr/local/bin/kf
Mac
Con este comando, se instala
kf
para todos los usuarios del sistema.gcloud storage cp gs://kf-releases/v2.4.1/kf-darwin /tmp/kf
chmod a+x /tmp/kf
sudo mv /tmp/kf /usr/local/bin/kf
Cloud Shell
Este comando instalará
kf
en tu instancia de Cloud Shell si usasbash
. Es posible que tengas que modificar las instrucciones para otros shells.mkdir -p ~/bin
gcloud storage cp gs://kf-releases/v2.4.1/kf-linux ~/bin/kf
chmod a+x ~/bin/kf
echo "export PATH=$HOME/bin:$PATH" >> ~/.bashrc
source ~/.bashrc
Windows
Esta acción descarga
kf
al directorio actual. Agrégalo a la ruta si deseas llamar desde cualquier otro lugar que no sea el directorio actual.gcloud storage cp gs://kf-releases/v2.4.1/kf-windows.exe kf.exe
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.4.1 Server version: v1.20.6-gke.1000 kf["app.kubernetes.io/version"]: v2.4.1 ...
- La versión de la CLI se muestra en
Verifica que Kf se haya actualizado correctamente
Si instalas el operador Kf por primera vez, confirma que el operador esté instalado:
kubectl get deployment -n appdevexperience appdevexperience-operator
Si no ves el operador como se muestra en el siguiente resultado de ejemplo, revisa los pasos de Instala el operador Kf por primera vez.
NAME READY UP-TO-DATE AVAILABLE AGE appdevexperience-operator 1/1 1 1 1h
Ejecuta
doctor
para asegurarte de que la versión recién instalada esté en buen estado:kf doctor --retries=20
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.Si realizaste personalizaciones en
config-defaults
oconfig-secrets
, verifica que se hayan transferido: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
Si los pasos de verificación se aprueban, tu clúster se actualizó correctamente. Si tienes algún problema, revisa la página de asistencia para obtener asesoramiento.