- v1.15 (última)
- v1.14
- v1.13
- Lista de versiones admitidas
- v1.12
- v1.11
- v1.10
- v1.9
- v1.8
- v1.7
- Versión 1.6
- v1.5
- Versión 1.4
- Versión 1.3
- v1.2
- v1.1
Versiones compatibles:
Versiones no compatibles:
Si vas a actualizar desde la versión 1.3 o una versión anterior de Apigee hybrid, primero debes actualizar a la versión 1.4 antes de actualizar a la versión 1.5.10. Consulta las instrucciones para actualizar Apigee hybrid a la versión 1.4.
Información general sobre la actualización a la versión 1.5.10.
Los procedimientos para actualizar Apigee hybrid se organizan en las siguientes secciones:
- Crea una copia de seguridad de tu instalación híbrida.
- Comprueba tu versión de Kubernetes y actualízala si es necesario.
- Actualiza ASM.
- Instala la versión 1.5 del entorno de ejecución híbrido.
Requisitos previos
- Versión 1.4 de Apigee Hybrid. Si vas a actualizar desde una versión anterior, consulta las instrucciones para actualizar Apigee hybrid a la versión 1.4.
Actualizar a la versión 1.5
- En estas instrucciones se usa la variable de entorno APIGEECTL_HOME para el directorio
del sistema de archivos en el que has instalado
apigeectl
. Si es necesario, ve al directoriocd
y define la variable con el siguiente comando:apigeectl
Linux
export APIGEECTL_HOME=$PWD
echo $APIGEECTL_HOME
macOS
export APIGEECTL_HOME=$PWD
echo $APIGEECTL_HOME
Windows
set APIGEECTL_HOME=%CD%
echo %APIGEECTL_HOME%
- (Recomendado) Haz una copia de seguridad del directorio
$APIGEECTL_HOME/
de la versión 1.4. Por ejemplo:tar -czvf $APIGEECTL_HOME/../apigeectl-v1.4-backup.tar.gz $APIGEECTL_HOME
- (Recomendado) Crea una copia de seguridad de tu base de datos de Cassandra siguiendo las instrucciones de Copia de seguridad y recuperación de Cassandra.
- Actualiza tu plataforma Kubernetes a las versiones compatibles con Hybrid 1.5. Si necesitas ayuda, consulta la documentación de tu plataforma.
- Si usas una versión de
cert-manager
anterior a la 1.2.0, debes actualizarla a la versión 1.2.0.-
Consulta la versión actual de
cert-manager
con el siguiente comando:kubectl -n cert-manager get deployment -o yaml | grep 'image:'
Se devuelve algo similar a lo siguiente:
image: quay.io/jetstack/cert-manager-controller:v1.2.0 image: quay.io/jetstack/cert-manager-cainjector:v1.2.0 image: quay.io/jetstack/cert-manager-webhook:v1.2.0
-
Elimina 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 1.2.0 con el siguiente comando:kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v1.2.0/cert-manager.yaml
-
Actualizar ASM a la versión 1.26
Realiza la actualización siguiendo la documentación de ASM adecuada para tu plataforma:
Las instrucciones para instalar y configurar ASM varían en función de 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 en VMware (GKE On-Prem)
- Anthos en Bare Metal
- Clústeres de Anthos en AWS
- Amazon EKS
- Otras plataformas de Kubernetes: clústeres conformes creados y ejecutados en:
- AKS
- EKS
- OpenShift
GKE
La secuencia para actualizar a la versión 1.8.x de ASM en tu instalación híbrida es la siguiente:
- Prepárate para la actualización.
- Instala la nueva versión de ASM.
- Elimina las implementaciones, los servicios y los webhooks de la versión anterior de ASM de tu instalación actual.
- Actualiza tus pasarelas y configura los nuevos webhooks.
Para actualizar a la versión 1.8.x de ASM para la configuración híbrida en GKE, sigue estos pasos:
.export DELETE_REV=$(kubectl get deploy -n istio-system -l app=istiod -o jsonpath={.items[].metadata.labels.'istio\.io\/rev'}'{"\n"}') echo ${DELETE_REV}
overlay.yaml
o comprueba que el que ya tienes
contiene lo siguiente:overlay.yaml
apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: revision: asm-1264-1 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)%"}'
- Descargar asmcli
- Conceder permisos de administrador de clústeres
- Validar proyecto y clúster
- Actualiza tu plan con funciones opcionales. Detenerse antes de empezar la sección "Actualizar las pasarelas"
cd
en el directorio donde hayas instaladoasmcli
.- Almacena la nueva revisión actual en una variable de entorno para usarla en la secuencia de comandos
para eliminar los webhooks:
UPGRADE_REV="asm-1264-1"
- Crea un shell script 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 -f PATH_TO_INGRESSGATEWAYistio-ingressgateway kubectl apply -n istio-system -f PATH_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 eliminar los webhooks actuales.
Fuera de Google Cloud
Estas instrucciones explican cómo actualizar ASM en los siguientes sistemas:
- Clústeres de Anthos en VMware (GKE On-Prem)
- Anthos en Bare Metal
- Clústeres de Anthos en AWS
- Amazon EKS
export DELETE_REV=$(kubectl get deploy -n istio-system -l app=istiod -o jsonpath={.items[].metadata.labels.'istio\.io\/rev'}'{"\n"}') echo ${DELETE_REV}
overlay.yaml
o comprueba que el que ya tienes
contiene lo siguiente:overlay.yaml
apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: revision: asm-1264-1 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)%"}'
- Descargar asmcli
- Conceder permisos de administrador de clústeres
- Validar proyecto y clúster
- Actualiza tu plan con funciones opcionales. Detenerse antes de empezar la sección "Actualizar las pasarelas"
cd
en el directorio donde hayas instaladoasmcli
.- Almacena la nueva revisión actual en una variable de entorno para usarla en la secuencia de comandos
para eliminar los webhooks:
UPGRADE_REV="asm-1264-1"
- Crea un shell script 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 -f PATH_TO_INGRESSGATEWAYistio-ingressgateway kubectl apply -n istio-system -f PATH_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 eliminar los webhooks actuales.
AKS/EKS
En estas instrucciones, el proceso de actualización de la versión istio-1.26.4-asm.1 de Anthos Service Mesh (ASM) en clústeres vinculados de Anthos es el mismo que el de una instalación nueva.
Prepararse para instalar Anthos Service Mesh
- Descarga el archivo de instalación de Anthos Service Mesh en tu directorio de trabajo actual:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.26.4-asm.1-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.26.4-asm.1-linux-amd64.tar.gz.1.sig
openssl dgst -verify /dev/stdin -signature istio-1.26.4-asm.1-linux-amd64.tar.gz.1.sig istio-1.26.4-asm.1.tar.gz <<'EOF'
-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - Extrae el contenido del archivo a cualquier ubicación de tu sistema de archivos. Por ejemplo, para extraer el contenido al directorio de trabajo actual, haz lo siguiente:
tar xzf istio-1.26.4-asm.1-linux-amd64.tar.gz
El comando crea un directorio de instalación en tu directorio de trabajo actual llamado
istio-1.26.4-asm.1
que contiene lo siguiente:- Aplicaciones de ejemplo en el directorio
samples
. - La herramienta de línea de comandos
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
.
- Aplicaciones de ejemplo en el directorio
- Asegúrate de que te encuentras en el directorio raíz de la instalación de Anthos Service Mesh:
cd istio-1.26.4-asm.1
- Para mayor comodidad, añade las herramientas del directorio /bin a tu PATH:
export PATH=$PWD/bin:$PATH
- Descarga el archivo de instalación de Anthos Service Mesh en tu directorio de trabajo actual:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.26.4-asm.1-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.26.4-asm.1-osx.tar.gz.1.sig
openssl dgst -sha256 -verify /dev/stdin -signature istio-1.26.4-asm.1-osx.tar.gz.1.sig istio-1.26.4-asm.1.tar.gz <<'EOF'
-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - Extrae el contenido del archivo a cualquier ubicación de tu sistema de archivos. Por ejemplo, para extraer el contenido al directorio de trabajo actual, haz lo siguiente:
tar xzf istio-1.26.4-asm.1-osx.tar.gz
El comando crea un directorio de instalación en tu directorio de trabajo actual llamado
istio-1.26.4-asm.1
que contiene lo siguiente:- Aplicaciones de ejemplo en el directorio
samples
. - La herramienta de línea de comandos
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
.
- Aplicaciones de ejemplo en el directorio
- Asegúrate de que te encuentras en el directorio raíz de la instalación de Anthos Service Mesh:
cd istio-1.26.4-asm.1
- Para mayor comodidad, añade las herramientas del directorio /bin a tu PATH:
export PATH=$PWD/bin:$PATH
- Descarga el archivo de instalación de Anthos Service Mesh en tu directorio de trabajo actual:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.26.4-asm.1-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.26.4-asm.1-win.zip.1.sig
openssl dgst -verify - -signature istio-1.26.4-asm.1-win.zip.1.sig istio-1.26.4-asm.1.win.zip <<'EOF'
-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - Extrae el contenido del archivo a cualquier ubicación de tu sistema de archivos. Por ejemplo, para extraer el contenido al directorio de trabajo actual, haz lo siguiente:
tar xzf istio-1.26.4-asm.1-win.zip
El comando crea un directorio de instalación en tu directorio de trabajo actual llamado
istio-1.26.4-asm.1
que contiene lo siguiente:- Aplicaciones de ejemplo en el directorio
samples
. - La herramienta de línea de comandos
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
.
- Aplicaciones de ejemplo en el directorio
- Asegúrate de que te encuentras en el directorio raíz de la instalación de Anthos Service Mesh:
cd istio-1.26.4-asm.1
- Para mayor comodidad, añade las herramientas del directorio \bin a tu PATH:
set PATH=%CD%\bin:%PATH%
- Ahora que ASM Istio está instalado, comprueba 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
Linux
macOS
Windows
Configurar el webhook de validación
Cuando instalas Anthos Service Mesh, asignas una etiqueta de revisión a istiod. Debes definir la misma revisión en el webhook de validación.
- Crea un archivo llamado
istiod-service.yaml
con el siguiente contenido:apiVersion: v1 kind: Service metadata: name: istiod namespace: istio-system labels: istio.io/rev: asm-1264-1 app: istiod istio: pilot release: istio spec: ports: - port: 15010 name: grpc-xds # plaintext protocol: TCP - port: 15012 name: https-dns # mTLS with k8s-signed cert protocol: TCP - port: 443 name: https-webhook # validation and injection targetPort: 15017 protocol: TCP - port: 15014 name: http-monitoring # prometheus stats protocol: TCP selector: app: istiod istio.io/rev: asm-1264-1 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)%"}'
- Usa
kubectl
para aplicar la configuración del webhook de validación:kubectl apply -f istiod-service.yaml
- Verifica que se ha aplicado la configuración:
kubectl get svc -n istio-system
La respuesta debería ser similar a esta:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE istiod ClusterIP 172.200.18.133 <none> 15010/TCP,15012/TCP,443/TCP,15014/TCP 22s
Instalar Anthos Service Mesh
- Instala Anthos Service Mesh con
istioctl
mediante el perfilasm-multicloud
:istioctl install \ --set profile=asm-multicloud \ --set revision="asm-1264-1"
La salida debería tener un aspecto similar a este:
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-1264-1-798ffb964-2ls88 1/1 Running 0 3m21s istiod-asm-1264-1-798ffb964-fnj8c 1/1 Running 1 3m21s
El argumento
--set revision
añade una etiqueta de revisión con el formatoistio.io/rev=asm-1264-1
a istiod. El webhook del inyector automático de sidecars usa la etiqueta de revisión para asociar los sidecars inyectados con una revisión de istiod concreta. Para habilitar la inyección automática de sidecar en un espacio de nombres, debe etiquetarlo con una revisión que coincida con la etiqueta de istiod. - Comprueba que la instalación se ha completado:
kubectl get svc -n istio-system
La salida debería tener un aspecto similar a este:
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-1264-1 ClusterIP 172.200.63.220 <none> 15010/TCP,15012/TCP,443/TCP,15014/TCP 3m43s
OpenShift
En estas instrucciones, el proceso de actualización de la versión istio-1.26.4-asm.1 de Anthos Service Mesh (ASM) en clústeres vinculados de Anthos es el mismo que el de una instalación nueva.
Prepararse para instalar Anthos Service Mesh
- Asigna la restricción de contexto de seguridad (SCC)
anyuid
a istio-system 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 tu directorio de trabajo actual:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.26.4-asm.1-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.26.4-asm.1-linux-amd64.tar.gz.1.sig
openssl dgst -verify /dev/stdin -signature istio-1.26.4-asm.1-linux-amd64.tar.gz.1.sig istio-1.26.4-asm.1.tar.gz <<'EOF'
-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - Extrae el contenido del archivo a cualquier ubicación de tu sistema de archivos. Por ejemplo, para extraer el contenido al directorio de trabajo actual, haz lo siguiente:
tar xzf istio-1.26.4-asm.1-linux-amd64.tar.gz
El comando crea un directorio de instalación en tu directorio de trabajo actual llamado
istio-1.26.4-asm.1
que contiene lo siguiente:- Aplicaciones de ejemplo en el directorio
samples
. - La herramienta de línea de comandos
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
.
- Aplicaciones de ejemplo en el directorio
- Asegúrate de que te encuentras en el directorio raíz de la instalación de Anthos Service Mesh:
cd istio-1.26.4-asm.1
- Para mayor comodidad, añade las herramientas del directorio /bin a tu PATH:
export PATH=$PWD/bin:$PATH
- Asigna la restricción de contexto de seguridad (SCC)
anyuid
a istio-system 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 tu directorio de trabajo actual:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.26.4-asm.1-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.26.4-asm.1-osx.tar.gz.1.sig
openssl dgst -sha256 -verify /dev/stdin -signature istio-1.26.4-asm.1-osx.tar.gz.1.sig istio-1.26.4-asm.1.tar.gz <<'EOF'
-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - Extrae el contenido del archivo a cualquier ubicación de tu sistema de archivos. Por ejemplo, para extraer el contenido al directorio de trabajo actual, haz lo siguiente:
tar xzf istio-1.26.4-asm.1-osx.tar.gz
El comando crea un directorio de instalación en tu directorio de trabajo actual llamado
istio-1.26.4-asm.1
que contiene lo siguiente:- Aplicaciones de ejemplo en el directorio
samples
. - La herramienta de línea de comandos
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
.
- Aplicaciones de ejemplo en el directorio
- Asegúrate de que te encuentras en el directorio raíz de la instalación de Anthos Service Mesh:
cd istio-1.26.4-asm.1
- Para mayor comodidad, añade las herramientas del directorio /bin a tu PATH:
export PATH=$PWD/bin:$PATH
- Asigna la restricción de contexto de seguridad (SCC)
anyuid
a istio-system 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 tu directorio de trabajo actual:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.26.4-asm.1-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.26.4-asm.1-win.zip.1.sig
openssl dgst -verify - -signature istio-1.26.4-asm.1-win.zip.1.sig istio-1.26.4-asm.1.win.zip <<'EOF'
-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - Extrae el contenido del archivo a cualquier ubicación de tu sistema de archivos. Por ejemplo, para extraer el contenido al directorio de trabajo actual, haz lo siguiente:
tar xzf istio-1.26.4-asm.1-win.zip
El comando crea un directorio de instalación en tu directorio de trabajo actual llamado
istio-1.26.4-asm.1
que contiene lo siguiente:- Aplicaciones de ejemplo en el directorio
samples
. - La herramienta de línea de comandos
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
.
- Aplicaciones de ejemplo en el directorio
- Asegúrate de que te encuentras en el directorio raíz de la instalación de Anthos Service Mesh:
cd istio-1.26.4-asm.1
- Para mayor comodidad, añade las herramientas del directorio \bin a tu PATH:
set PATH=%CD%\bin:%PATH%
- Ahora que ASM Istio está instalado, comprueba 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
Linux
macOS
Windows
Configurar el webhook de validación
Cuando instalas Anthos Service Mesh, asignas una etiqueta de revisión a istiod. Debes definir la misma revisión en el webhook de validación.
- Crea un archivo llamado
istiod-service.yaml
con el siguiente contenido:apiVersion: v1 kind: Service metadata: name: istiod namespace: istio-system labels: istio.io/rev: asm-1264-1 app: istiod istio: pilot release: istio spec: ports: - port: 15010 name: grpc-xds # plaintext protocol: TCP - port: 15012 name: https-dns # mTLS with k8s-signed cert protocol: TCP - port: 443 name: https-webhook # validation and injection targetPort: 15017 protocol: TCP - port: 15014 name: http-monitoring # prometheus stats protocol: TCP selector: app: istiod istio.io/rev: asm-1264-1 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)%"}'
- Usa
kubectl
para aplicar la configuración del webhook de validación:kubectl apply -f istiod-service.yaml
- Verifica que se ha aplicado la configuración:
kubectl get svc -n istio-system
La respuesta debería ser similar a esta:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE istiod ClusterIP 172.200.18.133 <none> 15010/TCP,15012/TCP,443/TCP,15014/TCP 22s
Instalar Anthos Service Mesh
- Instala Anthos Service Mesh con
istioctl
mediante el perfilasm-multicloud
:istioctl install \ --set profile=asm-multicloud \ --set revision=istio-1.26.4-asm.1
La salida debería tener un aspecto similar a este:
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-1264-1-798ffb964-2ls88 1/1 Running 0 3m21s istiod-asm-1264-1-798ffb964-fnj8c 1/1 Running 1 3m21s
El argumento
--set revision
añade una etiqueta de revisión con el formatoistio.io/rev=1.8.6-asm.1
a istiod. El webhook del inyector automático de sidecars usa la etiqueta de revisión para asociar los sidecars inyectados con una revisión de istiod concreta. Para habilitar la inyección automática de sidecar en un espacio de nombres, debe etiquetarlo con una revisión que coincida con la etiqueta de istiod. - Comprueba que la instalación se ha completado:
kubectl get svc -n istio-system
La salida debería tener un aspecto similar a este:
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-1264-1 ClusterIP 172.200.63.220 <none> 15010/TCP,15012/TCP,443/TCP,15014/TCP 3m43s
Instalar el entorno de ejecución híbrido 1.5.10
Descarga el paquete de lanzamiento para tu sistema operativo:
Mac de 64 bits:
curl -LO \ https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/1.5.10/apigeectl_mac_64.tar.gz
Linux de 64 bits:
curl -LO \ https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/1.5.10/apigeectl_linux_64.tar.gz
Mac de 32 bits:
curl -LO \ https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/1.5.10/apigeectl_mac_32.tar.gz
Linux de 32 bits:
curl -LO \ https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/1.5.10/apigeectl_linux_32.tar.gz
- Cambia el nombre del directorio
apigeectl/
actual por el de un directorio de copia de seguridad. Por ejemplo:mv $APIGEECTL_HOME/ $APIGEECTL_HOME-v1.2/
-
Extrae el contenido del archivo gzip descargado en el directorio base híbrido. Por ejemplo:
tar xvzf FILENAME.tar.gz -C HYBRID_BASE_DIRECTORY
cd
al directorio base.-
De forma predeterminada, el contenido de tar se expande en un directorio con la versión y la plataforma en su nombre. Por ejemplo:
./apigeectl_1.5.0-d591b23_linux_64
. Cambia el nombre de ese directorio aapigeectl
:mv apigeectl_1.5.0-d591b23_linux_64 apigeectl
- En el directorio new
apigeectl/
, ejecutaapigeectl init
,apigeectl apply
yapigeectl check-ready
:- Inicializar la versión híbrida 1.5.10:
apigeectl init -f OVERRIDES
.yaml
Donde OVERRIDES
.yaml
es el archivooverrides.yaml
editado. - Comprueba que se ha inicializado correctamente con los siguientes comandos:
apigeectl check-ready -f OVERRIDES
.yaml
kubectl describe apigeeds -n apigee
La salida debería tener un aspecto similar a este:
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
- La sintaxis de la marca
apigeectl
--dry-run
depende de la versión dekubectl
que estés usando. Comprueba la versión dekubectl
:gcloud version
- Comprueba si hay errores con una prueba de funcionamiento con el comando adecuado para tu versión de
kubectl
:kubectl
versión 1.17 y anteriores:apigeectl apply -f OVERRIDES
.yaml
--dry-run=truekubectl
versión 1.18 y posteriores:apigeectl apply -f OVERRIDES
.yaml
--dry-run=client - Aplica las anulaciones. Selecciona las instrucciones para entornos de producción o de demostración/experimentales, según tu instalación, y síguelas.
Producción
En los entornos de producción, debes actualizar cada componente híbrido por separado y comprobar el estado del componente actualizado antes de pasar al siguiente.
- Aplica las anulaciones para actualizar Cassandra:
apigeectl apply -f OVERRIDES
.yaml
--datastore - Comprobación completada:
apigeectl check-ready -f OVERRIDES
.yaml
Continúa con el siguiente paso solo cuando los pods estén listos.
- Aplica las anulaciones para actualizar los componentes de Telemetría y comprueba que se han completado:
apigeectl apply -f OVERRIDES
.yaml
--telemetryapigeectl check-ready -f OVERRIDES
.yaml
- Inicia los componentes de Redis:
apigeectl apply -f OVERRIDES
.yaml
--redis - Aplica las anulaciones para actualizar los componentes a nivel de organización (MART, Watcher y Apigee Connect) y comprueba si se han completado:
apigeectl apply -f OVERRIDES
.yaml
--orgapigeectl check-ready -f OVERRIDES
.yaml
- Aplica las anulaciones para actualizar tus entornos. Tienes dos opciones:
- Entorno por entorno: aplica las anulaciones a un entorno cada vez y comprueba que se completan. Repite
este paso para cada entorno:
apigeectl apply -f OVERRIDES
.yaml
--env ENV_NAMEapigeectl check-ready -f OVERRIDES
.yaml
Donde ENV_NAME es el nombre del entorno que vas a actualizar.
- Todos los entornos a la vez: aplica las anulaciones a todos los entornos a la vez y comprueba si se han completado:
apigeectl apply -f OVERRIDES
.yaml
--all-envsapigeectl check-ready -f OVERRIDES
.yaml
- Entorno por entorno: aplica las anulaciones a un entorno cada vez y comprueba que se completan. Repite
este paso para cada entorno:
Demo o experimental
En la mayoría de los entornos de demostración o experimentales, puedes aplicar las anulaciones a todos los componentes a la vez. Si tu entorno de demostración o experimental es grande y complejo, o bien se parece mucho a un entorno de producción, te recomendamos que sigas las instrucciones para actualizar entornos de producción.
apigeectl apply -f OVERRIDES
.yaml
- Comprueba el estado:
apigeectl check-ready -f OVERRIDES
.yaml
- Aplica las anulaciones para actualizar Cassandra:
- Inicializar la versión híbrida 1.5.10:
Restaurar una versión anterior de una actualización
Sigue estos pasos para revertir una actualización anterior:
- Limpia las tareas completadas del espacio de nombres del tiempo de ejecución híbrido, donde NAMESPACE es el espacio de nombres especificado en el archivo de anulaciones (si has especificado alguno). Si no es así, el espacio de nombres predeterminado es
apigee
:kubectl delete job -n NAMESPACE \ $(kubectl get job -n NAMESPACE \ -o=jsonpath='{.items[?(@.status.succeeded==1)].metadata.name}')
- Limpia las tareas completadas 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 anterior deapigeectl
. Por ejemplo:export APIGEECTL_HOME=PATH_TO_PREVIOUS_APIGEECTL_DIRECTORY
- En el directorio raíz de la instalación a la que quieras volver, ejecuta
apigeectl apply
, comprueba el estado de tus pods, elimina el componente Redis (novedad de la versión híbrida 1.5.0) y, a continuación, ejecutaapigeectl init
. Asegúrate de usar el archivo de anulaciones original de la versión a la que quieras volver:- Ejecuta
apigeectl apply
:$APIGEECTL_HOME
/apigeectl apply -f overrides/ORIGINAL_OVERRIDES.yaml
- Verifica el estado de tus pods:
kubectl -n NAMESPACE get pods
Donde NAMESPACE es el espacio de nombres de Apigee hybrid.
Continúa con el siguiente paso solo cuando el
apigeeds
pod esté en ejecución. -
Como Redis es un componente nuevo en la versión 1.5 híbrida, ejecuta el siguiente comando para eliminarlo:
apigeectl_1.5.0 delete --redis -f ORIGINAL_OVERRIDES
.yaml
- Ejecuta
apigeectl init
:$APIGEECTL_HOME
/apigeectl init -f overrides/ORIGINAL_OVERRIDES.yaml
- Ejecuta