部署 cert manager
我们建议使用 cert manager 为 Webhook 服务器配置证书, 如果使用其他方法,将证书放在正确的位置,它们也会起作用。
您可以根据 the cert manager documentation 安装 cert manager。
Cert manager 还具有一个名为 CA injector 的组件, 该组件负责将 CA bundle 注入到 Mutating | ValidatingWebhookConfiguration 中。
为此,您需要在 Mutating | ValidatingWebhookConfiguration 对象中使用 key 为
certmanager.k8s.io/inject-ca-from
的 annotation,
annotation 的 value 应该以 <certificate-namespace>/<certificate-name>
的格式指向现有证书 CR 实例。
这是带有 Mutating | ValidatingWebhookConfiguration 对象的 kustomize 文件补丁。
# This patch add annotation to admission webhook config and
# the variables $(CERTIFICATE_NAMESPACE) and $(CERTIFICATE_NAME) will be substituted by kustomize.
apiVersion: admissionregistration.k8s.io/v1beta1
kind: MutatingWebhookConfiguration
metadata:
name: mutating-webhook-configuration
annotations:
certmanager.k8s.io/inject-ca-from: $(CERTIFICATE_NAMESPACE)/$(CERTIFICATE_NAME)
---
apiVersion: admissionregistration.k8s.io/v1beta1
kind: ValidatingWebhookConfiguration
metadata:
name: validating-webhook-configuration
annotations:
certmanager.k8s.io/inject-ca-from: $(CERTIFICATE_NAMESPACE)/$(CERTIFICATE_NAME)