Kubectl не может подключиться к серверу: x509: сертификат, подписанный неизвестным органом
Я получаю сообщение об ошибке при запуске kubectl one one machine (windows)
кластер k8s работает на CentOs 7 kubernetes cluster 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:[email protected]
current-context: system:node:[email protected]
kind: Config
preferences: {}
users:
- name: system:node:localhost.localdomain
user:
client-certificate-data: REDACTED
client-key-data: REDACTED
кластер построен с использованием kubeadm с сертификатами по умолчанию в каталоге pki
kubectl не может подключиться к серверу: x509: сертификат, подписанный неизвестным пользователем
Ответы
Ответ 1
Я просто хочу поделиться, извините, что не смог предоставить это раньше, поскольку я просто понял, что это вызывает
поэтому на главном node мы запускаем прокси-сервер 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
В моем случае я решил эту проблему, скопировав конфигурацию kubelet в мою домашнюю конфигурацию kube
cat/etc/kubernetes/kubelet.conf> ~/.kube/config
Ответ 3
Еще одно решение на случай, если оно кому-нибудь поможет:
Мой сценарий:
- с помощью Windows 10
- Kubernetes установлен через Docker Desktop ui 2.1.0.1
- установщик создал файл конфигурации в
~/.kube/config
- значение в
~/.kube/config
для server
равно https://kubernetes.docker.internal:6443
- используя прокси
Проблема: команды kubectl
для этой конечной точки проходили через прокси, я понял это после запуска kubectl --insecure-skip-tls-verify cluster-info dump
, который отображал страницу ошибки прокси html.
Исправление: просто убедившись, что этот URL не проходит через прокси, в моем случае в bash я использовал export no_proxy=$no_proxy,*.docker.internal
Ответ 4
Выполнить:
gcloud container clusters get-credentials standard-cluster-1 --zone us-central1-a --project devops1-218400
здесь devops1-218400
- это название моего проекта. Замените его названием вашего проекта.
Ответ 5
В случае ошибки вы должны экспортировать все kubecfg, содержащие сертификаты. kops export kubecfg "your cluster-name
и export KOPS_STATE_STORE=s3://"paste your S3 store"
.
Теперь вы должны иметь доступ к ресурсам своего кластера и просматривать их.
Ответ 6
На GCP
проверьте: gcloud версия
- localMacOS # gcloud версия
Бегать:
--- localMacOS # gcloud контейнерные кластеры get-credentials 'clusterName'\--zone = us- 'zoneName'
Получите clusterName и zoneName из консоли - здесь: https://console.cloud.google.com/kubernetes/list?
ref:.x509 @размещение на рынке в GCP #Kubernetes
Ответ 7
Я получил ту же ошибку при запуске $ kubectl get nodes
от имени пользователя root. Я исправил это, экспортировав kubelet.conf
в переменную окружения.
$ export KUBECONFIG=/etc/kubernetes/kubelet.conf
$ kubectl get nodes