在现有 GKE 集群上部署另一个 IAP 连接器

本页面介绍在生产环境中将其他本地 IAP 连接器部署到现有 Google Kubernetes Engine (GKE) 集群的流程。您应该已经熟悉 Google Cloud SDKkubectl 和 Helm 之类的工具。

如需快速了解如何首次部署本地 IAP 连接器,请参阅为本地应用启用 IAP

准备工作

确保您已准备好使用以下各项进行部署:

  • 现有 GKE 集群
    • 该集群应设置为使用 VPC 原生(IP 别名)。它所在的 VPC 应该可以通过 VPC 中的路由(NAT 网关或其他网关)访问互联网。
    • 为了使 GKE 集群可以为单个集群中的多个 IAP 连接器实例提供服务,应将它们与为各个应用提供服务的 Pod 一起配置为自动扩缩。
  • 允许从 GKE 集群(节点/Pod)到后端/本地实例的流量的防火墙规则
  • Google 管理的 SSL 证书和静态外部 IP
  • 在本地客户端计算机上安装的 Helm(版本 2.0.0 或更高版本)软件包管理器
  • 在子网中配置了 Cloud NAT 以检索 Ambassador 映像
  • 增加全局负载平衡器的数量,以适应针对目标池和目标代理所述的 TLS 证书限制

使用 Helm 配置和部署

  1. 首先克隆此 GitHub 代码库

  2. 配置在克隆了代码库的 iap-connector/terraform-and-helm/iap-connector/helm/values 目录中找到的 Helm 图表 values_example.yaml

    此图表显示了如何通过两个 Ambassador 代理将两个应用部署到共享一个全局负载平衡器代理的集群。代理绑定了两个证书,每个应用各一个。可以自定义此示例文件来支持单个入站流量代理的限制。

    配置 YAML 文件后,将其另存为 values.yaml

  3. 初始化 Helm。

    helm init
    
  4. 授予 Helm 权限以安装到 GKE 集群中。

    kubectl create clusterrolebinding cluster-admin-binding --clusterrole cluster-admin
      --user system:serviceaccount:kube-system:default
    
  5. 安装 Helm 图表以创建全局负载平衡器,GKE 中的入站流量服务和 YAML 文件中定义的后端服务。

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

配置 HTTP 后端应用

默认情况下,Ambassador 随 HTTPS 一起部署到目标资源,但是您可能首选 HTTP 后端。如需将您的部署更改为 HTTP,请执行以下操作:

  1. 找到您要修改的服务。

    kubectl get services
    
  2. 通过复制上一个命令中的服务名称来修改该服务。

    kubectl edit service <serviceName>
    
  3. 找到以 service 开头的行,并将协议从 https 更改为 http,将端口号更改为 80

    service:http://example.service.internal:80
    
  4. 移除指定 TLS 的行。

    tls:true