代码之家  ›  专栏  ›  技术社区  ›  Inbar Rose

使用googleiam进行GKE服务web访问

  •  2
  • Inbar Rose  · 技术社区  · 6 年前

    有没有一种方法可以配置一个公开集群web端点的服务,以便用户只需使用他们的google帐户登录就可以访问这个服务?

    例如,在测试服务时,我可以在Cloudshell中轻松地进行web预览,然后在浏览器中访问web应用程序。

    有没有一种方法可以将其配置为任何在我的组织中授权的用户都可以访问我的应用程序的web界面?

    (注:我问 same question on DevOps 但我觉得这个网站还没有达到应有的活跃程度,所以我也在这里问。)

    1 回复  |  直到 6 年前
        1
  •  2
  •   Inbar Rose    6 年前

    好吧,我设法让它完美地工作了。但它采取了一些步骤。我在这里包括清单,这是设置 IAP using an ingress kubectl apply -f secure-ingress.yaml 为了让一切都正常工作(只要你有所有的依赖项),然后你只需要配置你的 随你的便。


    secure-ingress.yaml

    # Configure IAP security using ingress automatically
    # requirements: kubernetes version at least 1.10.5-gke.3
    # requirements: service must respond with 200 at / endpoint (the healthcheck)
    # dependencies: need certificate secret my-secret-cert
    # dependencies: need oath-client secret my-secret-oath (with my.domain.com configured)
    # dependencies: need external IP address my-external-ip
    # dependencies: need domain my.domain.com to point to my-external-ip IP
    # dependencies: need an app (deployment/statefulset) my-app
    apiVersion: extensions/v1beta1
    kind: Ingress
    metadata:
      name: my-secure-ingress
      namespace: default
      annotations:
        kubernetes.io/ingress.class: "gce"
        kubernetes.io/ingress.allow-http: "false"
        kubernetes.io/ingress.global-static-ip-name: my-external-ip
    spec:
      tls:
      - secretName: my-secret-cert
      backend:
        serviceName: my-service-be-web
        servicePort: 1234
    ---
    kind: Service
    apiVersion: v1
    metadata:
      name: my-service-be-web
      namespace: default
      annotations:
        beta.cloud.google.com/backend-config:
          '{"default": "my-service-be-conf"}'
    spec:
      type: NodePort
      selector:
        app: my-app
      ports:
        - protocol: TCP
          port: 1234
          targetPort: 1234
          name: my-port-web
    ---
    apiVersion: cloud.google.com/v1beta1
    kind: BackendConfig
    metadata:
      name: my-service-be-conf
      namespace: default
    spec:
      iap:
        enabled: true
        oauthclientCredentials:
          secretName: my-secret-oath