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