Descripción general de la actualización a la versión 1.7.6.
Los procedimientos para actualizar Apigee Hybrid se organizan en las siguientes secciones:
- Prepárate para actualizar a la versión 1.7.
- Instala la versión 1.7.6 del entorno de ejecución híbrido.
- Actualiza cert-manager.
- Actualiza ASM.
Requisitos
En estas instrucciones de actualización, se supone que tienes instalada la versión 1.7.x de Apigee o una versión de parche anterior de la versión 1.7.x y deseas actualizarla a la versión 1.7.6. Si estás actualizando desde una versión anterior, consulta las instrucciones para actualizar Apigee Hybrid 1.6.
Prepárate para actualizar a la versión 1.7
Haz una copia de seguridad de tu instalación híbrida
- En estas instrucciones, se usa la variable de entorno
$APIGEECTL_HOME
para el directorio en tu sistema de archivos en el que está instalada la utilidadapigeectl
. Si es necesario,cd
en tu directorioapigeectl
y define la variable con el siguiente comando:export APIGEECTL_HOME=$PWD
echo $APIGEECTL_HOME
export APIGEECTL_HOME=$PWD
echo $APIGEECTL_HOME
set APIGEECTL_HOME=%CD%
echo %APIGEECTL_HOME%
- (Recomendado) Realiza una copia de seguridad de tu directorio
$APIGEECTL_HOME/
versión 1.6. Por ejemplo:tar -czvf $APIGEECTL_HOME/../apigeectl-v1.6-backup.tar.gz $APIGEECTL_HOME
- (Recomendado) 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.
Actualiza tu versión de Kubernetes
Actualiza tu plataforma de Kubernetes a las versiones compatibles con la versión híbrida 1.7. Si necesitas ayuda, sigue la documentación de la plataforma.
Haz clic para expandir una lista de plataformas compatibles.
Versiones de Apigee Hybrid | ||||
---|---|---|---|---|
Plataformas |
1.6(4)
|
1.7 | 1.8 | |
Anthos (Google Cloud - GKE) | 1.19.x 1.20.x 1.21.x |
1.20.x
1.21.x 1.22.x (≥ 1.7.2) 1.23.x (≥ 1.7.2) |
1.21.x (≤ 1.8.3)
1.22.x (≤ 1.8.3) 1.23.x (≤ 1.8.4) 1.24.x (≥ 1.8.4) 1.25.x (≥ 1.8.4) |
|
Anthos (AWS) | 1.7.x 1.8.x 1.9.3+ 1.10.x |
1.9.x
1.10.x 1.12.x (≥ 1.7.2) |
1.10.x
1.11.x 1.12.x 1.13.x 1.14.x |
|
Anthos (Azure) | 1.8.x | 1.9.x
1.10.x 1.12.x (≥ 1.7.2) |
1.10.x
1.11.x 1.12.x 1.13.x 1.14.x |
|
Anthos(1) (on-premises - VMware) | 1.7.x 1.8.x 1.9.3+ 1.10.x |
1.9.x 1.10.x 1.11.x 1.12.x |
1.10.x 1.11.x 1.12.x 1.13.x (5) 1.14.x (5) 1.15.x |
|
Anthos(1) (Bare Metal) | 1.7.x 1.8.2+ 1.9.3+ 1.10.x |
1.9.x 1.10.x 1.11.x 1.12.x |
1.10.x 1.11.x 1.12.x 1.13.x (5) 1.14.x (5) 1.15.x | |
Anthos (contexto de múltiples nubes en EKS con clústeres conectados de Anthos) | 1.19.x 1.20.x 1.21.x |
1.21.x
1.22.x (≥ 1.7.2) 1.23.x (≥ 1.7.2) |
1.22.x (≤ 1.8.3)
1.23.x (≤ 1.8.4) 1.24.x (≥ 1.8.4) 1.25.x (≥ 1.8.4) |
|
Anthos (contexto de múltiples nubes en AKS con clústeres conectados de Anthos) | 1.19.x 1.20.x 1.21.x |
1.21.x
1.22.x (≥ 1.7.2) 1.23.x (≥ 1.7.2) |
1.22.x (≤ 1.8.3)
1.23.x (≤ 1.8.4) 1.24.x (≥ 1.8.4) 1.25.x (≥ 1.8.4) |
|
Anthos (contexto de múltiples nubes en OpenShift con clústeres conectados de Anthos) | 4.6 4.7 4.8 |
4.7
4.8 |
4.8
4.9 4.10 |
|
Anthos (contexto de múltiples nubes en Konvoy con clústeres conectados de Anthos) | 1.7.x | N/A | N/A | |
Componentes |
1.6 | 1.7 | 1.8 | |
Anthos Service Mesh (ASM) | 1.9.x 1.10.x 1.12.x |
1.10.x 1.11.x 1.12.x 1.13.x(3) |
1.11.x 1.12.x 1.13.x 1.14.x 1.15.x |
|
JDK | JDK 11 | JDK 11 | JDK 11 | |
cert-manager | 1.5.4 | 1.7.x | 1.7.x | |
Cassandra | 3.11.10 | 3.11.10 | 3.11.10 | |
(1) En las versiones de Anthos 1.8.2 y posteriores, sigue las instrucciones de estos documentos para evitar conflictos con
(2) Compatibilidad disponible con la versión 1.6.6 de Apigee Hybrid y posteriores.. (3) Compatibilidad disponible con la versión 1.7.2 de Apigee Hybrid y posteriores.. (4) Se alcanzaron las fechas oficiales de EOL para las versiones 1.6, 1.7 y 1.8 de Apigee Hybrid. Los parches mensuales regulares ya no están disponibles. Estas versiones ya no son oficialmente compatibles, excepto para los clientes con excepciones explícitas y oficiales para la asistencia continua. Otros clientes deben actualizar. (5)Anthos en Bare Metal y VMWare requiere ASM 1.14 o posterior. Te recomendamos que actualices a la versión híbrida 1.8 y cambies a la puerta de enlace de entrada de Apigee, que ya no requiere que instales ASM en tu clúster híbrido. (6) Compatibilidad disponible con la versión 1.8.4 de Apigee Hybrid y posteriores.. (7) Las versiones 1.12 y anteriores de Anthos en Bare Metal y VMWare no son compatibles. Consulta la política de asistencia de la versión de Anthos en equipos físicos y las versiones de clústeres de Anthos alojados en VMware. (8) No es compatible con la versión 1.8.4 de Apigee Hybrid de Apigee y las versiones posteriores. (9) Compatibilidad disponible con la versión 1.7.6 de Apigee Hybrid y versiones posteriores.. (10) No es compatible con la versión híbrida 1.8.5 de Apigee y las versiones posteriores. |
Acerca de los clústeres adjuntos
Para las versiones de Apigee Hybrid 1.7.x y anteriores, debes usar clústeres adjuntos de Anthos si deseas ejecutar Apigee Hybrid en un contexto de múltiples nubes en Elastic Kubernetes Service (EKS, Azure Kubernetes Service (AKS) o algún otro proveedor de servicios de Kubernetes compatible de terceros. El adjunto de clúster permite que Google mida el uso de Anthos Service Mesh (ASM). Registrar el clúster de terceros es opcional. Regístrate solo si deseas ver el clúster adjunto en la consola de Google Cloud. Para obtener más información, consulta Conecta clústeres de Kubernetes de terceros a Google Cloud.
En la versión 1.8.x de Apigee Hybrid, se requieren clústeres adjuntos de Anthos si usas Anthos Service Mesh para la puerta de enlace de entrada. Si usas la puerta de enlace de entrada de Apigee, los clústeres adjuntos de Anthos son opcionales.
Agrega el rol agente de Cloud Trace a la cuenta de servicio apigee-runtime
Opcional: Si planeas usar Cloud Trace, asegúrate de que tu cuenta de servicio apigee-runtime
tenga el rol agente de Cloud Trace (roles/cloudtrace.agent
) de Google. Puedes hacerlo en la IU de la consola de Cloud > IAM y administración > Cuentas de servicio o con los siguientes comandos:
- Obtén la dirección de correo electrónico de tu cuenta de servicio de
apigee-runtime
con el siguiente comando:gcloud iam service-accounts list --filter "apigee-runtime"
Si coincide con el patrón
apigee-runtime@$ORG_NAME.iam.gserviceaccount.com
, puedes usarlo en el paso siguiente - Asigna la función Agente de Cloud Trace a la cuenta de servicio:
gcloud projects add-iam-policy-binding
$PROJECT_ID \ --member="serviceAccount:apigee-runtime@$PROJECT_ID .iam.gserviceaccount.com" \ --role="roles/cloudtrace.agent"En el ejemplo anterior, $PROJECT_ID es el nombre del proyecto de Google Cloud en el que se instala Apigee Hybrid.
Reemplaza las propiedades metrics:stackdriverExporter
en tus anulaciones.
A partir de la versión híbrida 1.7, metrics:stackdriverExporter
se reemplazó por metrics:appStackdriverExporter
y metrics:proxyStackdriverExporter
.
Reemplaza esas propiedades por propiedades equivalentes. Por ejemplo, reemplaza:
metrics: ... ... stackdriverExporter: resources: limits: cpu: 500m memory: 1Gi requests: cpu: 128m memory: 512Mi
con:
metrics: ... ... appStackdriverExporter: resources: limits: cpu: 500m memory: 1Gi requests: cpu: 128m memory: 512Mi proxyStackdriverExporter: resources: limits: cpu: 500m memory: 1Gi requests: cpu: 128m memory: 512Mi
Consulta la propiedad de configuración reference: metrics
Instala el entorno de ejecución híbrido 1.7.6
- Almacena el número de la versión más reciente en una variable con el siguiente comando:
export VERSION=$(curl -s \ https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/current-version.txt?ignoreCache=1)
export VERSION=$(curl -s \ https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/current-version.txt)
for /f "tokens=*" %a in ('curl -s ^ https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/current-version.txt') ^ do set VERSION=%a
-
Verifica que la variable se haya propagado con un número de versión mediante el siguiente comando. Si quieres usar una versión diferente, puedes guardarla en una variable de entorno.
echo $VERSION
1.7.6
- Asegúrate de estar en el directorio base híbrido (el superior del directorio en el que se encuentra el archivo ejecutable
apigeectl
):cd $APIGEECTL_HOME/..
-
Descarga el paquete de lanzamientos para tu sistema operativo con el siguiente comando. Asegúrate de seleccionar tu plataforma en la siguiente tabla:
Linux de 64 bits
curl -LO \ https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/$VERSION/apigeectl_linux_64.tar.gz
Mac (64 bits)
curl -LO \ https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/$VERSION/apigeectl_mac_64.tar.gz
Windows de 64 bits
curl -LO ^ https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/%VERSION%/apigeectl_windows_64.zip
- Cambia el nombre de tu directorio
apigeectl/
actual por un nombre de directorio de copia de seguridad. Por ejemplo:mv $APIGEECTL_HOME/ $APIGEECTL_HOME-v1.6/
mv $APIGEECTL_HOME/ $APIGEECTL_HOME-v1.6/
rename %APIGEECTL_HOME% %APIGEECTL_HOME%-v1.6
-
Extrae el contenido del archivo gzip descargado en tu directorio base híbrido. El directorio base híbrido es el directorio donde se encuentra el directorio
apigeectl-v1.6
al que se le cambió el nombre:tar xvzf
filename .tar.gz -C ./tar xvzf
filename .tar.gz -C ./tar xvzf
filename .zip -C ./ -
De forma predeterminada, el contenido del archivo tar se expande a un directorio con la versión y la plataforma en su nombre. Por ejemplo:
./apigeectl_1.7.6-d591b23_linux_64
. Cambia el nombre de ese directorio aapigeectl
con el siguiente comando:mv
directory-name-linux apigeectlmv
directory-name-mac apigeectlrename
directory-name-windows apigeectl -
Cambia al directorio
apigeectl
:cd ./apigeectl
El ejecutable
apigeectl
se encuentra en este directorio. - En estas instrucciones, se usa la variable de entorno
$APIGEECTL_HOME
para el directorio en tu sistema de archivos en el que está instalada la utilidadapigeectl
. Si es necesario,cd
en tu directorioapigeectl
y define la variable con el siguiente comando:export APIGEECTL_HOME=$PWD
echo $APIGEECTL_HOME
export APIGEECTL_HOME=$PWD
echo $APIGEECTL_HOME
set APIGEECTL_HOME=%CD%
echo %APIGEECTL_HOME%
- Verifica la versión de
apigeectl
con el comandoversion
:./apigeectl version
Version: 1.7.6
- Ve al directorio
hybrid-base-directory/hybrid-files
. El directoriohybrid-files
es donde se encuentran los archivos de configuración, como el archivo de anulación, los certificados y las cuentas de servicio. Por ejemplo:cd $APIGEECTL_HOME/../hybrid-files
- Verifica que
kubectl
esté configurado en el contexto correcto con el siguiente comando. El contexto actual debe configurarse en el clúster en el que actualizas Apigee Hybrid.kubectl config get-contexts | grep \*
- En el directorio
hybrid-files
:-
Actualiza los siguientes vínculos simbólicos a
$APIGEECTL_HOME
. Estos vínculos te permiten ejecutar el comandoapigeectl
recién instalado desde el directoriohybrid-files
:ln -nfs
$APIGEECTL_HOME
/tools toolsln -nfs
$APIGEECTL_HOME
/config configln -nfs
$APIGEECTL_HOME
/templates templatesln -nfs
$APIGEECTL_HOME
/plugins plugins -
Para verificar que los symlinks se hayan creado correctamente, ejecuta este comando y asegúrate de que las rutas de los vínculos apunten a las ubicaciones correctas:
ls -l | grep ^l
- Realiza una inicialización de prueba de validación para verificar si hay errores:
${APIGEECTL_HOME}/apigeectl init -f ./overrides/
OVERRIDES .yaml --dry-run=clientEn el ejemplo anterior, OVERRIDES es el nombre del archivo de anulación.
- Si no hay errores, inicializa la versión híbrida 1.7.6:
${APIGEECTL_HOME}/apigeectl init -f ./overrides/
OVERRIDES .yaml - Comprueba el estado de inicialización:
${APIGEECTL_HOME}/apigeectl check-ready -f ./overrides/
OVERRIDES .yaml - Verifica si hay errores con una prueba de validación del comando
apply
:${APIGEECTL_HOME}/apigeectl apply -f ./overrides/
OVERRIDES .yaml --dry-run=client - Si no hay errores, aplica tus anulaciones. Selecciona y sigue las instrucciones para los entornos de producción o entornos de demostración/experimental, según la instalación.
En los entornos de producción, debes actualizar cada componente Hybrid de forma individual y verificar el estado del componente actualizado antes de continuar con el siguiente.
- Asegúrate de que estés en el directorio
hybrid-files
. - Aplica tus anulaciones para actualizar Cassandra:
${APIGEECTL_HOME}/apigeectl apply -f ./overrides/
OVERRIDES .yaml --datastore - Verifica la finalización:
${APIGEECTL_HOME}/apigeectl check-ready -f ./overrides/
OVERRIDES .yamlContinúa con el siguiente paso solo cuando los Pods estén listos.
- Aplica tus anulaciones para actualizar los componentes de telemetría y verificar la finalización:
${APIGEECTL_HOME}/apigeectl apply -f ./overrides/
OVERRIDES .yaml --telemetry${APIGEECTL_HOME}/apigeectl check-ready -f ./overrides/
OVERRIDES .yaml - Abre los componentes de Redis:
${APIGEECTL_HOME}/apigeectl apply -f ./overrides/
OVERRIDES .yaml --redis - Aplica tus anulaciones para actualizar los componentes a nivel de la organización (MART, Watcher y Apigee Connect) y verifica la finalización:
${APIGEECTL_HOME}/apigeectl apply -f ./overrides/
OVERRIDES .yaml --org${APIGEECTL_HOME}/apigeectl check-ready -f ./overrides/
OVERRIDES .yaml - Aplica tus anulaciones para actualizar tus entornos. Tienes dos opciones:
- Entorno por entorno: Aplica tus anulaciones a un entorno a la vez y verifica la finalización. Repite este paso para cada entorno:
${APIGEECTL_HOME}/apigeectl apply -f ./overrides/
OVERRIDES .yaml --envENV_NAME ${APIGEECTL_HOME}/apigeectl check-ready -f ./overrides/
OVERRIDES .yamlEn el comando anterior, ENV_NAME es el nombre del entorno que estás actualizando.
- Todos los entornos a la vez: Aplica las anulaciones a todos los entornos a la vez y verifica la finalización:
${APIGEECTL_HOME}/apigeectl apply -f ./overrides/
OVERRIDES .yaml --all-envs${APIGEECTL_HOME}/apigeectl check-ready -f ./overrides/
OVERRIDES .yaml
- Entorno por entorno: Aplica tus anulaciones a un entorno a la vez y verifica la finalización. Repite este paso para cada entorno:
En la mayoría de los entornos experimentales o de demostración, puedes aplicar las anulaciones a todos los componentes a la vez. Si tu entorno de demostración/experimental es grande y complejo, o si imita de manera estrecha a un entorno de producción, puedes usar las instrucciones para actualizar los entornos de producción.
- Asegúrate de que estés en el directorio
hybrid-files
. ${APIGEECTL_HOME}/apigeectl apply -f ./overrides/
OVERRIDES .yaml- Verifica el estado:
${APIGEECTL_HOME}/apigeectl check-ready -f ./overrides/
OVERRIDES .yaml
- Asegúrate de que estés en el directorio
-
Actualiza los siguientes vínculos simbólicos a
Actualiza el administrador de certificados a la versión v1.7.2
Si ejecutas una versión de cert-manager
anterior a la versión 1.7.2, debes actualizarla a la versión 1.7.2.
-
Verifica la versión actual de
cert-manager
mediante el siguiente comando:kubectl -n cert-manager get deployment -o yaml | grep 'image:'
Se mostrará un resultado similar al siguiente:
image: quay.io/jetstack/cert-manager-controller:v1.7.2 image: quay.io/jetstack/cert-manager-cainjector:v1.7.2 image: quay.io/jetstack/cert-manager-webhook:v1.7.2
-
Quita las implementaciones con el siguiente comando:
$ kubectl delete -n cert-manager deployment cert-manager cert-manager-cainjector cert-manager-webhook
-
Actualiza
cert-manager
a la versión v1.7.2 con el siguiente comando:$ kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v1.7.2/cert-manager.yaml
Actualiza ASM a la versión 1.12
Realiza la actualización con la documentación de ASM adecuada para tu plataforma:
Las instrucciones para instalar y configurar ASM varían según la plataforma. Las plataformas se dividen en las siguientes categorías:
- GKE: clústeres de Google Kubernetes Engine que se ejecutan en Google Cloud.
- Fuera de Google Cloud: Clústeres de Anthos que se ejecutan en:
- Clústeres de Anthos alojados en VMware (GKE On-Prem)
- Anthos en Bare Metal
- Clústeres de Anthos en AWS
- Amazon EKS
- Otras plataformas de Kubernetes: clústeres que cumplen con las especificaciones que se crean y ejecutan en los siguientes entornos:
- AKS
- EKS
- OpenShift
La secuencia para actualizar a la versión 1.12.9 de ASM para tu instalación híbrida es la siguiente:
- Prepárate para la actualización.
- Instala la versión nueva de ASM.
- Borra las implementaciones, los servicios y los webhooks de la versión de ASM anterior de tu instalación actual.
- Actualiza las puertas de enlace y configura los webhooks nuevos.
Si deseas actualizar a la versión 1.12.9 de ASM para híbridos en GKE, sigue estos pasos:
- Revisa los requisitos de Actualiza Anthos Service Mesh, pero aún no realices la actualización.
- Antes de instalar la versión nueva, determina la revisión actual. Necesitarás esta información para borrar las implementaciones, los servicios y los webhooks de la versión de ASM anterior de tu instalación actual. Usa el siguiente comando para almacenar la revisión actual de istiod en una variable de entorno:
export DELETE_REV=$(kubectl get deploy -n istio-system -l app=istiod -o jsonpath={.items[].metadata.labels.'istio\.io\/rev'}'{"\n"}') echo ${DELETE_REV}
- Crea un archivo
overlay.yaml
nuevo o verifica que tuoverlay.yaml
existente tenga el siguiente contenido:apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: revision: asm-1129-3 components: ingressGateways: - name: istio-ingressgateway enabled: true k8s: nodeSelector: # default node selector, if different or not using node selectors, change accordingly. cloud.google.com/gke-nodepool: apigee-runtime resources: requests: cpu: 1000m service: type: LoadBalancer loadBalancerIP:
STATIC_IP # If you do not have a reserved static IP, leave this out. ports: - name: http-status-port port: 15021 - name: http2 port: 80 targetPort: 8080 - name: https port: 443 targetPort: 8443 meshConfig: accessLogFormat: '{"start_time":"%START_TIME%","remote_address":"%DOWNSTREAM_DIRECT_REMOTE_ADDRESS%","user_agent":"%REQ(USER-AGENT)%","host":"%REQ(:AUTHORITY)%","request":"%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%","request_time":"%DURATION%","status":"%RESPONSE_CODE%","status_details":"%RESPONSE_CODE_DETAILS%","bytes_received":"%BYTES_RECEIVED%","bytes_sent":"%BYTES_SENT%","upstream_address":"%UPSTREAM_HOST%","upstream_response_flags":"%RESPONSE_FLAGS%","upstream_response_time":"%RESPONSE_DURATION%","upstream_service_time":"%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%","upstream_cluster":"%UPSTREAM_CLUSTER%","x_forwarded_for":"%REQ(X-FORWARDED-FOR)%","request_method":"%REQ(:METHOD)%","request_path":"%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%","request_protocol":"%PROTOCOL%","tls_protocol":"%DOWNSTREAM_TLS_VERSION%","request_id":"%REQ(X-REQUEST-ID)%","sni_host":"%REQUESTED_SERVER_NAME%","apigee_dynamic_data":"%DYNAMIC_METADATA(envoy.lua)%"}' - Sigue las instrucciones de las siguientes secciones en la documentación de ASM:
- Descarga asmcli
- Otorga permisos de administrador del clúster
- Valida el proyecto y el clúster.
- Actualiza con funciones opcionales. Detén antes de iniciar la “sección Actualiza las puertas de enlace”
- Borra el webhook de mutación y valida el webhook:
cd
en el directorio en el que instalasteasmcli
.- Almacena la revisión nueva actual en una variable de entorno para usarla en la secuencia de comandos a fin de borrar los webhooks:
UPGRADE_REV="asm-1129-3"
- Crea una secuencia de comandos de shell que contenga los siguientes comandos:
#!/bin/bash set -ex PROJECT_ID="
YOUR_PROJECT_ID " CLUSTER_NAME="YOUR_CLUSTER_NAME " CLUSTER_LOCATION="YOUR_CLUSTER_LOCATION " kubectl label namespace istio-system istio.io/rev=${UPGRADE_REV} istio-injection- --overwrite kubectl rollout restart deployment -n istio-system kubectl apply -n istio-system -fPATH_TO_INGRESSGATEWAY istio-ingressgateway kubectl apply -n istio-system -fPATH_TO_INGRESSGATEWAY /istio-ingressgateway-connectors if [[ "${DELETE_REV}" != "${UPGRADE_REV}" ]]; then kubectl apply -f out/asm/istio/istiod-service.yaml kubectl delete deploy -l app=istio-ingressgateway,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true kubectl delete deploy -l app=istio-ingressgateway-connectors,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true kubectl delete ValidatingWebhookConfiguration -l app=istiod,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true kubectl delete MutatingWebhookConfiguration -l app=sidecar-injector,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true kubectl delete Service,Deployment,HorizontalPodAutoscaler,PodDisruptionBudget istiod-${DELETE_REV} -n istio-system --ignore-not-found=true kubectl delete IstioOperator installed-state-${DELETE_REV} -n istio-system --ignore-not-found=true fi - Ejecuta la secuencia de comandos para borrar los webhooks actuales.
- Sigue los pasos que se indican en Actualiza las puertas de enlace para crear los webhooks nuevos y cambiar el tráfico a las puertas de enlace nuevas.
Estas instrucciones abarcan la actualización de ASM en:
- Clústeres de Anthos alojados en VMware (GKE On-Prem)
- Anthos en Bare Metal
- Clústeres de Anthos en AWS
- Amazon EKS
La secuencia para actualizar a la versión 1.12.9 de ASM para tu instalación híbrida es la siguiente:
- Prepárate para la actualización.
- Instala la versión nueva de ASM.
- Borra las implementaciones, los servicios y los webhooks de la versión de ASM anterior de tu instalación actual.
- Actualiza las puertas de enlace y configura los webhooks nuevos.
- Revisa los requisitos de Actualiza Anthos Service Mesh, pero aún no realices la actualización.
- Antes de instalar la versión nueva, determina la revisión actual. Necesitarás esta información para borrar el webhook de validación y el webhook de mutación de tu instalación actual de ASM. Usa el siguiente comando para almacenar la revisión actual de istiod en una variable de entorno:
export DELETE_REV=$(kubectl get deploy -n istio-system -l app=istiod -o jsonpath={.items[].metadata.labels.'istio\.io\/rev'}'{"\n"}') echo ${DELETE_REV}
- Crea un archivo
overlay.yaml
nuevo o verifica que tuoverlay.yaml
existente tenga el siguiente contenido:apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: revision: asm-1129-3 components: ingressGateways: - name: istio-ingressgateway enabled: true k8s: nodeSelector: # default node selector, if different or not using node selectors, change accordingly. cloud.google.com/gke-nodepool: apigee-runtime resources: requests: cpu: 1000m service: type: LoadBalancer loadBalancerIP:
STATIC_IP # If you do not have a reserved static IP, leave this out. ports: - name: http-status-port port: 15021 - name: http2 port: 80 targetPort: 8080 - name: https port: 443 targetPort: 8443 values: gateways: istio-ingressgateway: runAsRoot: true meshConfig: accessLogFormat: '{"start_time":"%START_TIME%","remote_address":"%DOWNSTREAM_DIRECT_REMOTE_ADDRESS%","user_agent":"%REQ(USER-AGENT)%","host":"%REQ(:AUTHORITY)%","request":"%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%","request_time":"%DURATION%","status":"%RESPONSE_CODE%","status_details":"%RESPONSE_CODE_DETAILS%","bytes_received":"%BYTES_RECEIVED%","bytes_sent":"%BYTES_SENT%","upstream_address":"%UPSTREAM_HOST%","upstream_response_flags":"%RESPONSE_FLAGS%","upstream_response_time":"%RESPONSE_DURATION%","upstream_service_time":"%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%","upstream_cluster":"%UPSTREAM_CLUSTER%","x_forwarded_for":"%REQ(X-FORWARDED-FOR)%","request_method":"%REQ(:METHOD)%","request_path":"%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%","request_protocol":"%PROTOCOL%","tls_protocol":"%DOWNSTREAM_TLS_VERSION%","request_id":"%REQ(X-REQUEST-ID)%","sni_host":"%REQUESTED_SERVER_NAME%","apigee_dynamic_data":"%DYNAMIC_METADATA(envoy.lua)%"}' - Sigue las instrucciones de las siguientes secciones en la documentación de ASM:
- Descarga asmcli
- Otorga permisos de administrador del clúster
- Valida el proyecto y el clúster.
- Actualiza con funciones opcionales. Detén antes de iniciar la “sección Actualiza las puertas de enlace”
- Borra el webhook de mutación y valida el webhook:
cd
en el directorio en el que instalasteasmcli
.- Almacena la revisión nueva actual en una variable de entorno para usarla en la secuencia de comandos a fin de borrar los webhooks:
UPGRADE_REV="asm-1129-3"
- Crea una secuencia de comandos de shell que contenga los siguientes comandos:
#!/bin/bash set -ex PROJECT_ID="
YOUR_PROJECT_ID " CLUSTER_NAME="YOUR_CLUSTER_NAME " CLUSTER_LOCATION="YOUR_CLUSTER_LOCATION " gcloud config configurations activate ${PROJECT_ID} gcloud container clusters get-credentials ${CLUSTER_NAME} --region ${CLUSTER_LOCATION} --project ${PROJECT_ID} kubectl label namespace istio-system istio.io/rev=${UPGRADE_REV} istio-injection- --overwrite kubectl rollout restart deployment -n istio-system kubectl apply -n istio-system -fPATH_TO_INGRESSGATEWAY istio-ingressgateway kubectl apply -n istio-system -fPATH_TO_INGRESSGATEWAY /istio-ingressgateway-connectors if [[ "${DELETE_REV}" != "${UPGRADE_REV}" ]]; then kubectl apply -f out/asm/istio/istiod-service.yaml kubectl delete deploy -l app=istio-ingressgateway,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true kubectl delete deploy -l app=istio-ingressgateway-connectors,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true kubectl delete ValidatingWebhookConfiguration -l app=istiod,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true kubectl delete MutatingWebhookConfiguration -l app=sidecar-injector,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true kubectl delete Service,Deployment,HorizontalPodAutoscaler,PodDisruptionBudget istiod-${DELETE_REV} -n istio-system --ignore-not-found=true kubectl delete IstioOperator installed-state-${DELETE_REV} -n istio-system --ignore-not-found=true fi - Ejecuta la secuencia de comandos para borrar los webhooks actuales.
- Sigue los pasos que se indican en Actualiza las puertas de enlace para crear los webhooks nuevos y cambiar el tráfico a las puertas de enlace nuevas.
En estas instrucciones, el proceso para actualizar la versión istio-1.12.9-asm.3 de Anthos Service Mesh (ASM) en los clústeres adjuntos de Anthos es lo mismo que realizar una instalación nueva.
Prepárate para instalar Anthos Service Mesh
- Borra el webhook de mutación y valida el webhook:
cd
en el directorio en el que instalasteasmcli
.- Almacena la revisión nueva actual en una variable de entorno para usarla en la secuencia de comandos a fin de borrar los webhooks:
UPGRADE_REV="asm-1129-3"
- Crea una secuencia de comandos de shell que contenga los siguientes comandos:
#!/bin/bash set -ex kubectl label namespace istio-system istio.io/rev=${UPGRADE_REV} istio-injection- --overwrite kubectl rollout restart deployment -n istio-system kubectl apply -n istio-system -f
PATH_TO_INGRESSGATEWAY istio-ingressgateway if [[ "${DELETE_REV}" != "${UPGRADE_REV}" ]]; then kubectl apply -f out/asm/istio/istiod-service.yaml kubectl delete deploy -l app=istio-ingressgateway,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true kubectl delete deploy -l app=istio-ingressgateway-connectors,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true kubectl delete ValidatingWebhookConfiguration -l app=istiod,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true kubectl delete MutatingWebhookConfiguration -l app=sidecar-injector,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true kubectl delete Service,Deployment,HorizontalPodAutoscaler,PodDisruptionBudget istiod-${DELETE_REV} -n istio-system --ignore-not-found=true kubectl delete IstioOperator installed-state-${DELETE_REV} -n istio-system --ignore-not-found=true fi - Ejecuta la secuencia de comandos para borrar los webhooks actuales.
- Descarga el archivo de instalación de Anthos Service Mesh en el directorio de trabajo actual:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-linux-amd64.tar.gz
- Descarga el archivo de firma y usa openssl para verificar la firma:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-linux-amd64.tar.gz.1.sig
openssl dgst -verify /dev/stdin -signature istio-1.12.9-asm.3-linux-amd64.tar.gz.1.sig istio-1.12.9-asm.3.tar.gz <<'EOF'
-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - Extrae el contenido del archivo a cualquier ubicación en tu sistema de archivos. Por ejemplo, para extraer el contenido en el directorio de trabajo actual, ingresa este comando:
tar xzf istio-1.12.9-asm.3-linux-amd64.tar.gz
El comando crea un directorio de instalación en tu directorio de trabajo actual llamado
istio-1.12.9-asm.3
que contiene lo siguiente:- Hay aplicaciones de muestra en el directorio
samples
. - La herramienta de línea de comandos de
istioctl
que usas para instalar Anthos Service Mesh se encuentra en el directoriobin
. - Los perfiles de configuración de Anthos Service Mesh se encuentran en el directorio
manifests/profiles
.
- Hay aplicaciones de muestra en el directorio
- Asegúrate de estar en el directorio raíz de la instalación de Anthos Service Mesh.
cd istio-1.12.9-asm.3
- Para mayor comodidad, agregue las herramientas que contiene el directorio /bin a su RUTA DE ACCESO.
export PATH=$PWD/bin:$PATH
- Descarga el archivo de instalación de Anthos Service Mesh en el directorio de trabajo actual:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-osx.tar.gz
- Descarga el archivo de firma y usa openssl para verificar la firma:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-osx.tar.gz.1.sig
openssl dgst -sha256 -verify /dev/stdin -signature istio-1.12.9-asm.3-osx.tar.gz.1.sig istio-1.12.9-asm.3.tar.gz <<'EOF'
-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - Extrae el contenido del archivo a cualquier ubicación en tu sistema de archivos. Por ejemplo, para extraer el contenido en el directorio de trabajo actual, ingresa este comando:
tar xzf istio-1.12.9-asm.3-osx.tar.gz
El comando crea un directorio de instalación en tu directorio de trabajo actual llamado
istio-1.12.9-asm.3
que contiene lo siguiente:- Hay aplicaciones de muestra en el directorio
samples
. - La herramienta de línea de comandos de
istioctl
que usas para instalar Anthos Service Mesh se encuentra en el directoriobin
. - Los perfiles de configuración de Anthos Service Mesh se encuentran en el directorio
manifests/profiles
.
- Hay aplicaciones de muestra en el directorio
- Asegúrate de estar en el directorio raíz de la instalación de Anthos Service Mesh.
cd istio-1.12.9-asm.3
- Para mayor comodidad, agregue las herramientas que contiene el directorio /bin a su RUTA DE ACCESO.
export PATH=$PWD/bin:$PATH
- Descarga el archivo de instalación de Anthos Service Mesh en el directorio de trabajo actual:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-win.zip
- Descarga el archivo de firma y usa openssl para verificar la firma:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-win.zip.1.sig
openssl dgst -verify - -signature istio-1.12.9-asm.3-win.zip.1.sig istio-1.12.9-asm.3.win.zip <<'EOF'
-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - Extrae el contenido del archivo a cualquier ubicación en tu sistema de archivos. Por ejemplo, para extraer el contenido en el directorio de trabajo actual, ingresa este comando:
tar xzf istio-1.12.9-asm.3-win.zip
El comando crea un directorio de instalación en tu directorio de trabajo actual llamado
istio-1.12.9-asm.3
que contiene lo siguiente:- Hay aplicaciones de muestra en el directorio
samples
. - La herramienta de línea de comandos de
istioctl
que usas para instalar Anthos Service Mesh se encuentra en el directoriobin
. - Los perfiles de configuración de Anthos Service Mesh se encuentran en el directorio
manifests\profiles
.
- Hay aplicaciones de muestra en el directorio
- Asegúrate de estar en el directorio raíz de la instalación de Anthos Service Mesh.
cd istio-1.12.9-asm.3
- Para mayor comodidad, agregue las herramientas que contiene el directorio /bin a su RUTA DE ACCESO.
set PATH=%CD%\bin:%PATH%
- Ahora que ASM Istio está instalado, verifica la versión de
istioctl
:istioctl version
- Crea un espacio de nombres llamado istio-system para los componentes del plano de control:
kubectl create namespace istio-system
Instala Anthos Service Mesh
- Edita tu archivo
overlay.yaml
o crea uno nuevo con el siguiente contenido:apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: meshConfig: accessLogFile: /dev/stdout enableTracing: true accessLogFormat: '{"start_time":"%START_TIME%","remote_address":"%DOWNSTREAM_DIRECT_REMOTE_ADDRESS%","user_agent":"%REQ(USER-AGENT)%","host":"%REQ(:AUTHORITY)%","request":"%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%","request_time":"%DURATION%","status":"%RESPONSE_CODE%","status_details":"%RESPONSE_CODE_DETAILS%","bytes_received":"%BYTES_RECEIVED%","bytes_sent":"%BYTES_SENT%","upstream_address":"%UPSTREAM_HOST%","upstream_response_flags":"%RESPONSE_FLAGS%","upstream_response_time":"%RESPONSE_DURATION%","upstream_service_time":"%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%","upstream_cluster":"%UPSTREAM_CLUSTER%","x_forwarded_for":"%REQ(X-FORWARDED-FOR)%","request_method":"%REQ(:METHOD)%","request_path":"%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%","request_protocol":"%PROTOCOL%","tls_protocol":"%DOWNSTREAM_TLS_VERSION%","request_id":"%REQ(X-REQUEST-ID)%","sni_host":"%REQUESTED_SERVER_NAME%","apigee_dynamic_data":"%DYNAMIC_METADATA(envoy.lua)%"}' components: - enabled: true name: istio-ingressgateway k8s: service: type: LoadBalancer ports: - name: status-port port: 15021 targetPort: 15021 - name: http2 port: 80 targetPort: 8080 - name: https port: 443 targetPort: 8443
- Instala Anthos Service Mesh con
istioctl
mediante el perfilasm-multicloud
:istioctl install \ --set profile=asm-multicloud \ --set revision="asm-1129-3" \ --filename overlayfile.yaml
Deberías obtener un resultado similar al siguiente:
kubectl get pods -n istio-system NAME READY STATUS RESTARTS AGE istio-ingressgateway-88b6fd976-flgp2 1/1 Running 0 3m13s istio-ingressgateway-88b6fd976-p5dl9 1/1 Running 0 2m57s istiod-asm-1129-3-798ffb964-2ls88 1/1 Running 0 3m21s istiod-asm-1129-3-798ffb964-fnj8c 1/1 Running 1 3m21s
El argumento
--set revision
agrega una etiqueta de revisión con el formatoistio.io/rev=asm-1129-3
a istiod. El webhook automático de inyector de sidecar usa la etiqueta de revisión para asociar los sidecars insertados con una revisión istiod particular. Para habilitar la inserción automática del sidecar para un espacio de nombres, debes etiquetarlo con una revisión que coincida con la etiqueta en istiod. - Verifica que se haya completado la instalación:
kubectl get svc -n istio-system
Deberías obtener un resultado similar al siguiente:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE istio-ingressgateway LoadBalancer 172.200.48.52 34.74.177.168 15021:30479/TCP,80:30030/TCP,443:32200/TCP,15012:32297/TCP,15443:30244/TCP 3m35s istiod ClusterIP 172.200.18.133 <none> 15010/TCP,15012/TCP,443/TCP,15014/TCP 4m46s istiod-asm-1129-3 ClusterIP 172.200.63.220 <none> 15010/TCP,15012/TCP,443/TCP,15014/TCP 3m43s
En estas instrucciones, el proceso para actualizar la versión istio-1.12.9-asm.3 de Anthos Service Mesh (ASM) en los clústeres adjuntos de Anthos es lo mismo que realizar una instalación nueva.
Prepárate para instalar Anthos Service Mesh
- Borra el webhook de mutación y valida el webhook:
cd
en el directorio en el que instalasteasmcli
.- Almacena la revisión nueva actual en una variable de entorno para usarla en la secuencia de comandos a fin de borrar los webhooks:
UPGRADE_REV="asm-1129-3"
- Crea una secuencia de comandos de shell que contenga los siguientes comandos:
#!/bin/bash set -ex kubectl label namespace istio-system istio.io/rev=${UPGRADE_REV} istio-injection- --overwrite kubectl rollout restart deployment -n istio-system kubectl apply -n istio-system -f
PATH_TO_INGRESSGATEWAY istio-ingressgateway kubectl apply -n istio-system -fPATH_TO_INGRESSGATEWAY /istio-ingressgateway-connectors if [[ "${DELETE_REV}" != "${UPGRADE_REV}" ]]; then kubectl apply -f out/asm/istio/istiod-service.yaml kubectl delete deploy -l app=istio-ingressgateway,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true kubectl delete deploy -l app=istio-ingressgateway-connectors,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true kubectl delete ValidatingWebhookConfiguration -l app=istiod,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true kubectl delete MutatingWebhookConfiguration -l app=sidecar-injector,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true kubectl delete Service,Deployment,HorizontalPodAutoscaler,PodDisruptionBudget istiod-${DELETE_REV} -n istio-system --ignore-not-found=true kubectl delete IstioOperator installed-state-${DELETE_REV} -n istio-system --ignore-not-found=true fi - Ejecuta la secuencia de comandos para borrar los webhooks actuales.
- Otorga la restricción de contexto de seguridad (SCC)
anyuid
al sistema istio con el siguiente comando de la CLI de OpenShift (oc
):oc adm policy add-scc-to-group anyuid system:serviceaccounts:istio-system
- Descarga el archivo de instalación de Anthos Service Mesh en el directorio de trabajo actual:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-linux-amd64.tar.gz
- Descarga el archivo de firma y usa openssl para verificar la firma:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-linux-amd64.tar.gz.1.sig
openssl dgst -verify /dev/stdin -signature istio-1.12.9-asm.3-linux-amd64.tar.gz.1.sig istio-1.12.9-asm.3.tar.gz <<'EOF'
-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - Extrae el contenido del archivo a cualquier ubicación en tu sistema de archivos. Por ejemplo, para extraer el contenido en el directorio de trabajo actual, ingresa este comando:
tar xzf istio-1.12.9-asm.3-linux-amd64.tar.gz
El comando crea un directorio de instalación en tu directorio de trabajo actual llamado
istio-1.12.9-asm.3
que contiene lo siguiente:- Hay aplicaciones de muestra en el directorio
samples
. - La herramienta de línea de comandos de
istioctl
que usas para instalar Anthos Service Mesh se encuentra en el directoriobin
. - Los perfiles de configuración de Anthos Service Mesh se encuentran en el directorio
manifests/profiles
.
- Hay aplicaciones de muestra en el directorio
- Asegúrate de estar en el directorio raíz de la instalación de Anthos Service Mesh.
cd istio-1.12.9-asm.3
- Para mayor comodidad, agregue las herramientas que contiene el directorio /bin a su RUTA DE ACCESO.
export PATH=$PWD/bin:$PATH
- Otorga la restricción de contexto de seguridad (SCC)
anyuid
al sistema istio con el siguiente comando de la CLI de OpenShift (oc
):oc adm policy add-scc-to-group anyuid system:serviceaccounts:istio-system
- Descarga el archivo de instalación de Anthos Service Mesh en el directorio de trabajo actual:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-osx.tar.gz
- Descarga el archivo de firma y usa openssl para verificar la firma:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-osx.tar.gz.1.sig
openssl dgst -sha256 -verify /dev/stdin -signature istio-1.12.9-asm.3-osx.tar.gz.1.sig istio-1.12.9-asm.3.tar.gz <<'EOF'
-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - Extrae el contenido del archivo a cualquier ubicación en tu sistema de archivos. Por ejemplo, para extraer el contenido en el directorio de trabajo actual, ingresa este comando:
tar xzf istio-1.12.9-asm.3-osx.tar.gz
El comando crea un directorio de instalación en tu directorio de trabajo actual llamado
istio-1.12.9-asm.3
que contiene lo siguiente:- Hay aplicaciones de muestra en el directorio
samples
. - La herramienta de línea de comandos de
istioctl
que usas para instalar Anthos Service Mesh se encuentra en el directoriobin
. - Los perfiles de configuración de Anthos Service Mesh se encuentran en el directorio
manifests/profiles
.
- Hay aplicaciones de muestra en el directorio
- Asegúrate de estar en el directorio raíz de la instalación de Anthos Service Mesh.
cd istio-1.12.9-asm.3
- Para mayor comodidad, agregue las herramientas que contiene el directorio /bin a su RUTA DE ACCESO.
export PATH=$PWD/bin:$PATH
- Otorga la restricción de contexto de seguridad (SCC)
anyuid
al sistema istio con el siguiente comando de la CLI de OpenShift (oc
):oc adm policy add-scc-to-group anyuid system:serviceaccounts:istio-system
- Descarga el archivo de instalación de Anthos Service Mesh en el directorio de trabajo actual:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-win.zip
- Descarga el archivo de firma y usa openssl para verificar la firma:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-win.zip.1.sig
openssl dgst -verify - -signature istio-1.12.9-asm.3-win.zip.1.sig istio-1.12.9-asm.3.win.zip <<'EOF'
-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - Extrae el contenido del archivo a cualquier ubicación en tu sistema de archivos. Por ejemplo, para extraer el contenido en el directorio de trabajo actual, ingresa este comando:
tar xzf istio-1.12.9-asm.3-win.zip
El comando crea un directorio de instalación en tu directorio de trabajo actual llamado
istio-1.12.9-asm.3
que contiene lo siguiente:- Hay aplicaciones de muestra en el directorio
samples
. - La herramienta de línea de comandos de
istioctl
que usas para instalar Anthos Service Mesh se encuentra en el directoriobin
. - Los perfiles de configuración de Anthos Service Mesh se encuentran en el directorio
manifests\profiles
.
- Hay aplicaciones de muestra en el directorio
- Asegúrate de estar en el directorio raíz de la instalación de Anthos Service Mesh.
cd istio-1.12.9-asm.3
- Para mayor comodidad, agregue las herramientas que contiene el directorio /bin a su RUTA DE ACCESO.
set PATH=%CD%\bin:%PATH%
- Ahora que ASM Istio está instalado, verifica la versión de
istioctl
:istioctl version
- Crea un espacio de nombres llamado istio-system para los componentes del plano de control:
kubectl create namespace istio-system
Instala Anthos Service Mesh
- Edita tu archivo
overlay.yaml
o crea uno nuevo con el siguiente contenido:apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: meshConfig: accessLogFile: /dev/stdout enableTracing: true accessLogFormat: '{"start_time":"%START_TIME%","remote_address":"%DOWNSTREAM_DIRECT_REMOTE_ADDRESS%","user_agent":"%REQ(USER-AGENT)%","host":"%REQ(:AUTHORITY)%","request":"%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%","request_time":"%DURATION%","status":"%RESPONSE_CODE%","status_details":"%RESPONSE_CODE_DETAILS%","bytes_received":"%BYTES_RECEIVED%","bytes_sent":"%BYTES_SENT%","upstream_address":"%UPSTREAM_HOST%","upstream_response_flags":"%RESPONSE_FLAGS%","upstream_response_time":"%RESPONSE_DURATION%","upstream_service_time":"%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%","upstream_cluster":"%UPSTREAM_CLUSTER%","x_forwarded_for":"%REQ(X-FORWARDED-FOR)%","request_method":"%REQ(:METHOD)%","request_path":"%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%","request_protocol":"%PROTOCOL%","tls_protocol":"%DOWNSTREAM_TLS_VERSION%","request_id":"%REQ(X-REQUEST-ID)%","sni_host":"%REQUESTED_SERVER_NAME%","apigee_dynamic_data":"%DYNAMIC_METADATA(envoy.lua)%"}' components: - enabled: true name: istio-ingressgateway k8s: service: type: LoadBalancer ports: - name: status-port port: 15021 targetPort: 15021 - name: http2 port: 80 targetPort: 8080 - name: https port: 443 targetPort: 8443
- Instala Anthos Service Mesh con
istioctl
mediante el perfilasm-multicloud
:istioctl install \ --set profile=asm-multicloud \ --set revision="asm-1129-3" \ --filename overlayfile.yaml
Deberías obtener un resultado similar al siguiente:
kubectl get pods -n istio-system NAME READY STATUS RESTARTS AGE istio-ingressgateway-88b6fd976-flgp2 1/1 Running 0 3m13s istio-ingressgateway-88b6fd976-p5dl9 1/1 Running 0 2m57s istiod-asm-1129-3-798ffb964-2ls88 1/1 Running 0 3m21s istiod-asm-1129-3-798ffb964-fnj8c 1/1 Running 1 3m21s
El argumento
--set revision
agrega una etiqueta de revisión con el formatoistio.io/rev=1.6.11-asm.1
a istiod. El webhook automático de inyector de sidecar usa la etiqueta de revisión para asociar los sidecars insertados con una revisión istiod particular. Para habilitar la inserción automática del sidecar para un espacio de nombres, debes etiquetarlo con una revisión que coincida con la etiqueta en istiod. - Verifica que se haya completado la instalación:
kubectl get svc -n istio-system
Deberías obtener un resultado similar al siguiente:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE istio-ingressgateway LoadBalancer 172.200.48.52 34.74.177.168 15021:30479/TCP,80:30030/TCP,443:32200/TCP,15012:32297/TCP,15443:30244/TCP 3m35s istiod ClusterIP 172.200.18.133 <none> 15010/TCP,15012/TCP,443/TCP,15014/TCP 4m46s istiod-asm-1129-3 ClusterIP 172.200.63.220 <none> 15010/TCP,15012/TCP,443/TCP,15014/TCP 3m43s
Revierte una actualización
Sigue estos pasos para revertir una actualización anterior:
- Limpia los trabajos completados del espacio de nombres del entorno de ejecución híbrido, en el que NAMESPACE es el espacio de nombres especificado en el archivo de anulaciones, si especificaste un espacio de nombres. De lo contrario, el espacio de nombres predeterminado será
apigee
:kubectl delete job -n
NAMESPACE \ $(kubectl get job -nNAMESPACE \ -o=jsonpath='{.items[?(@.status.succeeded==1)].metadata.name}') - Limpia los trabajos completados del espacio de nombres
apigee-system
:kubectl delete job -n apigee-system \ $(kubectl get job -n apigee-system \ -o=jsonpath='{.items[?(@.status.succeeded==1)].metadata.name}')
- Cambia la variable
APIGEECTL_HOME
para que apunte al directorio que contiene la versión previa deapigeectl
. Por ejemplo:export APIGEECTL_HOME=
PATH_TO_PREVIOUS_APIGEECTL_DIRECTORY - En el directorio raíz de la instalación a la que deseas revertir, ejecuta
${APIGEECTL_HOME}/apigeectl apply
, verifica el estado de los Pods y, luego, ejecuta${APIGEECTL_HOME}/apigeectl init
. Asegúrate de usar el archivo de anulaciones original para la versión a la que deseas revertir:- En el directorio
hybrid-files
, ejecuta${APIGEECTL_HOME}/apigeectl apply
:${APIGEECTL_HOME}/apigeectl apply -f ./overrides/
ORIGINAL_OVERRIDES .yamlEn el que ORIGINAL_OVERRIDES es el archivo de anulaciones para la instalación híbrida de la versión anterior, por ejemplo,
overrides1.6.yaml
. - Verifica el estado de los pods:
kubectl -n
NAMESPACE get podsEn el ejemplo anterior, NAMESPACE es el espacio de nombres híbrido de Apigee.
- Verifica el estado de
apigeeds
:kubectl describe apigeeds -n apigee
Deberías obtener un resultado similar al siguiente:
Status: Cassandra Data Replication: Cassandra Pod Ips: 10.8.2.204 Cassandra Ready Replicas: 1 Components: Cassandra: Last Successfully Released Version: Revision: v1-f8aa9a82b9f69613 Version: v1 Replicas: Available: 1 Ready: 1 Total: 1 Updated: 1 State: running Scaling: In Progress: false Operation: Requested Replicas: 0 State: running
Continúa con el siguiente paso solo cuando el Pod
apigeeds
esté en ejecución. - Ejecuta
apigeectl init
:${APIGEECTL_HOME}/apigeectl init -f ./overrides/
ORIGINAL_OVERRIDES .yaml
- En el directorio