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:不明な機関によって署名された証明書
私はただ共有したい、申し訳ありませんが、これが原因であることに気付いたので、これを以前に提供できませんでした
マスターノードで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
これがこのシナリオにつまずいた人の助けになることを願っています
私の場合、私はこの問題を解決して、kubelet構成を自宅のkube構成にコピーしました
cat /etc/kubernetes/kubelet.conf>〜/ .kube/config
誰にも役立つ場合のもう1つのソリューション:
私のシナリオ:
~/.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
を使用しました
実行:
gcloud container clusters get-credentials standard-cluster-1 --zone us-central1-a --project devops1-218400
ここに devops1-218400
は私のプロジェクト名です。プロジェクト名に置き換えてください。
ルートユーザーとして$ kubectl get nodes
を実行しているときに同じエラーが発生しました。 kubelet.conf
を環境変数にエクスポートすることで修正しました。
$ export KUBECONFIG=/etc/kubernetes/kubelet.conf
$ kubectl get nodes
エラーが発生した場合は、証明書を含むすべてのkubecfgをエクスポートする必要があります。 kops export kubecfg "your cluster-name
およびexport KOPS_STATE_STORE=s3://"paste your S3 store"
。
これで、クラスターのリソースにアクセスして表示できるようになります。
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デプロイメント