使用tls支持的入口在GKE上设置jenkins
我正在GKE上安装使用tls支持的入口在GKE上设置jenkins,jenkins,kubernetes,google-kubernetes-engine,kubernetes-ingress,Jenkins,Kubernetes,Google Kubernetes Engine,Kubernetes Ingress,我正在GKE上安装jenkins 我想使用入口(以避免负载平衡器),但我也希望它启用TLS 入口是否与值相关: ingress: enabled: false # For Kubernetes v1.14+, use 'networking.k8s.io/v1beta1' apiVersion: "extensions/v1beta1" labels: {} annotations: {} # kubernetes.io/ingress.cla
jenkins
我想使用入口
(以避免负载平衡器
),但我也希望它启用TLS
入口是否与值相关
:
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.my network.mydomain.net
访问jenkins
,我应该如何配置上述值
values.ingres.tls.secretName
的用处是什么
如果我启用了tls
,那么相应证书的颁发机构是什么?这是否由GCP自动处理?您将设置的入口将需要一个负载平衡器。该负载平衡器将接收来自客户端的流量,并将其转发给入口控制器(gke入口、nginx等)。因此,在这种情况下,您并没有完全避免使用loadbalancer
如果您使用LoadBalancer类型的kubernetes服务为外部客户端提供服务,则入口用于避免以指数方式创建负载平衡器。在您的情况下,jenkins主服务而不是直接通过负载平衡器公开,您可以选择入口以避免创建多个负载平衡器
values.ingres.tls.secretName的用途是什么
它告诉入口控制器使用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自动处理的。检查提供SSL证书的选项部分
在所有3个选项中,我认为您需要遵循自我管理的证书作为秘密资源,并提供您自己的SSL证书,并创建一个秘密来保存它。然后,您可以引用入口规范中的秘密来创建使用该证书的HTTP(S)负载平衡器。有关更多信息,请参阅有关在机密中使用证书的说明。这是我最初的想法。但是官方values.yaml
中的这一评论让我困惑:这是正确的。如果您有ingress controller,那么您应该为Jenkins使用集群ip,但对于ingress controller,您将需要一个负载平衡器。