Yar*_*atz 5 pki amazon-web-services coreos kubernetes kubectl
我有一个coreos kubernetes集群,我开始遵循这篇文章:
TLDR;
> kube-aws init
> kube-aws render
> kube-aws up
Run Code Online (Sandbox Code Playgroud)
一切都很好,我在AWS上有一个kubernetes coreos集群.在文章中有一个警告说:
生产注意:kube-aws生成的TLS密钥和证书不应用于部署生产Kubernetes集群.每个组件证书仅在90天内有效,而CA有效期为365天.如果部署生产Kubernetes集群,请首先考虑独立于此工具建立PKI.
所以我想替换默认证书,所以我遵循以下文章:
TLDR;
我在kubectl和群集之间收到通信错误,抱怨证书
无法连接到服务器:x509:由未知权限签名的证书
我还尝试使用签名证书kubectl指向群集DNS,我为群集设置了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
Run Code Online (Sandbox Code Playgroud)
编辑:
我的所有证书都是由ca2.pem签名的,我也通过运行来验证这个事实:
openssl verify -CAfile ca2.pem <certificate-name>
Run Code Online (Sandbox Code Playgroud)
编辑:
我认为错误的原因是:当我在控制器和工作人员中切换密钥时,似乎cloud-config正在用旧密钥覆盖我的新密钥.如何更换密钥并更改cloud-config以适应我的更改?
对我有用的替代解决方案是启动一个新集群,并最初使用自定义证书,而无需依赖默认的临时凭据。
按照您使用的相同教程,我进行了以下更改:
> kube-aws init
> kube-aws render
Run Code Online (Sandbox Code Playgroud)
之前kube-aws up
,我按照教程创建了证书。本教程的唯一问题是它旨在为现有集群创建新证书。因此,需要进行以下更改:
此行:$ openssl req -x509 -new -nodes -key ca-key.pem -days 10000 -out ca.pem -subj "/CN=kube-ca"
需要替换为:$ openssl req -x509 -new -nodes -key ca-key.pem -days 10000 -out ca.pem
在 openssl.cnf 文件中,删除定义主控主机和负载均衡器 IP 的行,因为我们还不知道它们是什么。最终的 openssl.cnf 应如下所示:
openssl.cnf
[req]
...
[req_distinguished_name]
[ v3_req ]
...
[alt_names]
DNS.1 = kubernetes
DNS.2 = kubernetes.default
DNS.3 = kubernetes.default.svc
DNS.4 = kubernetes.default.svc.cluster.local
DNS.5 = mydomain.net
IP.1 = ${K8S_SERVICE_IP} # 10.3.0.1
IP.2 = ${MASTER_IP} # 10.0.0.50
Run Code Online (Sandbox Code Playgroud)
我还为所有工作节点使用了相同的工作证书。
证书到位后,输入kube-aws up
。
我希望这可以帮助您起步
归档时间: |
|
查看次数: |
1197 次 |
最近记录: |