首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >k8s网络钩子自签名泛域证书

k8s网络钩子自签名泛域证书
EN

Stack Overflow用户
提问于 2021-12-24 12:02:42
回答 1查看 154关注 0票数 0

..svc. web钩子需要tls验证,正式文件表示服务器证书需要k8s。

但是,当我使用helm进行部署时,我可能不知道将在哪个名称空间中部署。svc_name一般不会改变,所以有什么方法可以匹配任何命名空间。比如..svc.

是否有适用于任意命名空间的方法实现?

我真的很感激你在这方面的帮助

k8s版本为1.18

附上本人自签证书的样本。

代码语言:javascript
复制
[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
EN

回答 1

Stack Overflow用户

发布于 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证书的最佳实践。也许其中的一些会对你有用,并能解决你的问题:

  • 对于helm -使用Certificator项目和Hooks它自动修补caBundle字段
  • 安装init容器以创建证书并向API服务器提供CA包
  • 使用证书管理器CA注入器生成证书并将它们注入WebhookConfiguration

您也可以使用设置带有web钩子位置的URL,在这里您不必使用caBundle

期望使用系统信任根验证TLS证书,因此不指定caBundle。

回答你的评论:

那么我只能使用多个DNS(1,2,3.)若要预置可能部署的名称空间,请执行以下操作。这会影响效率吗?

可能取决于您想要部署多少名称空间,但这肯定不是一个好的实践。

注释中的另一种解决方案(感谢@JWhy ):

您可以在可预测的位置(即特定名称空间中)创建另一个服务,并将该服务链接到不可预测名称空间中的实际服务。请参阅stackoverflow.com.com/a/44329470/763875

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70472703

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档