Este procedimiento abarca la actualización de la versión 1.12.x de Apigee Hybrid a la versión 1.13.1 de Apigee Hybrid.
Cambios de Apigee Hybrid v1.12
Ten en cuenta los siguientes cambios:
-
apigee-operator
en el espacio de nombres de Apigee: A partir de la versión 1.13,apigee-operator
se ejecuta en el mismo espacio de nombres de Kubernetes que los otros componentes de Apigee Hybrid,apigee
de forma predeterminada. Puedes proporcionar cualquier nombre para el espacio de nombres. En versiones anteriores,apigee-operator
era necesario ejecutarlo en su propio espacio de nombres,apigee-system
. - Anthos (en Bare Metal o VMware) ahora es Google Distributed Cloud (para equipos físicos o VMware): Para obtener más información, consulta las descripciones generales de los productos para Google Distributed Cloud para equipos físicos y Google Distributed Cloud para VMware.
Requisitos previos
Antes de actualizar a la versión Hybrid 1.13, asegúrate de que la instalación cumpla con los siguientes requisitos:
- Si tu instalación híbrida ejecuta una versión anterior a la v1.12, debes actualizar a la versión 1.12 antes de actualizar a la versión 1.13. Consulta cómo actualizar Apigee híbrido a la versión 1.12.
- Versión de Helm v3.14.2+.
kubectl
: Una versión compatible dekubectl
adecuada para la versión de tu plataforma de Kubernetes. Consulta Plataformas y versiones compatibles:kubectl
.- cert-manager: Una versión compatible de cert-manager. Consulta Plataformas y versiones compatibles: cert-manager. Si es necesario, actualizarás cert-manager en la sección Prepárate para actualizar a la versión 1.13 que aparece a continuación.
Descripción general de la actualización a la versión 1.13.1
Los procedimientos para actualizar Apigee Hybrid se organizan en las siguientes secciones:
Prepárate para actualizar a la versión 1.13
Haz una copia de seguridad de tu instalación híbrida
- En estas instrucciones, se usa la variable de entorno APIGEE_HELM_CHARTS_HOME para el directorio en tu sistema de archivos en el que instalaste los charts de Helm. Si es necesario, cambia el directorio a este directorio y define la variable con el siguiente comando:
Linux
export APIGEE_HELM_CHARTS_HOME=$PWD
echo $APIGEE_HELM_CHARTS_HOME
macOS
export APIGEE_HELM_CHARTS_HOME=$PWD
echo $APIGEE_HELM_CHARTS_HOME
Windows
set APIGEE_HELM_CHARTS_HOME=%CD%
echo %APIGEE_HELM_CHARTS_HOME%
- Realiza una copia de seguridad de tu directorio
$APIGEE_HELM_CHARTS_HOME/
versión 1.12. Puedes usar cualquier proceso de copia de seguridad. Por ejemplo, puedes crear un archivotar
de todo tu directorio con lo siguiente:tar -czvf $APIGEE_HELM_CHARTS_HOME/../apigee-helm-charts-v1.12-backup.tar.gz $APIGEE_HELM_CHARTS_HOME
- Realiza una copia de seguridad de tu base de datos de Cassandra según las instrucciones que se indican en Copia de seguridad y recuperación de Cassandra.
- Si usas archivos de certificado de servicio (
.json
) en tus anulaciones para autenticar cuentas de servicio, asegúrate de que tus archivos de certificado de cuenta de servicio residan en el directorio del chart de Helm correcto. Los charts de Helm no pueden leer archivos fuera de cada directorio del chart.Este paso no es necesario si usas Secrets de Kubernetes o Workload Identity para autenticar cuentas de servicio.
En la siguiente tabla, se muestra el destino de cada archivo de cuenta de servicio, según el tipo de instalación:
Producción
Cuenta de servicio Nombre de archivo predeterminado Directorio de charts de Helm apigee-cassandra
PROJECT_ID-apigee-cassandra.json
$APIGEE_HELM_CHARTS_HOME/apigee-datastore/
apigee-logger
PROJECT_ID-apigee-logger.json
$APIGEE_HELM_CHARTS_HOME/apigee-telemetry/
apigee-mart
PROJECT_ID-apigee-mart.json
$APIGEE_HELM_CHARTS_HOME/apigee-org/
apigee-metrics
PROJECT_ID-apigee-metrics.json
$APIGEE_HELM_CHARTS_HOME/apigee-telemetry/
apigee-runtime
PROJECT_ID-apigee-runtime.json
$APIGEE_HELM_CHARTS_HOME/apigee-env
apigee-synchronizer
PROJECT_ID-apigee-synchronizer.json
$APIGEE_HELM_CHARTS_HOME/apigee-env/
apigee-udca
PROJECT_ID-apigee-udca.json
$APIGEE_HELM_CHARTS_HOME/apigee-org/
apigee-watcher
PROJECT_ID-apigee-watcher.json
$APIGEE_HELM_CHARTS_HOME/apigee-org/
No producción
Haz una copia del archivo de la cuenta de servicio
apigee-non-prod
en cada uno de los siguientes directorios:Cuenta de servicio Nombre de archivo predeterminado Directorios de charts de Helm apigee-non-prod
PROJECT_ID-apigee-non-prod.json
$APIGEE_HELM_CHARTS_HOME/apigee-datastore/
$APIGEE_HELM_CHARTS_HOME/apigee-telemetry/
$APIGEE_HELM_CHARTS_HOME/apigee-org/
$APIGEE_HELM_CHARTS_HOME/apigee-env/
-
Asegúrate de que el certificado TLS y los archivos de claves (
.crt
,.key
o.pem
) residan en el directorio$APIGEE_HELM_CHARTS_HOME/apigee-virtualhost/
.
Actualiza tu versión de Kubernetes
Verifica tu versión de la plataforma de Kubernetes y, si es necesario, actualiza tu plataforma de Kubernetes a una versión compatible con Hybrid 1.12 y Hybrid 1.13. Si necesitas ayuda, sigue la documentación de la plataforma.
Instala el entorno de ejecución de Hybrid 1.13.1
Prepárate para la actualización de los charts de Helm
- Extrae los charts de Helm para Apigee.
Los gráficos de Apigee Hybrid se alojan en Google Artifact Registry:
oci://us-docker.pkg.dev/apigee-release/apigee-hybrid-helm-charts
Con el comando
pull
, copia todos los gráficos de Helm de Apigee Hybrid en tu almacenamiento local con el siguiente comando:export CHART_REPO=oci://us-docker.pkg.dev/apigee-release/apigee-hybrid-helm-charts
export CHART_VERSION=1.13.1
helm pull $CHART_REPO/apigee-operator --version $CHART_VERSION --untar
helm pull $CHART_REPO/apigee-datastore --version $CHART_VERSION --untar
helm pull $CHART_REPO/apigee-env --version $CHART_VERSION --untar
helm pull $CHART_REPO/apigee-ingress-manager --version $CHART_VERSION --untar
helm pull $CHART_REPO/apigee-org --version $CHART_VERSION --untar
helm pull $CHART_REPO/apigee-redis --version $CHART_VERSION --untar
helm pull $CHART_REPO/apigee-telemetry --version $CHART_VERSION --untar
helm pull $CHART_REPO/apigee-virtualhost --version $CHART_VERSION --untar
- Actualiza cert-manager si es necesario.
Si necesitas actualizar tu versión de cert-manager, instala la versión nueva con el siguiente comando:
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.15.1/cert-manager.yaml
Consulta Plataformas y versiones compatibles: cert-manager para obtener una lista de las versiones compatibles.
- Si tu espacio de nombres de Apigee no es
apigee
, edita el archivoapigee-operator/etc/crds/default/kustomization.yaml
y reemplaza el valornamespace
por tu espacio de nombres de Apigee.apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization namespace: APIGEE_NAMESPACE
Si usas
apigee
como espacio de nombres, no necesitas editar el archivo. - Instala las CRD de Apigee actualizadas:
-
Usa la función de ejecución de prueba
kubectl
mediante la ejecución del siguiente comando:kubectl apply -k apigee-operator/etc/crds/default/ --server-side --force-conflicts --validate=false --dry-run=server
-
Después de validar con el comando de ejecución de prueba, ejecuta el siguiente comando:
kubectl apply -k apigee-operator/etc/crds/default/ \ --server-side \ --force-conflicts \ --validate=false
- Valida la instalación con el comando
kubectl get crds
:kubectl get crds | grep apigee
La respuesta debería ser similar a la siguiente:
apigeedatastores.apigee.cloud.google.com 2024-08-21T14:48:30Z apigeedeployments.apigee.cloud.google.com 2024-08-21T14:48:30Z apigeeenvironments.apigee.cloud.google.com 2024-08-21T14:48:31Z apigeeissues.apigee.cloud.google.com 2024-08-21T14:48:31Z apigeeorganizations.apigee.cloud.google.com 2024-08-21T14:48:32Z apigeeredis.apigee.cloud.google.com 2024-08-21T14:48:33Z apigeerouteconfigs.apigee.cloud.google.com 2024-08-21T14:48:33Z apigeeroutes.apigee.cloud.google.com 2024-08-21T14:48:33Z apigeetelemetries.apigee.cloud.google.com 2024-08-21T14:48:34Z cassandradatareplications.apigee.cloud.google.com 2024-08-21T14:48:35Z
-
-
Migra
apigee-operator
del espacio de nombresapigee-system
a APIGEE_NAMESPACE.- Anota el
clusterIssuer
con el espacio de nombres nuevokubectl annotate --overwrite clusterIssuer apigee-ca-issuer meta.helm.sh/release-namespace='APIGEE_NAMESPACE'
- Si cambias el nombre de la versión de
apigee-operator
, anotaclusterIssuer
con el nombre de la versión nuevo.kubectl annotate --overwrite clusterIssuer apigee-ca-issuer meta.helm.sh/release-name='APIGEE_OPERATOR_RELEASE_NAME'
- Anota el
- Actualiza las réplicas de la implementación existente del operador de Apigee en el espacio de nombres
apigee-system
a 0 (cero) para evitar que los dos controladores se concilien.kubectl scale deployment apigee-controller-manager -n apigee-system --replicas=0
- Actualiza las réplicas de la implementación existente del operador de Apigee en el espacio de nombres
apigee-system
a 0 (cero) para evitar que los dos controladores se concilien.kubectl delete mutatingwebhookconfiguration apigee-mutating-webhook-configuration
kubectl delete validatingwebhookconfiguration apigee-validating-webhook-configuration
-
Verifica las etiquetas en los nodos del clúster. De forma predeterminada, Apigee programa los Pods de datos en los nodos con la etiqueta
cloud.google.com/gke-nodepool=apigee-data
y los Pods del entorno de ejecución se programan en nodos con la etiquetacloud.google.com/gke-nodepool=apigee-runtime
. Puedes personalizar las etiquetas de tu grupo de nodos en el archivooverrides.yaml
.Para obtener más información, consulta Configura grupos de nodos dedicados.
Instala los gráficos de Helm de Apigee Hybrid
- Si no lo hiciste, navega a tu directorio
APIGEE_HELM_CHARTS_HOME
. Ejecuta los siguientes comandos desde ese directorio. - Actualiza el operador o controlador de Apigee:
Prueba de validación:
helm upgrade operator apigee-operator/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE \ --dry-run
Actualiza el chart:
helm upgrade operator apigee-operator/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE
Verifica la instalación del operador de Apigee:
helm ls -n APIGEE_NAMESPACE
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION operator apigee 3 2024-08-21 00:42:44.492009 -0800 PST deployed apigee-operator-1.13.1 1.13.1
Para verificar que esté en funcionamiento, comprueba su disponibilidad:
kubectl -n APIGEE_NAMESPACE get deploy apigee-controller-manager
NAME READY UP-TO-DATE AVAILABLE AGE apigee-controller-manager 1/1 1 1 7d20h
- Actualiza el almacén de datos de Apigee:
Ejecución de prueba:
helm upgrade datastore apigee-datastore/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE \ --dry-run=server
Actualiza el chart:
helm upgrade datastore apigee-datastore/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE
Para verificar que
apigeedatastore
esté en funcionamiento, comprueba su estado:kubectl -n APIGEE_NAMESPACE get apigeedatastore default
NAME STATE AGE default running 2d
- Actualiza la telemetría de Apigee:
Ejecución de prueba:
helm upgrade telemetry apigee-telemetry/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE \ --dry-run
Actualiza el chart:
helm upgrade telemetry apigee-telemetry/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE
Para verificar que esté en funcionamiento, comprueba su estado:
kubectl -n APIGEE_NAMESPACE get apigeetelemetry apigee-telemetry
NAME STATE AGE apigee-telemetry running 2d
- Actualiza Apigee Redis:
Ejecución de prueba:
helm upgrade redis apigee-redis/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE \ --dry-run
Actualiza el chart:
helm upgrade redis apigee-redis/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE
Para verificar que esté en funcionamiento, comprueba su estado:
kubectl -n APIGEE_NAMESPACE get apigeeredis default
NAME STATE AGE default running 2d
- Actualiza el administrador de entrada de Apigee:
Ejecución de prueba:
helm upgrade ingress-manager apigee-ingress-manager/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE \ --dry-run
Actualiza el chart:
helm upgrade ingress-manager apigee-ingress-manager/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE
Para verificar que esté en funcionamiento, comprueba su disponibilidad:
kubectl -n APIGEE_NAMESPACE get deployment apigee-ingressgateway-manager
NAME READY UP-TO-DATE AVAILABLE AGE apigee-ingressgateway-manager 2/2 2 2 2d
- Actualiza la organización de Apigee:
Ejecución de prueba:
helm upgrade ORG_NAME apigee-org/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE \ --dry-run
Actualiza el chart:
helm upgrade ORG_NAME apigee-org/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE
Para verificar que esté en funcionamiento, comprueba el estado de la organización correspondiente:
kubectl -n APIGEE_NAMESPACE get apigeeorg
NAME STATE AGE apigee-org1-xxxxx running 2d
- Actualiza el entorno.
Debes instalar un entorno a la vez. Especifica el entorno con
--set env=
ENV_NAME.Prueba de validación:
helm upgrade ENV_RELEASE_NAME apigee-env/ \ --install \ --namespace APIGEE_NAMESPACE \ --set env=ENV_NAME \ -f OVERRIDES_FILE \ --dry-run
- ENV_RELEASE_NAME es el nombre con el que se instaló el chart
apigee-env
. En la versión híbrida 1.10, por lo general, esapigee-env-ENV_NAME
. En la versión híbrida 1.11 y posteriores, suele ser ENV_NAME. - ENV_NAME es el nombre del entorno que estás actualizando.
- OVERRIDES_FILE es tu nuevo archivo de anulaciones para v.1.13.1
Actualiza el chart:
helm upgrade ENV_RELEASE_NAME apigee-env/ \ --install \ --namespace APIGEE_NAMESPACE \ --set env=ENV_NAME \ -f OVERRIDES_FILE
Para verificar que esté en funcionamiento, comprueba el estado del entorno correspondiente:
kubectl -n APIGEE_NAMESPACE get apigeeenv
NAME STATE AGE GATEWAYTYPE apigee-org1-dev-xxx running 2d
- ENV_RELEASE_NAME es el nombre con el que se instaló el chart
-
Actualiza los grupos de entornos (
virtualhosts
).- Debes actualizar un grupo de entornos (virtualhost) a la vez. Especifica el grupo de
entornos con
--set envgroup=
ENV_GROUP_NAME. Repite los siguientes comandos para cada grupo de entornos mencionado en el archivo overrides.yaml:Prueba de validación:
helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \ --install \ --namespace APIGEE_NAMESPACE \ --set envgroup=ENV_GROUP_NAME \ -f OVERRIDES_FILE \ --dry-run
ENV_GROUP_RELEASE_NAME es el nombre con el que se instaló el chart
apigee-virtualhost
. En la versión híbrida 1.10, por lo general, esapigee-virtualhost-ENV_GROUP_NAME
. En la versión híbrida 1.11 y posteriores, suele ser ENV_GROUP_NAME.Actualiza el chart:
helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \ --install \ --namespace APIGEE_NAMESPACE \ --set envgroup=ENV_GROUP_NAME \ -f OVERRIDES_FILE
- Verifica el estado de ApigeeRouter (AR).
La instalación de
virtualhosts
crea ApigeeRouteConfig (ARC), que crea de forma interna ApigeeRoute (AR) una vez que Apigee Watcher extrae detalles relacionados del grupo de entornos desde el plano de control. Por lo tanto, verifica que el estado de AR correspondiente esté en ejecución:kubectl -n APIGEE_NAMESPACE get arc
NAME STATE AGE apigee-org1-dev-egroup 2d
kubectl -n APIGEE_NAMESPACE get ar
NAME STATE AGE apigee-org1-dev-egroup-xxxxxx running 2d
- Debes actualizar un grupo de entornos (virtualhost) a la vez. Especifica el grupo de
entornos con
- Después de verificar que todas las instalaciones se actualizaron correctamente, borra la versión anterior de
apigee-operator
del espacio de nombresapigee-system
.- Desinstala la versión anterior de
operator
:helm delete operator -n apigee-system
- Borra el espacio de nombres
apigee-system
:kubectl delete namespace apigee-system
- Desinstala la versión anterior de
- Vuelve a actualizar
operator
en el espacio de nombres de Apigee para volver a instalar los recursos borrados con permiso de clúster:helm upgrade operator apigee-operator/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
Revierte a una versión anterior
Si deseas revertir a la versión anterior, usa la versión del gráfico anterior para revertir el proceso de actualización en el orden inverso. Comienza con apigee-virtualhost
y regresa a apigee-operator
y, luego, revierte las CRD.
Debido al cambio en el espacio de nombres de apigee-operator
, debes realizar pasos adicionales para borrar los hooks de admisión de validación y mutación. De esa manera, cuando instales los apigee-operator
en el espacio de nombres apigee-system
, se volverán a crear para que apunten al extremo correcto del operador de Apigee.
- Actualiza las réplicas de la implementación existente del operador de Apigee en Apigee a 0 (cero) para evitar que los dos controladores concilien los recursos personalizados para evitar conflictos cuando se revierte en el espacio de nombres
apigee-system
.kubectl scale deployment apigee-controller-manager -n APIGEE_NAMESPACE --replicas=0
kubectl delete mutatingwebhookconfiguration \ apigee-mutating-webhook-configuration-APIGEE_NAMESPACE
kubectl delete validatingwebhookconfiguration \ apigee-validating-webhook-configuration-APIGEE_NAMESPACE
- Revierte todos los gráficos de
apigee-virtualhost
aapigee-datastore
. En los siguientes comandos, se da por sentado que usas los gráficos de la versión anterior (v1.12.x).Ejecuta el siguiente comando para cada grupo de entorno:
helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \ --install \ --namespace apigee \ --atomic \ --set envgroup=ENV_GROUP_NAME \ -f 1.12_OVERRIDES_FILE
Ejecuta el siguiente comando para cada entorno:
helm upgrade ENV_RELEASE_NAME apigee-env/ \ --install \ --namespace apigee \ --atomic \ --set env=ENV_NAME \ -f 1.12_OVERRIDES_FILE
Revierte los gráficos restantes, excepto
apigee-operator
.helm upgrade ORG_NAME apigee-org/ \ --install \ --namespace apigee \ --atomic \ -f 1.12_OVERRIDES_FILE
helm upgrade ingress-manager apigee-ingress-manager/ \ --install \ --namespace apigee \ --atomic \ -f 1.12_OVERRIDES_FILE
helm upgrade redis apigee-redis/ \ --install \ --namespace apigee \ --atomic \ -f 1.12_OVERRIDES_FILE
helm upgrade telemetry apigee-telemetry/ \ --install \ --namespace apigee \ --atomic \ -f 1.12_OVERRIDES_FILE
helm upgrade datastore apigee-datastore/ \ --install \ --namespace apigee \ --atomic \ -f 1.12_OVERRIDES_FILE
- Crea el espacio de nombres
apigee-system
.kubectl create namespace apigee-system
- Vuelve a aplicar la anotación de recursos al espacio de nombres
apigee-system
.kubectl annotate --overwrite clusterIssuer apigee-ca-issuer meta.helm.sh/release-namespace='apigee-system'
- Si también cambiaste el nombre de la versión, actualiza la anotación con el nombre de la versión
operator
.kubectl annotate --overwrite cluseterIssuer apigee-ca-issuer meta.helm.sh/release-name='operator'
- Vuelve a instalar
apigee-operator
en el espacio de nombresapigee-system
.helm upgrade operator apigee-operator/ \ --install \ --namespace apigee-system \ --atomic \ -f 1.12_OVERRIDES_FILE
- Para revertir las CRD, vuelve a instalar las CRD anteriores.
kubectl apply -k apigee-operator/etc/crds/default/ \ --server-side \ --force-conflicts \ --validate=false
- Limpia la versión de
apigee-operator
del espacio de nombres APIGEE_NAMESPACE para completar el proceso de reversión.helm uninstall operator -n APIGEE_NAMESPACE
- Algunos recursos con permisos de clúster, como
clusterIssuer
, se borran cuando se desinstalaoperator
. Vuelve a instalarlos con el siguiente comando:helm upgrade operator apigee-operator/ \ --install \ --namespace apigee-system \ --atomic \ -f 1.12_OVERRIDES_FILE