1

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

openssl s_client -connect IP:2379 -cipher "DES:3DES" -tls1_2

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

我希望更改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
...

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

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

4

1 回答 1

2

在使用 kubeadm 安装在 Ubuntu 16.04 上的 vanilla 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]

通过重启 kubelet.servicesystemctl restart kubelet.service

kube-api-server(端口 6443):在文件中/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

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

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

于 2020-07-28T12:35:38.857 回答