Este tópico mostra como instalar o Cloud Service Mesh, que vem pré-instalado com um Ingress Gateway . Com o Cloud Service Mesh, você pode configurar um recurso Ingress do Kubernetes para suas implantações, caso precise de um controlador Ingress . Este tópico fornece um exemplo que mostra como configurar uma implantação de exemplo e um recurso Ingress.
A instalação do Cloud Service Mesh consiste em duas partes principais:
- Instalando uma versão específica do plano de controle gerenciado pelo cliente do Cloud Service Mesh e do Ingress Gateway.
- Rotular seus namespaces com um rótulo de revisão e reimplantar suas cargas de trabalho para injetar um proxy sidecar .
Se você precisar usar apenas um objeto Ingress com um controlador Ingress, não precisará injetar um proxy sidecar nos seus pods de carga de trabalho. Mas se quiser os benefícios de segurança que o Cloud Service Mesh oferece e aproveitar os recursos de roteamento de tráfego , precisará injetar os proxies sidecar.
Antes de começar
Antes de começar a usar o GKE na AWS, certifique-se de ter executado as seguintes tarefas:
- Conclua os pré-requisitos .
- Instalar um serviço de gerenciamento .
- Crie um cluster de usuários .
- Registre seu cluster no Connect seguindo as etapas em Conectando-se ao seu cluster com o console do Cloud .
- Configure seu cluster para usar a identidade da carga de trabalho com Google Cloud .
Se seus clusters de usuários tiverem acesso de saída restrito à Internet, permita acesso aos seguintes domínios de repositório de contêiner:
-
docker.io
-
quay.io
-
No seu diretório
anthos-aws
, useanthos-gke
para alternar o contexto para seu cluster de usuários. Substitua CLUSTER_NAME pelo nome do seu cluster de usuário.cd anthos-aws env HTTPS_PROXY=http://localhost:8118 \ anthos-gke aws clusters get-credentials CLUSTER_NAME
Instalando o Anthos Service Mesh
Siga as etapas em Instalar o Cloud Service Mesh .
Criando um exemplo de implantação
Nesta seção, você instala um aplicativo de exemplo e cria um ponto de extremidade do Ingress para ele.
Crie uma implantação de
hello-app
e um ClusterIP para a implantação. Copie o seguinte YAML em um arquivo chamadohello-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 Ingress do Kubernetes para o aplicativo de exemplo. Copie o seguinte YAML em um arquivo chamado
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 status do seu gateway com
kubectl get svc
.env HTTPS_PROXY=http://localhost:8118 \ kubectl get ingress hello-app
O campo
ADDRESS
deve conter um nome de domínio ELB. Se oADDRESS
permanecerpending
, confirme a rotulagem da VPC e da sub-rede.Você pode verificar a URL do gateway do Ingress digitando o host e a porta. Para obter a URL do seu 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 você criou um Ingress público, poderá visualizar a página da web padrão
hello-app
nocurl
visitandohttp://$INGRESS_URL/
.curl $INGRESS_URL/
Limpeza
Você 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 você quiser remover o Cloud Service Mesh, consulte Desinstalando o Cloud Service Mesh .
O que vem a seguir
Saiba mais sobre: