A partir da versão 1.8 do Apigee hybrid, o Apigee hybrid usa o gateway de entrada do Apigee para fornecer um gateway de entrada para a sua instalação híbrida. Se preferir usar o Anthos Service Mesh para a entrada, siga estes passos para instalar o Anthos Service Mesh no seu cluster.
Versões suportadas do Anthos Service Mesh
Consulte o artigo Apigee Hybrid: plataformas suportadas para ver as versões do Anthos Service Mesh suportadas na versão híbrida 1.8.
Se estiver a atualizar a sua instalação híbrida, siga as instruções em Atualize o Anthos Service Mesh.
Instale o Anthos Service Mesh
Execute estes passos numa instalação nova do Apigee Hybrid apenas se não estiver a usar o gateway de entrada do Apigee.
Execute os procedimentos através da documentação do Anthos Service Mesh adequada à sua plataforma:
As instruções para instalar e configurar o Anthos Service Mesh são diferentes consoante a sua plataforma. As plataformas estão divididas nas seguintes categorias:
- GKE: clusters do Google Kubernetes Engine em execução no Google Cloud.
- Fora do Google Cloud: clusters do Anthos em execução em:
- Clusters do Anthos no VMware (GKE On-Prem)
- Anthos em bare metal
- Clusters do Anthos no AWS
- Amazon EKS
- Outras plataformas Kubernetes: clusters em conformidade criados e executados em:
- AKS
- EKS
- OpenShift
GKE
A sequência para instalar o Anthos Service Mesh é a seguinte:
- Prepare-se para a instalação.
- Instale a nova versão do Anthos Service Mesh.
Prepare-se para instalar o Anthos Service Mesh
- Reveja os requisitos em Atualize o Anthos Service Mesh, mas não faça a atualização ainda.
- Crie um novo ficheiro
overlay.yaml
ou verifique se o ficheirooverlay.yaml
existente contém o seguinte conteúdo:apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: 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)%"}'
- Siga as instruções nas secções seguintes da documentação do Anthos Service Mesh:
- Transferir asmcli
- Conceda autorizações de administrador do cluster
- Valide o projeto e o cluster
- Atualize com funcionalidades opcionais. Pare antes de iniciar a "Secção de atualização de gateways".
Fora do Google Cloud
Estas instruções abrangem a atualização do Anthos Service Mesh nos seguintes sistemas:
- Clusters do Anthos no VMware (GKE On-Prem)
- Anthos em bare metal
- Clusters do Anthos no AWS
- Amazon EKS
A sequência para instalar o Anthos Service Mesh é a seguinte:
- Prepare-se para a instalação.
- Instale a nova versão do Anthos Service Mesh.
Prepare-se para instalar o Anthos Service Mesh
- Reveja os requisitos em Atualize o Anthos Service Mesh, mas não faça a atualização ainda.
- Crie um novo ficheiro
overlay.yaml
ou verifique se o ficheirooverlay.yaml
existente contém o seguinte conteúdo:apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: 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)%"}'
- Siga as instruções nas secções seguintes da documentação do Anthos Service Mesh:
- Transferir asmcli
- Conceda autorizações de administrador do cluster
- Valide o projeto e o cluster
- Atualize com funcionalidades opcionais. Pare antes de iniciar a "Secção de atualização de gateways".
AKS / EKS
A preparar a instalação do Anthos Service Mesh
- Transfira o ficheiro de instalação do Anthos Service Mesh para o diretório de trabalho atual:
curl -LO https://storage.googleapis.com/gke-release/asm/1.17.8-asm.4-distroless-linux-amd64.tar.gz
- Transfira o ficheiro de assinatura e use o OpenSSL para validar a assinatura:
curl -LO https://storage.googleapis.com/gke-release/asm/1.17.8-asm.4-distroless-linux-amd64.tar.gz.1.sig
openssl dgst -verify /dev/stdin -signature 1.17.8-asm.4-distroless-linux-amd64.tar.gz.1.sig 1.17.8-asm.4-distroless.tar.gz <<'EOF'
-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - Extraia o conteúdo do ficheiro para qualquer localização no seu sistema de ficheiros. Por exemplo,
para extrair os conteúdos para o diretório de trabalho atual:
tar xzf 1.17.8-asm.4-distroless-linux-amd64.tar.gz
O comando cria um diretório de instalação no seu diretório de trabalho atual denominado
1.17.8-asm.4-distroless
que contém:- Exemplos de aplicações no diretório
samples
. - A ferramenta de linha de comandos
istioctl
que usa para instalar o Anthos Service Mesh está no diretóriobin
. - Os perfis de configuração do Anthos Service Mesh encontram-se no diretório
manifests/profiles
.
- Exemplos de aplicações no diretório
- Certifique-se de que está no diretório raiz da instalação do Anthos Service Mesh:
cd 1.17.8-asm.4-distroless
- Para maior comodidade, adicione as ferramentas no diretório
/bin
ao seuPATH
:export PATH=$PWD/bin:$PATH
- Transfira o ficheiro de instalação do Anthos Service Mesh para o diretório de trabalho atual:
curl -LO https://storage.googleapis.com/gke-release/asm/1.17.8-asm.4-distroless-osx.tar.gz
- Transfira o ficheiro de assinatura e use o OpenSSL para validar a assinatura:
curl -LO https://storage.googleapis.com/gke-release/asm/1.17.8-asm.4-distroless-osx.tar.gz.1.sig
openssl dgst -sha256 -verify /dev/stdin -signature 1.17.8-asm.4-distroless-osx.tar.gz.1.sig 1.17.8-asm.4-distroless.tar.gz <<'EOF'
-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - Extraia o conteúdo do ficheiro para qualquer localização no seu sistema de ficheiros. Por exemplo,
para extrair os conteúdos para o diretório de trabalho atual:
tar xzf 1.17.8-asm.4-distroless-osx.tar.gz
O comando cria um diretório de instalação no seu diretório de trabalho atual denominado
1.17.8-asm.4-distroless
que contém:- Exemplos de aplicações no diretório
samples
. - A ferramenta de linha de comandos
istioctl
que usa para instalar o Anthos Service Mesh está no diretóriobin
. - Os perfis de configuração do Anthos Service Mesh encontram-se no diretório
manifests/profiles
.
- Exemplos de aplicações no diretório
- Certifique-se de que está no diretório raiz da instalação do Anthos Service Mesh:
cd 1.17.8-asm.4-distroless
- Para maior comodidade, adicione as ferramentas no diretório
/bin
ao seuPATH
:export PATH=$PWD/bin:$PATH
- Transfira o ficheiro de instalação do Anthos Service Mesh para o diretório de trabalho atual:
curl -LO https://storage.googleapis.com/gke-release/asm/1.17.8-asm.4-distroless-win.zip
- Transfira o ficheiro de assinatura e use o OpenSSL para validar a assinatura:
curl -LO https://storage.googleapis.com/gke-release/asm/1.17.8-asm.4-distroless-win.zip.1.sig
openssl dgst -verify - -signature 1.17.8-asm.4-distroless-win.zip.1.sig 1.17.8-asm.4-distroless.win.zip <<'EOF'
-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - Extraia o conteúdo do ficheiro para qualquer localização no seu sistema de ficheiros. Por exemplo,
para extrair os conteúdos para o diretório de trabalho atual:
tar xzf 1.17.8-asm.4-distroless-win.zip
O comando cria um diretório de instalação no seu diretório de trabalho atual denominado
1.17.8-asm.4-distroless
que contém:- Exemplos de aplicações no diretório
samples
. - A ferramenta de linha de comandos
istioctl
que usa para instalar o Anthos Service Mesh está no diretóriobin
. - Os perfis de configuração do Anthos Service Mesh encontram-se no diretório
manifests\profiles
.
- Exemplos de aplicações no diretório
- Certifique-se de que está no diretório raiz da instalação do Anthos Service Mesh:
cd 1.17.8-asm.4-distroless
- Para maior comodidade, adicione as ferramentas no diretório \bin ao seu PATH:
set PATH=%CD%\bin:%PATH%
- Agora que o Anthos Service Mesh Istio está instalado, verifique a versão do
istioctl
:istioctl version
- Crie um espaço de nomes denominado istio-system para os componentes do plano de controlo:
kubectl create namespace istio-system
Linux
Mac OS
Windows
Instalar o Anthos Service Mesh
- Edite o ficheiro
overlay.yaml
ou crie um novo com o seguinte conteúdo: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: ingressGateways: - name: istio-ingressgateway enabled: true k8s: service: type: LoadBalancer ports: - name: status-port port: 15021 targetPort: 15021 - name: http2 port: 80 targetPort: 8080 - name: https port: 443 targetPort: 8443
- Instale o Anthos Service Mesh com
istioctl
usando o perfilasm-multicloud
:istioctl install \ --set profile=asm-multicloud \ --set revision="asm-1178-1" \ --filename overlay.yaml
O resultado deve ter um aspeto semelhante ao seguinte:
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-1178-1-798ffb964-2ls88 1/1 Running 0 3m21s istiod-asm-1178-1-798ffb964-fnj8c 1/1 Running 1 3m21s
O argumento
--set revision
adiciona uma etiqueta de revisão no formatoistio.io/rev=asm-1178-1
aistiod
. A etiqueta de revisão é usada pelo webhook do injetor de contentores auxiliares automático para associar contentores auxiliares injetados a uma revisão específica.istiod
Para ativar a injeção automática de sidecar para um espaço de nomes, tem de etiquetá-lo com uma revisão que corresponda à etiqueta emistiod
. - Confirme se a instalação foi concluída:
kubectl get svc -n istio-system
O resultado deve ter um aspeto semelhante ao seguinte:
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-1178-1 ClusterIP 172.200.63.220 <none> 15010/TCP,15012/TCP,443/TCP,15014/TCP 3m43s
OpenShift
A preparar a instalação do Anthos Service Mesh
- Antes de instalar a nova versão, determine a revisão atual. Precisa
destas informações para eliminar o webhook de validação e o webhook de mutação
da sua instalação atual do Anthos Service Mesh. Use o seguinte comando para armazenar a revisão
istiod
atual numa variável de ambiente:export DELETE_REV=$(kubectl get deploy -n istio-system -l app=istiod -o jsonpath={.items[*].metadata.labels.'istio\.io\/rev'}'{"\n"}')
echo $DELETE_REV
O resultado deve ter um aspeto semelhante a
1.16
- Conceda a restrição de contexto de segurança (SCC)
anyuid
ao istio-system com o seguinte comando da CLI do OpenShift (oc
):oc adm policy add-scc-to-group anyuid system:serviceaccounts:istio-system
- Transfira o ficheiro de instalação do Anthos Service Mesh para o diretório de trabalho atual:
curl -LO https://storage.googleapis.com/gke-release/asm/1.17.8-asm.4-distroless-linux-amd64.tar.gz
- Transfira o ficheiro de assinatura e use o OpenSSL para validar a assinatura:
curl -LO https://storage.googleapis.com/gke-release/asm/1.17.8-asm.4-distroless-linux-amd64.tar.gz.1.sig
openssl dgst -verify /dev/stdin -signature 1.17.8-asm.4-distroless-linux-amd64.tar.gz.1.sig 1.17.8-asm.4-distroless.tar.gz <<'EOF'
-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - Extraia o conteúdo do ficheiro para qualquer localização no seu sistema de ficheiros. Por exemplo,
para extrair os conteúdos para o diretório de trabalho atual:
tar xzf 1.17.8-asm.4-distroless-linux-amd64.tar.gz
O comando cria um diretório de instalação no seu diretório de trabalho atual denominado
1.17.8-asm.4-distroless
que contém:- Exemplos de aplicações no diretório
samples
. - A ferramenta de linha de comandos
istioctl
que usa para instalar o Anthos Service Mesh está no diretóriobin
. - Os perfis de configuração do Anthos Service Mesh encontram-se no diretório
manifests/profiles
.
- Exemplos de aplicações no diretório
- Certifique-se de que está no diretório raiz da instalação do Anthos Service Mesh:
cd 1.17.8-asm.4-distroless
- Para maior comodidade, adicione as ferramentas no diretório
/bin
ao seuPATH
:export PATH=$PWD/bin:$PATH
- Conceda a restrição de contexto de segurança (SCC)
anyuid
ao istio-system com o seguinte comando da CLI do OpenShift (oc
):oc adm policy add-scc-to-group anyuid system:serviceaccounts:istio-system
- Transfira o ficheiro de instalação do Anthos Service Mesh para o diretório de trabalho atual:
curl -LO https://storage.googleapis.com/gke-release/asm/1.17.8-asm.4-distroless-osx.tar.gz
- Transfira o ficheiro de assinatura e use o OpenSSL para validar a assinatura:
curl -LO https://storage.googleapis.com/gke-release/asm/1.17.8-asm.4-distroless-osx.tar.gz.1.sig
openssl dgst -sha256 -verify /dev/stdin -signature 1.17.8-asm.4-distroless-osx.tar.gz.1.sig 1.17.8-asm.4-distroless.tar.gz <<'EOF'
-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - Extraia o conteúdo do ficheiro para qualquer localização no seu sistema de ficheiros. Por exemplo,
para extrair os conteúdos para o diretório de trabalho atual:
tar xzf 1.17.8-asm.4-distroless-osx.tar.gz
O comando cria um diretório de instalação no seu diretório de trabalho atual denominado
1.17.8-asm.4-distroless
que contém:- Exemplos de aplicações no diretório
samples
. - A ferramenta de linha de comandos
istioctl
que usa para instalar o Anthos Service Mesh está no diretóriobin
. - Os perfis de configuração do Anthos Service Mesh encontram-se no diretório
manifests/profiles
.
- Exemplos de aplicações no diretório
- Certifique-se de que está no diretório raiz da instalação do Anthos Service Mesh:
cd 1.17.8-asm.4-distroless
- Para maior comodidade, adicione as ferramentas no diretório
/bin
ao seuPATH
:export PATH=$PWD/bin:$PATH
- Conceda a restrição de contexto de segurança (SCC)
anyuid
ao istio-system com o seguinte comando da CLI do OpenShift (oc
):oc adm policy add-scc-to-group anyuid system:serviceaccounts:istio-system
- Transfira o ficheiro de instalação do Anthos Service Mesh para o diretório de trabalho atual:
curl -LO https://storage.googleapis.com/gke-release/asm/1.17.8-asm.4-distroless-win.zip
- Transfira o ficheiro de assinatura e use o OpenSSL para validar a assinatura:
curl -LO https://storage.googleapis.com/gke-release/asm/1.17.8-asm.4-distroless-win.zip.1.sig
openssl dgst -verify - -signature 1.17.8-asm.4-distroless-win.zip.1.sig 1.17.8-asm.4-distroless.win.zip <<'EOF'
-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - Extraia o conteúdo do ficheiro para qualquer localização no seu sistema de ficheiros. Por exemplo,
para extrair os conteúdos para o diretório de trabalho atual:
tar xzf 1.17.8-asm.4-distroless-win.zip
O comando cria um diretório de instalação no seu diretório de trabalho atual denominado
1.17.8-asm.4-distroless
que contém:- Exemplos de aplicações no diretório
samples
. - A ferramenta de linha de comandos
istioctl
que usa para instalar o Anthos Service Mesh está no diretóriobin
. - Os perfis de configuração do Anthos Service Mesh encontram-se no diretório
manifests\profiles
.
- Exemplos de aplicações no diretório
- Certifique-se de que está no diretório raiz da instalação do Anthos Service Mesh:
cd 1.17.8-asm.4-distroless
- Para maior comodidade, adicione as ferramentas no diretório \bin ao seu PATH:
set PATH=%CD%\bin:%PATH%
- Agora que o Anthos Service Mesh Istio está instalado, verifique a versão do
istioctl
:istioctl version
- Crie um espaço de nomes denominado istio-system para os componentes do plano de controlo:
kubectl create namespace istio-system
Linux
Mac OS
Windows
Configure o webhook de validação
Quando instala o Anthos Service Mesh, define uma etiqueta de revisão em istiod
. Tem de definir a mesma revisão no webhook de validação.
- Crie um ficheiro denominado
istiod-service.yaml
com o seguinte conteúdo:apiVersion: v1 kind: Service metadata: name: istiod namespace: istio-system labels: istio.io/rev: asm-1178-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-1178-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)%"}'
- Use
kubectl
para aplicar a configuração do webhook de validação:kubectl apply -f istiod-service.yaml
- Verifique se a configuração foi aplicada:
kubectl get svc -n istio-system
A resposta deve ser semelhante à seguinte:
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 o Anthos Service Mesh
- Edite o ficheiro
overlay.yaml
ou crie um novo com o seguinte conteúdo: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: ingressGateways: - name: istio-ingressgateway enabled: true k8s: service: type: LoadBalancer ports: - name: status-port port: 15021 targetPort: 15021 - name: http2 port: 80 targetPort: 8080 - name: https port: 443 targetPort: 8443
- Instale o Anthos Service Mesh com
istioctl
usando o perfilasm-multicloud
:istioctl install \ --set profile=asm-multicloud \ --set revision="asm-1178-1" \ --filename overlayfile.yaml
O resultado deve ter um aspeto semelhante ao seguinte:
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-1178-1-798ffb964-2ls88 1/1 Running 0 3m21s istiod-asm-1178-1-798ffb964-fnj8c 1/1 Running 1 3m21s
O argumento
--set revision
adiciona uma etiqueta de revisão no formatoistio.io/rev=1.6.11-asm.1
aistiod
. A etiqueta de revisão é usada pelo webhook do injetor de contentores auxiliares automático para associar contentores auxiliares injetados a uma revisão específica.istiod
Para ativar a injeção automática de sidecar para um espaço de nomes, tem de etiquetá-lo com uma revisão que corresponda à etiqueta emistiod
. - Confirme se a instalação foi concluída:
kubectl get svc -n istio-system
O resultado deve ter um aspeto semelhante ao seguinte:
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-1178-1 ClusterIP 172.200.63.220 <none> 15010/TCP,15012/TCP,443/TCP,15014/TCP 3m43s