Como implantar outro conector do IAP em um cluster do GKE existente

Esta página descreve o processo para implantar um conector IAP local adicional em um cluster existente do Google Kubernetes Engine (GKE) em um ambiente de produção. Você já deve estar familiarizado com ferramentas como SDK do Google Cloud, kubectl e Helm.

Para uma visão geral rápida da implantação de um conector do IAP local pela primeira vez, consulte Como ativar o IAP para aplicativos locais.

Antes de começar

Verifique se você está preparado para a implantação com:

  • Cluster do GKE existente
    • O cluster deve ser configurado para usar o VPC nativo (aliases de IP). O VPC em que ele está deve ter acesso à Internet por uma rota no VPC (gateway NAT ou outro).
    • Para que os clusters do GKE atendam várias instâncias do conector do IAP a partir de um único cluster, eles devem ser configurados para dimensionamento automático, juntamente com os pods que atendem a aplicativos individuais.
  • Regra de firewall que permite o tráfego do cluster do GKE (nó/pod) para instância de back-end/no local
  • Certificado SSL gerenciado pelo Google e IP externo estático
  • Gerenciador de pacotes Helm (versão 2.0.0 ou posterior) instalado em sua máquina cliente local
  • NAT da nuvem configurado na sub-rede para recuperar imagens do Ambassador
  • Número de balanceadores de carga globais aumentados para acomodar os limites do certificado TLS descritos para pools de destino e proxies de destino

Configurar e implantar com Helm

  1. Comece clonando este repositório do GitHub.

  2. Configure o gráfico Helm values_example.yaml encontrado no diretório iap-connector/terraform-and-helm/iap-connector/helm/values em que você clonou o repositório.

    Este gráfico mostra como implantar dois aplicativos por meio de dois proxies Ambassador no cluster que compartilha um único proxy do balanceador de carga global. O proxy possui dois certificados vinculados, um para cada aplicativo. Este arquivo de exemplo pode ser customizado para suportar até o limite do proxy de entrada única.

    Depois que o arquivo YAML estiver configurado, salve-o como values.yaml.

  3. Inicialize o Helm.

    helm init
    
  4. Conceda permissão do Helm para instalar no cluster do GKE.

    kubectl create clusterrolebinding cluster-admin-binding --clusterrole cluster-admin
      --user system:serviceaccount:kube-system:default
    
  5. Instale o gráfico Helm para criar o balanceador de carga global, o serviço de entrada no GKE e os serviços de back-end, conforme definido no arquivo YAML.

    helm install --name my-release ./iap-connector -f values.yaml
    

Configurando um aplicativo de back-end HTTP

Por padrão, o Ambassador é implantado com HTTPS no recurso de destino, mas você pode preferir um back-end HTTP. Para alterar sua implantação para HTTP, faça o seguinte:

  1. Encontre o serviço que você quer editar.

    kubectl get services
    
  2. Edite o serviço, copiando o nome do serviço do comando anterior.

    kubectl edit service <serviceName>
    
  3. Localize a linha que começa com service e altere o protocolo de https para http e o número da porta para 80.

    service:http://example.service.internal:80
    
  4. Remova a linha que especifica TLS.

    tls:true