使用让我们为 kubelet api 服务器加密证书

using letsencrypt cetificate for kubelet api server

我想为我的 kubernetes 集群使用由签名机构颁发的证书。

所以我首先尝试安装并正确配置控制器。

控制器将安装在稳定的 CoreOS (1185.3.0) 上。

kubeelet api-server 据我了解需要以下证书:

certificate-authority: ca.pem
client-certificate: apiserver.pem
client-key: apiserver-ke.pem

letsencrypt 使用 certbot 容器创建了以下证书:

cert = /etc/letsencrypt/live/coreos-2.tux-in.com/cert.pem
privkey = /etc/letsencrypt/live/coreos-2.tux-in.com/privkey.pem
chain = /etc/letsencrypt/live/coreos-2.tux-in.com/chain.pem
fullchain = /etc/letsencrypt/live/coreos-2.tux-in.com/fullchain.pem

所以 cert.pem 是客户端证书,privkey.pem 是客户端密钥, 我没有证书颁发机构,而且我有不知道如何处理的链式证书。

我使用带有 certbot docker 图像的 rkt 创建了证书,使用以下命令:

rkt --insecure-options=image --port 443-tcp:443 run  docker://deliverous/certbot \
  --volume letsencrypt-etc,kind=host,source=/opt/letsencrypt-etc \
  --mount volume=letsencrypt-etc,target=/etc/letsencrypt \
  --volume resolv-conf,kind=host,source=/etc/resolv.conf \
  --mount volume=resolv-conf,target=/etc/resolv.conf \
  --volume certbot-tls-certs,kind=host,source=/opt/certbot-tls-certs \
  --mount volume=certbot-tls-certs,target=/var/www/tls-certs \
  -- certonly -w /var/www/tls-certs -d coreos-2.tux-in.com \
  --email kfirufk@gmail.com --agree-tos --standalone --preferred-challenges tls-sni-01

所以..不知道如何从这里继续。

如能提供有关此问题的任何信息,我们将不胜感激。

谢谢

@MrE 说的对。

kubernetes 集群中的每个客户端都需要注册它的名称和 ip,我需要使用 alt-names...letsencrypt 不支持所有这些。

letsencrypt 是一个简单的证书生成,主要用于网络服务器,letsencrypt 甚至不支持或计划支持通配符。所以无论如何.. letsencrypt 不是我的情况的正确解决方案。

您可能想看看 cert-manager。它与描述如何从命名空间 Issuer 或集群范围 ClusterIssuer.

获取证书的 Certificate 对象一起使用