【问题标题】:Setting up jenkins on GKE with tls-supported ingress使用支持 tls 的入口在 GKE 上设置 jenkins
【发布时间】:2020-04-30 02:11:28
【问题描述】:

我正在 GKE 上安装 jenkins

我想使用ingress(以避免LoadBalancer),但我也希望它启用 TLS。

Hereingress - 相关的values

  ingress:
    enabled: false
    # For Kubernetes v1.14+, use 'networking.k8s.io/v1beta1'
    apiVersion: "extensions/v1beta1"
    labels: {}
    annotations: {}
    # kubernetes.io/ingress.class: nginx
    # kubernetes.io/tls-acme: "true"
    # Set this path to jenkinsUriPrefix above or use annotations to rewrite path
    # path: "/jenkins"
    # configures the hostname e.g. jenkins.example.com
    hostName:
    tls:
    # - secretName: jenkins.cluster.local
    #   hosts:
    #     - jenkins.cluster.local

假设我已经有一个CloudDNS(可路由到my-network.mydomain.net)并且我希望通过jenkins 访问jenkins.my-network.mydomain.net,我应该如何配置上述值?

values.ingress.tls.secretName 有什么用处?

如果我启用tls,相应证书的颁发机构是什么?这是否由 GCP 自动处理?

【问题讨论】:

    标签: jenkins kubernetes google-kubernetes-engine kubernetes-ingress


    【解决方案1】:

    您将设置的入口将需要一个负载平衡器。此负载均衡器将从客户端接收流量并将其转发到入口控制器(gke 入口、nginx 等)。因此,在这种情况下,您实际上并没有完全避免使用负载均衡器。

    如果您使用 LoadBalancer 类型的 kubernetes 服务为外部客户端提供服务,则入口用于避免以指数方式创建负载平衡器。在您的情况下,jenkins 主服务而不是直接通过负载平衡器公开,您可以选择入口以避免更多而不是一个负载均衡器的创建。

    values.ingress.tls.secretName 有什么用处?

    它告诉 Ingress 控制器使用 TLS 保护从客户端到负载均衡器的通道。您需要确保您创建的 TLS 机密来自包含通用名称 (CN) 的证书,也称为 jenkins.cluster.local 的完全限定域名 (FQDN)。

    您还需要创建一个名为 jenkins.cluster.local 的密钥

    apiVersion: v1
    kind: Secret
    metadata:
      name: jenkins.cluster.local
      namespace: default
    data:
      tls.crt: base64 encoded cert
      tls.key: base64 encoded key
    type: kubernetes.io/tls
    

    如果我启用了 tls,那么 对应的证书?这是否由 GCP 自动处理?

    GCP 不会自动处理它。从official docs 检查提供 SSL 证书的选项部分 在所有 3 个选项中,我认为您需要遵循自我管理证书作为秘密资源并提供您自己的 SSL 证书并创建一个秘密来保存它。然后,您可以参考 Ingress 规范中的 Secret 来创建使用该证书的 HTTP(S) 负载均衡器。有关在 Secrets 中使用证书的详细信息,请参阅 instructions

    【讨论】:

    • 这就是我最初的想法。但是官方values.yaml的这条评论让我很困惑:github.com/helm/charts/blob/master/stable/jenkins/…
    • 没错..如果你有入口控制器,那么你应该为 Jenkins 使用集群 ip,但对于入口控制器,你需要一个负载均衡器。
    猜你喜欢
    • 2019-06-09
    • 2020-09-08
    • 1970-01-01
    • 1970-01-01
    • 2019-09-23
    • 1970-01-01
    • 1970-01-01
    • 2022-07-29
    • 1970-01-01
    相关资源
    最近更新 更多