Kubernetes 更改证书密码

el *_*00b 2 kubernetes kubeadm kube-apiserver

我一直在仔细研究与 kubeadm 相关的链接,尝试更改 Kubernetes 集群证书上的密码。问题是我需要禁用 DES/3DES,这样该命令就会失败:

openssl s_client -connect IP:2379 -cipher "DES:3DES" -tls1_2
Run Code Online (Sandbox Code Playgroud)

到目前为止我浏览过的一些链接(如果我把它们全部列出来,这篇文章会太长):

我希望更改kube-apiserver配置以使用这些标志(在/etc/kubernetes/manifests/kube-apiserver.yaml文件中)会有所帮助,但事实并非如此(请原谅拼写错误,我无法从我必须使用的客户端中复制/粘贴):

...
spec:
  containers:
  - command:
    - kube-apiserver
    - ...
    - --tls-cipher-suites=TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
    - --tls-min-version=VersionTLS12
    image: k8s.gcr.io/kube-apiserver:v1.18.6
...
Run Code Online (Sandbox Code Playgroud)

/etc/kubernetes/pki我可以按照这些指南手动重新生成所有证书,但我希望坚持使用 Kuberneteskubeadm或其他 Kubernetes 提供的工具来自动处理它。我找不到任何关于手动生成每个文件的文档,这些文件是为完全不熟悉管理的人设置的。

感谢帮助、链接、建议等!不幸的是,在完成此操作之前,我不允许使用集群,甚至不能向人们演示功能。

Chr*_*ris 7

在 Ubuntu 16.04 上使用 kubeadm 设置的普通 kubernetes 1.18.3 安装中,我们解决了以下问题:

kubelets(端口 10250):在文件中/var/lib/kubelet/config.yaml添加以下内容:

tlsCipherSuites: [TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305,TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_128_GCM_SHA256,TLS_RSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA]
Run Code Online (Sandbox Code Playgroud)

通过以下方式重新启动 kubelet.servicesystemctl restart kubelet.service

kube-api-server(端口 6443):在 File 中/etc/kubernetes/manifests/kube-apiserver.yaml添加一个附加数组条目spec.containers.command

- --tls-cipher-suites=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
Run Code Online (Sandbox Code Playgroud)

如有必要,请删除命名空间 kube-system 中的 pod kube-apiserver。

编辑:不要/etc/kubernetes/manifests/kube-apiserver.yaml在同一目录中创建例如备份文件。kube-api-server 也将应用此备份文件。