我有一个 coreos kubernetes 集群,我从这篇文章开始:
TLDR;
> kube-aws init
> kube-aws render
> kube-aws up
一切正常,我在 AWS 上有一个 kubernetes coreos 集群。在文章中有一个警告说:
生产注意事项:不应使用 kube-aws 生成的 TLS 密钥和证书来部署生产 Kubernetes 集群。每个组件证书的有效期仅为 90 天,而 CA 的有效期为 365 天。如果部署生产 Kubernetes 集群,请考虑先独立于该工具建立 PKI。
所以我想替换默认证书,所以我按照以下文章:
TLDR;
- 创建了以下自签名证书:ca.pem、ca-key.pem
- 为控制器创建了证书:apiserver.pem、apiserver-key.pem
- 将控制器中的证书替换为上面创建的证书,然后重新启动控制器
- 创建了工作人员证书并替换了工作人员中的证书并重新启动了它们
- 配置 kubectl 以使用我创建的新证书并配置上下文和用户
我在 kubectl 和集群之间遇到通信错误,抱怨证书
无法连接到服务器:x509:证书由未知机构签名
我还尝试使用指向集群 DNS 的 kubectl 签名证书,我为集群设置了 DNS。
如何让 kubectl 与我的集群通信?
提前致谢
编辑:
我的~/.kube/config看起来像这样:
apiVersion: v1
clusters:
- cluster:
certificate-authority: /Users/Yariv/Development/workspace/bugeez/bugeez-kubernetes/credentials/ca2.pem
server: https://kubernetes.bugeez.io
name: bugeez
contexts:
- context:
cluster: bugeez
user: bugeez-admin
name: bugeez-system
current-context: bugeez-system
kind: Config
preferences: {}
users:
- name: bugeez-admin
user:
client-certificate: /Users/Yariv/Development/workspace/bugeez/bugeez-kubernetes/credentials/admin2.pem
client-key: /Users/Yariv/Development/workspace/bugeez/bugeez-kubernetes/credentials/admin-key2.pem
编辑:
我所有的证书都由 ca2.pem 签名,我还通过运行验证了这一事实:
openssl verify -CAfile ca2.pem <certificate-name>
编辑:
我认为错误的原因是:当我在控制器和工作人员中切换键时,似乎 cloud-config 正在用旧键覆盖我的新键。如何更换密钥并更改 cloud-config 以适应我的更改?