
kube-webhook-certgen是一个用于Kubernetes环境的自签名证书生成与Webhook配置修补工具。它能够生成CA(证书颁发机构)和叶子证书(有效期长达100年),并自动修补Kubernetes准入Webhook(包括ValidatingWebhookConfiguration和MutatingWebhookConfiguration)的caBundle字段,将生成的CA证书注入其中。此外,该工具还支持修补Webhook的failurePolicy设置,特别适用于Helm图表在部署过程中同时配置资源和Webhook的场景,通常作为Kubernetes Job通过pre-install和post-install钩子执行。
caBundle字段failurePolicy(可选值:Ignore或Fail)安全注意事项:该工具可能不适用于所有安全环境。如需更完善的证书管理方案,建议考虑https://github.com/jetstack/cert-manager%E7%AD%89%E6%9B%BF%E4%BB%A3%E6%96%B9%E6%A1%88%E3%80%82
kube-webhook-certgen [flags] kube-webhook-certgen [command] 可用命令: create 生成CA和服务器证书+密钥,并存储到指定命名空间的Secret中 help 帮助信息 patch 使用Secret中的CA证书修补Webhook配置 version 打印CLI版本信息 全局标志: --kubeconfig string kubeconfig文件路径 (例如: ~/.kube/kind-config-kind) --log-format string 日志格式: text|json (默认: "text") --log-level string 日志级别: panic|fatal|error|warn|info|debug|trace (默认: "info") -h, --help 帮助信息
生成CA和服务器证书,并存储到指定的Kubernetes Secret中。
用法: kube-webhook-certgen create [flags] 标志: --cert-name string Secret中证书文件的名称 (默认: "cert") -h, --help 帮助信息 --host string 生成证书的主机名和IP,逗号分隔 --key-name string Secret中密钥文件的名称 (默认: "key") --namespace string 存储证书的Secret所在命名空间 --secret-name string 存储证书的Secret名称 全局标志: --kubeconfig string kubeconfig文件路径 --log-format string 日志格式: text|json (默认: "json") --log-level string 日志级别 (默认: "info")
使用指定Secret中的CA证书修补Webhook配置的caBundle字段。
用法: kube-webhook-certgen patch [flags] 标志: -h, --help 帮助信息 --namespace string 读取CA证书的Secret所在命名空间 --patch-failure-policy string 修补Webhook的failurePolicy (可选值: Ignore或Fail) --patch-mutating 是否修补MutatingWebhookConfiguration (默认: true) --patch-validating 是否修补ValidatingWebhookConfiguration (默认: true) --secret-name string 存储CA证书的Secret名称 --webhook-name string 要更新的Webhook配置名称 全局标志: --kubeconfig string kubeconfig文件路径 --log-format string 日志格式: text|json (默认: "text") --log-level string 日志级别 (默认: "info")
yamlapiVersion: batch/v1 kind: Job metadata: name: generate-webhook-cert namespace: default spec: template: spec: containers: - name: certgen image: jkroepke/kube-webhook-certgen:latest command: ["kube-webhook-certgen", "create"] args: - --host=my-webhook.default.svc,my-webhook.default.svc.cluster.local - --namespace=default - --secret-name=webhook-tls restartPolicy: Never backoffLimit: 1
yamlapiVersion: batch/v1 kind: Job metadata: name: patch-webhook-config namespace: default spec: template: spec: containers: - name: certgen image: jkroepke/kube-webhook-certgen:latest command: ["kube-webhook-certgen", "patch"] args: - --webhook-name=my-webhook-config - --namespace=default - --secret-name=webhook-tls - --patch-failure-policy=Fail restartPolicy: Never backoffLimit: 1
bash# 生成证书并存储到Secret(需提前配置kubeconfig) docker run --rm -v ~/.kube/config:/kubeconfig jkroepke/kube-webhook-certgen:latest \ create --kubeconfig=/kubeconfig \ --host=my-webhook.default.svc \ --namespace=default \ --secret-name=webhook-tls # 修补Webhook配置 docker run --rm -v ~/.kube/config:/kubeconfig jkroepke/kube-webhook-certgen:latest \ patch --kubeconfig=/kubeconfig \ --webhook-name=my-webhook-config \ --namespace=default \ --secret-name=webhook-tls




探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务