外部Kubernetesクラスタへの接続エラー

外部Kubernetesクラスタへの接続エラー

kubeadmを使用してKubernetesクラスターをインストールしました。サーバー自体はすべて正常で、マスターノードとワーカーノードが表示されています。

--apiserver-cert-extra-sans=*.*.201.87

ローカルPCから別のネットワークに接続し、admin.confを~/.kubeにコピーするとエラーが発生します

E0125 13:47:12.606617 794306 proxy_server.go:147] Error while proxying request: x509: cannot validate certificate for *.*.201.87 because it doesn't contain any IP SANs

再度証明書をリクエストしてみましたが、うまくいきませんでした

答え1

文字通り を使用している場合*.*.201.87、これは間違いであり、適切な IP アドレスまたは DNS 名を使用する必要があります。

この例で実際の IP をマスクした場合は*、TLS ハンドシェイク中に提供される証明書を確認します。

openssl s_client -connect <host>:<port>
# save cert in cert.pem
openssl x509 -text -noout -in cert.pem 

の下にリストされているエントリを確認しますX509v3 Subject Alternative Name

答え2

あなたが投稿したエラー

x509: cannot validate certificate for ..201.87 because it doesn't contain any IP SANs

Kubernetes API サーバーによって提示された証明書に、クラスターにアクセスするために使用している IP アドレスと一致するために必要な IP SAN が含まれていないことを示します。

適切なIP SANを使用してKubernetes APIサーバーの証明書を再生成してみてください。kubeadm alpha phase certs all --apiserver-advertise-address=<your-IP\>これを実現するには、コマンドを使用できます。こちらを参照してください。リンク

また、KUBECONFIG環境変数があなたの場所に正しく設定されていることを確認してください管理者設定ファイル。このファイルには、Kubernetes API サーバーで認証するために必要な証明書とキー データが含まれている必要があります。

答え3

私の場合

export no_proxy=$no_proxy,11.62.201.87

関連情報