Uma nova versão dos clusters do Anthos na AWS (GKE na AWS) foi lançada em 3 de junho. Consulte as Notas de lançamento para mais informações.

Como ativar o Ingress com o Anthos Service Mesh

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 entrada do Kubernetes para suas implantações, se você precisar de um controlador de entrada (links em inglês). 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:

  1. Instalação de uma versão específica do plano de controle gerenciado pelo cliente do Anthos Service Mesh e do gateway de entrada.
  2. 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ó precisa da funcionalidade de entrada usando um controlador de entrada, não é 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 os clusters do Anthos na AWS, realize as tarefas a seguir:

  • Instale um serviço de gerenciamento.
  • Crie um cluster de usuário.
  • 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

    Se você não quiser permitir o acesso de saída a esses domínios, consulte Como instalar sem o Prometheus e o Kiali.

  • Use kubectl config use context para alternar o contexto para o cluster de usuário.

    kubectl config use-context CLUSTER_NAME

Como instalar o Anthos Service Mesh

Siga o guia de instalação da versão do Anthos Service Mesh que você quer instalar:

Como criar um exemplo de implantação

Nesta seção, você instalará um aplicativo de amostra e criará um endpoint de entrada para ele.

  1. Crie uma implantação de hello-app e um ClusterIP para a implantação. Copie o seguinte YAML para um arquivo chamado hello-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
    
  2. Aplique o YAML ao cluster com kubectl apply.

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl apply -f hello-app.yaml
    
  3. 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
    
  4. Crie a Entrada aplicando a configuração com kubectl apply.

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl apply -f hello-app-ingress.yaml
    
  5. 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 o ADDRESS permanecer pending, confirme a rotulagem da VPC e da sub-rede.

  6. 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.

  7. Se você criou uma entrada pública, é possível ver a página da Web padrão de hello-app em curl acessando http://$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: