Neste tópico, mostramos como instalar o Anthos Service Mesh, que vem pré-instalado com um Gateway de entrada. Com o Anthos Service Mesh, é possível configurar um recurso de Ingress do Kubernetes para suas implantações, se você precisar de um controlador de Ingress. Neste tópico, fornecemos um exemplo que mostra como configurar um recurso de implantação e entrada de amostra.
A instalação do Anthos Service Mesh consiste em duas partes principais:
- Instalação de uma versão específica do plano de controle gerenciado pelo cliente do Anthos Service Mesh e do gateway de entrada.
- Rotular os namespaces com um rótulo de revisão e reimplantar as cargas de trabalho para injetar um proxy secundário.
Se você só precisar usar um objeto Entrada usando um controlador de Entrada, não será necessário injetar um proxy sidecar nos pods de carga de trabalho. Mas, se você quiser os benefícios de segurança fornecidos pelo Anthos Service Mesh e, se você quiser usar os recursos de roteamento de tráfego você precisa injetar os proxies secundários.
Antes de começar
Antes de começar a usar o GKE na AWS, verifique se você executou as seguintes tarefas:
- Conclua os Pré-requisitos.
- Instale um serviço de gerenciamento.
- Crie um cluster de usuário.
- Registre seu cluster com o Connect seguindo as etapas em Como se conectar ao cluster com o Console do Cloud.
- Configure seu cluster para usar a identidade da carga de trabalho com o Google Cloud.
Se os clusters de usuário restringiram o acesso de saída à Internet, permita o acesso aos seguintes domínios de repositório de contêineres:
docker.io
quay.io
No diretório
anthos-aws
, useanthos-gke
para alternar o contexto para o cluster de usuários.cd anthos-aws env HTTPS_PROXY=http://localhost:8118 \ anthos-gke aws clusters get-credentials CLUSTER_NAME
Substitua CLUSTER_NAME pelo nome do cluster de usuários.
Como instalar o Anthos Service Mesh
Siga as etapas em Instalar o Anthos Service Mesh.
Como criar um exemplo de implantação
Nesta seção, você instalará um aplicativo de amostra e criará um endpoint de entrada para ele.
Crie uma implantação de
hello-app
e um ClusterIP para a implantação. Copie o seguinte YAML para 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 cluster com
kubectl apply
.env HTTPS_PROXY=http://localhost:8118 \ kubectl apply -f hello-app.yaml
Crie uma Entrada do Kubernetes para o aplicativo de amostra. Copiar 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 a Entrada 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
precisa ter um nome de domínio ELB. Se oADDRESS
permanecerpending
, confirme a rotulagem da VPC e da sub-rede.Para verificar o URL do gateway de entrada, escreva o host e a porta. Para receber 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 endpoint da Entrada.
Se você criou uma entrada pública, é possível ver a página da Web padrão de
hello-app
emcurl
acessandohttp://$INGRESS_URL/
.curl $INGRESS_URL/
Como fazer a 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 Anthos Service Mesh, consulte Como desinstalar o Anthos Service Mesh.
A seguir
Saiba mais sobre estas situações:
Como configurar o gateway de entrada (em inglês)