改变 Webhook 不会调用端点,因为证书由未知机构签名

cog*_*sum 5 ssl certificate-authority webhooks pem kubernetes

我正在开发一个带有kind的变异 webhook,据我了解,API 端点应该是. API服务器的证书和密钥应该由集群本身的CA签名,以避免自签名证书的问题。为此,建议采取以下步骤:https

  1. 创建密钥 -openssl genrsa -out app.key 2048
  2. 创建企业社会责任 -openssl req -new -key app.key -subj "/CN=${CSR_NAME}" -out app.csr -config csr.conf
  3. 在 kubernetes 中创建 CSR 对象 -kubectl create -f csr.yaml
  4. 批准企业社会责任 -kubectl certificate approve csr_name
  5. 提取质子交换膜 -kubectl get csr app.csr -o jsonpath='{.status.certificate}' | openssl base64 -d -A -out app.pem

注释
1.csr.conf包含成功设置 CSR 的详细信息。
2. 是csr.yaml为 kuberenetes 类型编写的CertificateSigningRequest
3. 的csr_name定义在 中CertificateSigningRequest
4.spec.request输入csr.yaml设置为cat app.csr | base64 | tr -d '\n'。5.app.pemapp.key用于设置https终点。

终点肯定是可以到达的,但会出现错误:

Internal error occurred: failed calling webhook "com.me.webhooks.demo": Post https://webhook.sidecars.svc:443/mutate?timeout=10s: x509: certificate signed by unknown authority
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个certificate signed by unknown authority问题?

参考文献:
1.编写一个非常基本的 kubernetes mutating adjustment webhook
2.深入研究 Kubernetes MutatingAdmissionWebhook

cod*_*ger 4

它不需要使用集群的 CA 根进行签名。它只需要匹配 webhook 配置中的 CA 捆绑包。