web-dev-qa-db-ja.com

kubectlはサーバーに接続できません:x509:不明な機関によって署名された証明書

kubectl one one machine(windows)を実行するとエラーが発生します

k8sクラスターはCentOs 7 kubernetesクラスター1.7マスター、ワーカーで実行されています

これが私の.kube\configです


apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: REDACTED
    server: https://10.10.12.7:6443
  name: kubernetes
contexts:
- context:
    cluster: kubernetes
    user: system:node:localhost.localdomain
  name: system:node:localhost.localdomain@kubernetes
current-context: system:node:localhost.localdomain@kubernetes
kind: Config
preferences: {}
users:
- name: system:node:localhost.localdomain
  user:
    client-certificate-data: REDACTED
    client-key-data: REDACTED
  

クラスターは、pkiディレクトリのデフォルトの証明書でkubeadmを使用して構築されます

kubectlはサーバーに接続できません:x509:不明な機関によって署名された証明書

11
bherto39

私はただ共有したい、申し訳ありませんが、これが原因であることに気付いたので、これを以前に提供できませんでした

マスターノードでkubectlプロキシを実行しています

kubectl proxy --address 0.0.0.0 --accept-hosts '.*'

私はこれを止めて、エラーがなくなったことを確認しました。

私は今できる

 kubectl get nodes 
 NAME STATUS AGE VERSION 
 centos-k8s2 Ready 3d v1.7.5 
 localhost.localdomain Ready 3d v1.7.5 

これがこのシナリオにつまずいた人の助けになることを願っています

2
bherto39

私の場合、私はこの問題を解決して、kubelet構成を自宅のkube構成にコピーしました

cat /etc/kubernetes/kubelet.conf>〜/ .kube/config

誰にも役立つ場合のもう1つのソリューション:

私のシナリオ:

  • windows 10を使用して
  • Docker Desktop UI 2.1.0.1を介してインストールされたKubernetes
  • インストーラーは~/.kube/configに構成ファイルを作成しました
  • server~/.kube/configの値はhttps://kubernetes.docker.internal:6443です
  • プロキシを使用する

問題:kubectlこのエンドポイントへのコマンドはプロキシを通過していました。プロキシhtmlエラーページを表示するkubectl --insecure-skip-tls-verify cluster-info dumpを実行した後、それを見つけました。

修正:このURLがプロキシを通過しないことを確認するだけです。私の場合、bashではexport no_proxy=$no_proxy,*.docker.internalを使用しました

3
sapeish

実行:

gcloud container clusters get-credentials standard-cluster-1 --zone us-central1-a --project devops1-218400

ここに devops1-218400は私のプロジェクト名です。プロジェクト名に置き換えてください。

1
stalin

ルートユーザーとして$ kubectl get nodesを実行しているときに同じエラーが発生しました。 kubelet.confを環境変数にエクスポートすることで修正しました。

$ export KUBECONFIG=/etc/kubernetes/kubelet.conf
$ kubectl get nodes
0
Lukasz Dynowski

エラーが発生した場合は、証明書を含むすべてのkubecfgをエクスポートする必要があります。 kops export kubecfg "your cluster-nameおよびexport KOPS_STATE_STORE=s3://"paste your S3 store"

これで、クラスターのリソースにアクセスして表示できるようになります。

0
JohnBegood

GCPについて

チェック:gcloudバージョン

-localMacOS#gcloudバージョン

実行:--- localMacOS#gcloud container clusters get-credentials 'clusterName'\--zone = us-'zoneName '

コンソールからclusterNameとzoneNameを取得します-ここ: https://console.cloud.google.com/kubernetes/list

ref:GCP #Kubernetesでの.x509 @market placeデプロイメント

0
Michael Wiley