Habilitando o Ingress com o Cloud Service Mesh

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:

  1. Instalando uma versão específica do plano de controle gerenciado pelo cliente do Cloud Service Mesh e do Ingress Gateway.
  2. 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:

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.

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

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl apply -f hello-app.yaml
    
  3. 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
    
  4. Crie o Ingress 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 ​​deve conter um nome de domínio ELB. Se o ADDRESS ​​permanecer pending , confirme a rotulagem da VPC e da sub-rede.

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

  7. Se você criou um Ingress público, poderá visualizar a página da web padrão hello-app no curl visitando http://$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: