..svc. web钩子需要tls验证,正式文件表示服务器证书需要k8s。
但是,当我使用helm进行部署时,我可能不知道将在哪个名称空间中部署。svc_name一般不会改变,所以有什么方法可以匹配任何命名空间。比如..svc.
是否有适用于任意命名空间的方法实现?
我真的很感激你在这方面的帮助
k8s版本为1.18
附上本人自签证书的样本。
[req]
req_extensions = v3_req
distinguished_name = req_distinguished_name
prompt = no
[req_distinguished_name]
CN = webhook.kube-system.svc
[ v3_req ]
basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
extendedKeyUsage = clientAuth, serverAuth
subjectAltName = @alt_names
[alt_names]
DNS.1 = webhook.kube-system.svc发布于 2021-12-29 08:54:13
张贴社区wiki回答更好的能见度。可以自由地扩展它。
编辑:原始海报(@moluzhui)展示的解决方案:
目前,我在
chart/template中预先提供了chart/template,并通过.Files.Get编写了它。
如正式文件所述
注:使用
clientConfig.service时,服务器证书必须对<svc_name>.<svc_namespace>.svc有效。
通过使用服务和命名空间名称,需要名称空间名称(这是Kubernetes作品中的DNS的方式)。
但是,有一篇很好的文章介绍了为Kubernetes许可Webhooks - 管理Kubernetes录取Webhooks的TLS证书的5种方法管理TLS证书的最佳实践。也许其中的一些会对你有用,并能解决你的问题:
caBundle字段您也可以使用设置带有web钩子位置的URL,在这里您不必使用caBundle
期望使用系统信任根验证TLS证书,因此不指定caBundle。
回答你的评论:
那么我只能使用多个DNS(1,2,3.)若要预置可能部署的名称空间,请执行以下操作。这会影响效率吗?
可能取决于您想要部署多少名称空间,但这肯定不是一个好的实践。
注释中的另一种解决方案(感谢@JWhy ):
您可以在可预测的位置(即特定名称空间中)创建另一个服务,并将该服务链接到不可预测名称空间中的实际服务。请参阅stackoverflow.com.com/a/44329470/763875
https://stackoverflow.com/questions/70472703
复制相似问题