k8默认服务帐户令牌未找到

问题描述:

我有3个kube master正在运行和5个代理节点。在部署其中一个吊舱时,无法启动以下消息k8默认服务帐户令牌未找到

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-API服务器未能启动

./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

云你提供你的kubernetes版本,主要是kubelet和kubectl? – Crazykev

您生成一个机器上的证书,然后复制到其他人。你所做的是正确的。

但是,当您生成服务器证书时,请确保您输入了机器的IP地址或主机名。

Here是一个很棒的教程,你可以按照这样做。这不是来自官方文档,而是官方文档的可信度。

正如surajd所说,确保您的apiserver证书中包含所有必需的主机名。包括服务ip只是为了确保。

当您复制证书时,您的主人是否已经在运行?尝试通过删除/重新创建令牌来刷新令牌。

此外,请确保您只使用1 ca来生成它们,因为所有主人都需要拥有相同的ca!

也许分享make-ca-cert.sh脚本,这样我可以看看。