2017-03-23 8 views
1

私は3つのkubeマスターと5つのエージェントノードを実行しています。ポッドの1つを配備すると、以下のメッセージで起動できません。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-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

雲あなたはあなたのkubernetesバージョン、主にkubeletとkubectlを提供していますか? – Crazykev

答えて

1

あなたは一台のマシン上で証明書を生成して、他の人に上書きコピー起動に失敗しました。あなたがしたことは正しいことです。

しかし、サーバー証明書を生成するときは、マシンのIPアドレスまたはホスト名を入力してください。

Hereは、これを実行するための素晴らしいチュートリアルです。それは公式のドキュメントからではなく、公式ドキュメントの信頼性を持っています。

0

surajdによると、apiserver証明書に必要なすべてのホスト名があることを確認してください。ちょうど確かめるためにサービスIPを含む。

certsをコピーするときにマスターが既に実行されていますか?トークンを削除/再作成して、それらをリフレッシュしてみてください。

また、すべてのマスターが同じcaを持つ必要があるため、すべてを生成するには1 caだけを使用してください。

多分make-ca-cert.shスクリプトを共有していますので、私は一見できます。

関連する問題