更新 webhook 证书
概述
Bonree Operator 使用 webhook 证书来确保 Kubernetes 环境中服务注入的安全性。这些证书包括 CA 证书和服务端证书,用于在 Kubernetes API Server 和 Bonree Webhook 服务之间建立安全的 HTTPS 通信。
通常情况下,证书会自动管理并定期更新,但在某些特定场景下,您可能需要手动更新证书,例如:
- 证书过期且自动更新失败时
- 安全策略要求定期手动更新证书时
- 使用
kubernetes-webhook-only.yaml部署且部署在非bonree-agent命名空间时(不支持自动更新证书) - Operator 无权限修改
MutatingWebhookConfiguration时
本文档将详细介绍证书的构成、过期策略以及如何手动更新证书。
Webhook 证书构成
CA 证书(caBundle)
存储在 MutatingWebhookConfiguration 的 clientConfig.caBundle 字段中,用于 Kubernetes ApiServer 在通过 Service 回调 Webhook 服务时校验证书并签名 HTTPS 请求。
apiVersion: admissionregistration.k8s.io/v1
kind: MutatingWebhookConfiguration
webhooks:
- admissionReviewVersions:
- v1beta1
- v1
clientConfig:
caBundle: {CABUNDLE}
service:
name: bonree-webhook
namespace: bonree-agent
path: /inject
服务端证书与私钥(tls.crt、tls.key)
用于 bonree-webhook Deployment 校验 Mutating 请求的合法性,存储于 Secret bonree-webhook-certs 中:
apiVersion: v1
kind: Secret
metadata:
name: bonree-webhook-certs
namespace: bonree-agent
type: Opaque
data:
tls.crt: {tls.crt}
tls.key: {tls.key}
证书过期策略
根据权限的不同,分以下2种场景。