Este tópico mostra como instalar o Cloud Service Mesh, que é pré-instalado com um Ingress Gateway. Com a Cloud Service Mesh, pode configurar um recurso Kubernetes Ingress para as suas implementações se precisar de um controlador Ingress. Este tópico fornece um exemplo que mostra como configurar um exemplo de recurso de implementação e de entrada.
A instalação da Cloud Service Mesh é composta por duas partes principais:
- Instalar uma versão específica da malha de serviços na nuvem do plano de controlo gerido pelo cliente e do gateway de entrada.
- Etiquetar os seus espaços de nomes com uma etiqueta de revisão e voltar a implementar as suas cargas de trabalho para injetar um proxy sidecar.
Se só precisar de usar um objeto Ingress com um controlador Ingress, não tem de injetar um proxy sidecar nos seus pods de carga de trabalho. No entanto, se quiser usufruir das vantagens de segurança que o Cloud Service Mesh oferece e se quiser usar as capacidades de encaminhamento de tráfego, tem de injetar os proxies sidecar.
Antes de começar
Antes de começar a usar o GKE on AWS, certifique-se de que realizou as seguintes tarefas:
- Cumpra os pré-requisitos.
- Instale um serviço de gestão.
- Crie um cluster de utilizadores.
- Registe o seu cluster no Connect seguindo os passos descritos no artigo Estabelecer ligação ao seu cluster com a consola do Google Cloud.
- Configure o cluster para usar o Workload Identity com o Google Cloud.
Se os seus clusters de utilizadores tiverem acesso de saída restrito à Internet, permita o acesso aos seguintes domínios do repositório de contentores:
docker.io
quay.io
No diretório do
anthos-aws
, useanthos-gke
para mudar o contexto para o cluster de utilizadores. Substitua CLUSTER_NAME pelo nome do cluster de utilizadores.cd anthos-aws env HTTPS_PROXY=http://localhost:8118 \ anthos-gke aws clusters get-credentials CLUSTER_NAME
Instalar o Anthos Service Mesh
Siga os passos em Instale o Cloud Service Mesh.
Criar uma implementação de exemplo
Nesta secção, instala uma aplicação de exemplo e cria um ponto final do Ingress para a mesma.
Crie uma implementação de
hello-app
e um ClusterIP para a implementação. Copie o seguinte YAML para um ficheiro com o nomehello-app.yaml
.apiVersion: apps/v1 kind: Deployment metadata: labels: app: hello-app name: hello-app spec: selector: matchLabels: app: hello-app replicas: 3 template: metadata: labels: app: hello-app spec: containers: - name: hello image: "gcr.io/google-samples/hello-app:2.0" --- apiVersion: v1 kind: Service metadata: labels: app: hello-app name: hello-app spec: type: ClusterIP selector: app: hello-app ports: - protocol: TCP port: 8080 targetPort: 8080
Aplique o YAML ao seu cluster com
kubectl apply
.env HTTPS_PROXY=http://localhost:8118 \ kubectl apply -f hello-app.yaml
Crie um Kubernetes Ingress para a aplicação de exemplo. Copie o seguinte YAML para um ficheiro denominado
hello-app-ingress.yaml
apiVersion: networking.k8s.io/v1beta1 kind: Ingress metadata: annotations: kubernetes.io/ingress.class: istio labels: app: hello-app name: hello-app spec: rules: - host: http: paths: - backend: serviceName: hello-app servicePort: 8080
Crie o Ingress aplicando a configuração com
kubectl apply
.env HTTPS_PROXY=http://localhost:8118 \ kubectl apply -f hello-app-ingress.yaml
Verifique o estado do seu gateway com
kubectl get svc
.env HTTPS_PROXY=http://localhost:8118 \ kubectl get ingress hello-app
O campo
ADDRESS
deve ter um nome de domínio do ELB. Se oADDRESS
permanecerpending
, confirme a etiquetagem da VPC e da sub-rede.Pode verificar o URL do gateway de entrada ao compor o anfitrião e a porta. Para obter o URL do gateway, execute os seguintes comandos:
export INGRESS_URL=$(env HTTPS_PROXY=http://localhost:8118 \ kubectl get ingress hello-app -o jsonpath='{.status.loadBalancer.ingress[0].hostname}') echo "Your hello-app Ingress URL is: http://"$INGRESS_URL
O último comando imprime o ponto final do seu Ingress.
Se criou um Ingress público, pode ver a
hello-app
página Web predefinida emcurl
visitandohttp://$INGRESS_URL/
.curl $INGRESS_URL/
Limpar
Remove os componentes hello-app
com kubectl delete
.
env HTTPS_PROXY=http://localhost:8118 \
kubectl delete -f hello-app.yaml &&\
kubectl delete -f hello-app-ingress.yaml
Se quiser remover o Cloud Service Mesh, consulte o artigo Desinstalar o Cloud Service Mesh.
O que se segue?
Saiba mais sobre: