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

时间:2017-03-23 02:01:40

标签: kubernetes

我有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

2 个答案:

答案 0 :(得分:1)

您在一台计算机上生成证书,然后复制到其他计算机上。你所做的是正确的。

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

Here是一个很棒的教程,你可以遵循这样做。它不是来自官方文档,而是具有官方文档的可信度。

答案 1 :(得分:0)

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

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

同时确保你只使用1 ca来生成它们,因为所有主人都需要具有相同的ca!

也许分享一下make-ca-cert.sh脚本,以便我看一下。