我有3个kube主站运行和5个代理节点。部署其中一个pod时,无法启动以下消息
2017-03-23T01:47:25.164033000Z I0323 01:47:25.160242 1 main.go:41] Starting NGINX Ingress controller Version 0.7.0
2017-03-23T01:47:25.165148000Z F0323 01:47:25.164609 1 main.go:55] Failed to create client: open /var/run/secrets/kubernetes.io/serviceaccount/token: no such file or directory.
如何为3位主人生成证书?我尝试了其中一个主服务器并将文件复制到其他2台服务器,但kube-apiserver无法启动
./make-ca-cert.sh master1_ip IP:master2_ip ,IP:master3_ip,DNS:kubernetes,DNS:kubernetes.default,DNS:kubernetes.default.svc,DNS:kubernetes.default.svc.cluster.local
/etc/kubernenets/apiserver config
KUBE_API_ARGS="--client-ca-file=/srv/kubernetes/ca.crt --tls-cert- file=/srv/kubernetes/server.cert --tls-private-key- file=/srv/kubernetes/server.key"
/etc/kubernetes/controller-manager
KUBE_CONTROLLER_MANAGER_ARGS="--root-ca-file=/srv/kubernetes/ca.crt -- service-account-private-key-file=/srv/kubernetes/server.key"
/srv/kubernetes files
kubernetes]# ls -ltr
total 28
-rw-rw----. 1 root root 1216 Mar 21 15:12 ca.crt
-rw-rw----. 1 root root 1704 Mar 21 15:12 server.key
-rw-rw----. 1 root root 4870 Mar 21 15:12 server.cert
-rw-------. 1 root root 1704 Mar 21 15:12 kubecfg.key
-rw-------. 1 root root 4466 Mar 21 15:12 kubecfg.crt
# kubectl get serviceaccounts
NAME SECRETS AGE
default 0 11d
答案 0 :(得分:1)
您在一台计算机上生成证书,然后复制到其他计算机上。你所做的是正确的。
但是当你生成服务器证书时,请确保你输入了机器的IP地址或主机名。
Here是一个很棒的教程,你可以遵循这样做。它不是来自官方文档,而是具有官方文档的可信度。
答案 1 :(得分:0)
正如surajd所说,请确保您的apiserver证书中包含所有必需的主机名。包括服务ip只是为了确保。
复制证书时,您的主人是否已经在运行?尝试通过删除/重新创建令牌来刷新令牌。
同时确保你只使用1 ca来生成它们,因为所有主人都需要具有相同的ca!
也许分享一下make-ca-cert.sh脚本,以便我看一下。