Como parte del procedimiento de actualización, debes asegurarte de que tu instalación de Kf utilice la versión más reciente del operador de Kf:
- Confirma que tu versión actual de Kf se puede actualizar a Kf 2.4.1.
- Actualiza a Kf v2.4.1.
- Actualiza las dependencias (si es necesario).
Antes de empezar
Necesitarás lo siguiente:
- Un clúster con Kf instalado.
- Acceso a una máquina con
gcloud,kfykubectlinstalados.
Prepararse para la actualización
Conéctate al clúster de destino.
gcloud container clusters get-credentials CLUSTER_NAME \
--zone CLUSTER_ZONE \
--project CLUSTER_PROJECT_IDConfirma que las versiones de la CLI de Kf y del servidor coinciden
Ejecuta kf debug y comprueba que las versiones de la CLI de Kf y del servidor de Kf coincidan.
- La versión de la CLI aparece en
Kf Client. - La versión del servidor Kf se indica 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 los valores del cliente y del servidor de Kf no coinciden, pero la versión del servidor es la 2.3.x, instala la CLI de Kf 2.4.1 antes de continuar.
Si el valor del servidor Kf es anterior a la versión 2.3.x, primero debes actualizarlo de forma incremental a la versión 2.3.x para continuar.
Confirma que Kf está en buen estado antes de actualizar
Ejecuta kf doctor para comprobar el estado de tu clúster. Asegúrate de que todas las pruebas se superen
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 kf doctor o consulta la guía de solución de problemas para resolver el problema y vuelve a intentar ejecutar el comando
hasta que se complete correctamente.
Opcionalmente, haz una copia de seguridad de los configmaps de Kf si has hecho personalizaciones.
Crea una copia de seguridad del configmap
config-defaultsejecutando el siguiente comando:kubectl get configmap config-defaults -o yaml -n kf > config-defaults-backup.yamlCrea una copia de seguridad del configmap
config-secretsejecutando el siguiente comando:kubectl get configmap config-secrets -o yaml -n kf > config-secrets-backup.yaml
Actualizar el operador de Kf
El operador Kf se lanzó por primera vez como parte de las versiones 2.4.0:
Si ya has instalado el operador Kf como parte de la instalación de la versión 2.4.0, solo tienes que actualizarlo como parte de la actualización a la versión 2.4.1.
Consulta Actualizar el operador Kf.
Si vas a actualizar desde la versión 2.3.2, debes instalar la versión 2.4.1 del operador de Kf para actualizar a Kf gestionado por el operador.
Consulta Instalar el operador de Kf.
Actualizar el operador de Kf actual
El operador de Kf realiza las actualizaciones por ti.
Aplica el archivo yaml del operador:
kubectl apply -f "https://storage.googleapis.com/kf-releases/v2.4.1/operator.yaml"
Instalar el operador de Kf por primera vez
Sigue estos pasos para actualizar a Kf gestionado por el operador.
Aplica el archivo yaml del operador:
kubectl apply -f "https://storage.googleapis.com/kf-releases/v2.4.1/operator.yaml"
Elige entre usar los valores predeterminados o conservar las personalizaciones:
Prepara
kfsystem.yamlpara la actualización con los valores predeterminados:Descarga el archivo
kfsystem.yaml, rellena las variables que aparecen a continuación y, a continuación, ejecuta los comandos en el mismo directorio que el archivo para preparar automáticamentekfsystem.yamlpara la actualización.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.yamlla actualización sin perder las personalizaciones:Descarga el archivo
kfsystem.yaml.Crea una copia de seguridad del configmap
config-defaultsejecutando el siguiente comando:kubectl get configmap config-defaults -o yaml -n kf > config-defaults-backup.yamlCrea una copia de seguridad del configmap
config-secretsejecutando el siguiente comando:kubectl get configmap config-secrets -o yaml -n kf > config-secrets-backup.yamlInspecciona los configmaps config-defaults y config-secrets actuales, y busca los ajustes correspondientes en
kfsystem.yaml.Copia los ajustes de
config-secretsyconfig-defaults. Todos los ajustes deconfig-secretsyconfig-defaultsse pueden encontrar enkfsystem.yaml. El campogoogleProjectIdahora es obligatorio.El campo
wi.googleServiceAccountes la cuenta de servicio completa enconfig-secrets, pero enkfsystemse debe quitar el sufijo. Por ejemplo,${CLUSTER_NAME}-sa@${CLUSTER_PROJECT_ID}.iam.gserviceaccount.comse convertiría en${CLUSTER_NAME}-saenkfsystem.yaml.Una vez que se hayan copiado los ajustes, cambia el campo
enableddekfsystematrue.Guarda los cambios en
kfsystem.yaml.Configura el operador de Kf:
kubectl apply -f kfsystem.yaml
Actualizar las dependencias de Kf
Actualizar Tekton:
kubectl apply -f "https://storage.googleapis.com/tekton-releases/pipeline/previous/v0.23.0/release.yaml"
Actualiza Cloud Service Mesh:
- Sigue los pasos que se indican en la guía de actualización de Cloud Service Mesh 1.9.
Actualiza Config Connector.
Descarga el archivo tar del operador de Config Connector necesario.
Extrae el archivo tar.
tar zxvf release-bundle.tar.gzInstala el operador de Config Connector en tu clúster.
kubectl apply -f operator-system/configconnector-operator.yamlConfigura el operador de Config Connector si es la primera vez que instalas Config Connector.
Copia el siguiente código 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 a tu 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. Para comprobar que los pods estén listos, ejecuta el siguiente comando:kubectl wait -n cnrm-system --for=condition=Ready pod --all
Si Config Connector se ha instalado correctamente, el resultado será similar al siguiente:
pod/cnrm-controller-manager-0 condition met
Configura Workload Identity si vas a instalar 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
Actualizar a la CLI de Kf 2.4.1
Instala la CLI:
Linux
Este comando instala la CLI de Kf para todos los usuarios del sistema. Sigue las instrucciones de la pestaña Cloud Shell para instalarlo solo para ti.
gcloud storage cp gs://kf-releases/v2.4.1/kf-linux /tmp/kfchmod a+x /tmp/kfsudo mv /tmp/kf /usr/local/bin/kfMac
Este comando instala
kfpara todos los usuarios del sistema.gcloud storage cp gs://kf-releases/v2.4.1/kf-darwin /tmp/kfchmod a+x /tmp/kfsudo mv /tmp/kf /usr/local/bin/kfCloud Shell
Este comando instala
kfen tu instancia de Cloud Shell si usasbash. Si usas otro shell, es posible que tengas que modificar las instrucciones.mkdir -p ~/bingcloud storage cp gs://kf-releases/v2.4.1/kf-linux ~/bin/kfchmod a+x ~/bin/kfecho "export PATH=$HOME/bin:$PATH" >> ~/.bashrcsource ~/.bashrcWindows
De esta forma, se descarga
kfen el directorio actual. Añádela a la ruta si quieres llamarla desde cualquier otro directorio que no sea el actual.gcloud storage cp gs://kf-releases/v2.4.1/kf-windows.exe kf.exeValida que las versiones de la CLI de Kf y del servidor de Kf coincidan:
- La versión de la CLI aparece en
Kf Client. - La versión del servidor Kf se indica 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 aparece en
Verificar que Kf se ha actualizado correctamente
Si es la primera vez que instalas el operador Kf, confirma que se ha instalado:
kubectl get deployment -n appdevexperience appdevexperience-operatorSi no ves el operador como en el ejemplo de salida que se muestra a continuación, consulta los pasos para instalar el operador Kf por primera vez.
NAME READY UP-TO-DATE AVAILABLE AGE appdevexperience-operator 1/1 1 1 1hEjecuta
doctorpara asegurarte de que la versión recién instalada funciona correctamente:kf doctor --retries=20El comando ejecutará comprobaciones del clúster varias veces. Es normal que algunos intentos fallen mientras se inician los nuevos controladores.
Si el comando falla y aparece el mensaje
Error: environment failed checks, sigue las instrucciones del resultadodoctorpara solucionar el problema y vuelve a ejecutar el comando hasta que se complete correctamente.Si ha personalizado
config-defaultsoconfig-secrets, compruebe que se han aplicado:Compara el archivo
config-defaults-backup.yamlconkubectl diff -f config-defaults-backup.yamlpara asegurarte de que el clúster sigue configurado correctamente.Por ejemplo, si conservas todos los cambios de tu versión antigua de Kf y apruebas el uso de un nuevo paquete de compilación incluido en 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 se superan los pasos de verificación, significa que el clúster se ha actualizado correctamente. Si tienes algún problema, consulta la página de asistencia para obtener ayuda.