2017-09-22 28 views
1

私のワークステーションから私のk8sマスターに接続しようとしています。 LAN上でマスターからアクセスできますが、ワークステーションからはアクセスできません。エラーメッセージは次のとおりです。kubernetesマスターの無効なx509証明書

% kubectl --context=employee-context get pods 
Unable to connect to the server: x509: certificate is valid for 10.96.0.1, 10.161.233.80, not 114.215.201.87 

証明書に114.215.201.87を追加するにはどうすればよいですか?古いクラスタca.crtを削除して再作成し、クラスタ全体を再起動してからクライアント証明書を辞退する必要がありますか?私はkubeadmを使ってクラスタを展開しましたが、これらの手順を手動で行う方法がわかりません。

答えて

1

1つの方法は、kubectlに証明書の検証を望まないと言うことです。これは明らかにセキュリティ上の問題をもたらしますが、私はあなただけあなたが行くので、ここでテストしていると思います:

kubectl --insecure-skip-tls-verify --context=employee-context get pods 

より良いオプションは、証明書を修正することです。あなたがマスターを含め、すべてのノード上でkubeadm resetを実行してクラスタを再初期化してから

kubeadm init --apiserver-cert-extra-sans=114.215.201.87 

をすれば、最も簡単なことはすべてを拭くことなく、その証明書を修正することも可能ですが、それは少しトリッキーです。 rootとしてマスター上でこのような何かを実行します。

rm /etc/kubernetes/pki/apiserver.* 
kubeadm alpha phase certs selfsign --apiserver-advertise-address=0.0.0.0 --cert-altnames=10.161.233.80 --cert-altnames=114.215.201.87 
docker rm `docker ps -q -f 'name=k8s_kube-apiserver*'` 
systemctl restart kubelet 
2

このコマンドは、新規kubernetes 1.8のために:

rm /etc/kubernetes/pki/apiserver.* 
kubeadm alpha phase certs all --apiserver-advertise-address=0.0.0.0 --apiserver-cert-extra-sans=10.161.233.80,114.215.201.87 
docker rm -f `docker ps -q -f 'name=k8s_kube-apiserver*'` 
systemctl restart kubelet 

また次回にこのような回避の問題を--apiserver-cert-extra-sansにDNS名を追加した方がよいwhould。

+0

あなたは神です! –

関連する問題