Ativar entrada com o Cloud Service Mesh

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:

  1. 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.
  2. 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:

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.

  1. Crie uma implementação de hello-app e um ClusterIP para a implementação. Copie o seguinte YAML para um ficheiro com o nome 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 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
    
  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 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 o ADDRESS permanecer pending, confirme a etiquetagem da VPC e da sub-rede.

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

  7. Se criou um Ingress público, pode ver a hello-apppágina Web predefinida em curl visitando http://$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: