kubectl get cs prompt Ошибка с сервера (запрещено) - PullRequest
0 голосов
/ 06 июля 2018

При запуске kubectl get cs на сентос 7 я получил ниже сообщение об ошибке.

No resources found.
Error from server (Forbidden): componentstatuses is forbidden: 
User "system:node:<server-name>" cannot list componentstatuses at the cluster scope

Я могу подтвердить, что сервер API работает kubectl cluster-info

Kubernetes master is running at https://<server-IP>:6443
KubeDNS is running at https://<server-IP>:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy

Также у меня ниже в ~/.bash_profile

export http_proxy=http://<proxy-server-IP>:3128
export https_proxy=http://<proxy-server-IP>:3128
export no_proxy=$no_proxy,127.0.0.1,localhost,<server-IP>,<server-name>
export KUBECONFIG=/etc/kubernetes/kubelet.conf

Не только kubectl get cs выдает сообщение об ошибке, kubectl apply -f kubernetes-dashboard.yaml выдает аналогичное сообщение об ошибке

Error from server (Forbidden): error when retrieving current configuration of:
Resource: "/v1, Resource=secrets", GroupVersionKind: "/v1, Kind=Secret"
Name: "kubernetes-dashboard-certs", Namespace: "kube-system"
Object: &{map["kind":"Secret" "metadata":map["labels":map["k8s-app":"kubernetes-dashboard"] "name":"kubernetes-dashboard-certs" "namespace":"kube-system" "annotations":map["kubectl.kubernetes.io/last-applied-configuration":""]] "type":"Opaque" "apiVersion":"v1"]}
from server for: "https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml": 
secrets "kubernetes-dashboard-certs" is forbidden: 
User "system:node:<server-name>" cannot get secrets in the namespace "kube-system": 
no path found to object

Ответы [ 3 ]

0 голосов
/ 06 июля 2018

export KUBECONFIG=/etc/kubernetes/kubelet.conf

полностью неверно; вы, поскольку сообщение об ошибке с радостью пытается сообщить вам, пытаетесь выполнить операции кластера как Node, а не как один из пользователей или ServiceAccount s. RBAC почти специально разработан, чтобы помешать вам делать именно то, что вы делаете в данный момент. Вам бы никогда не хотелось, чтобы Node мог читать конфиденциальные учетные данные или создавать произвольные Pod в области кластера.

Если вы хотите быть полностью негодяем, зайдите в главный узел и используйте учетные данные cluster-admin, обычно содержащиеся в /etc/kubernetes/admin.conf (или аналогичном файле - в зависимости от того, как был подготовлен ваш кластер). Если у вас еще нет учетных данных a cluster-admin, то создайте сертификат X.509, который подписан центром сертификации, которому доверяет сервер apiserver с организацией (O= на языке X.509) cluster-admin, а затем создайте себе ServiceAccount (или что-то еще) с ClusterRoleBinding из cluster-admin и идите оттуда.

0 голосов
/ 11 декабря 2018

Попробуйте приведенные ниже фрагменты

1) sudo su

2) kubectl get cs

0 голосов
/ 06 июля 2018

после переустановки centos 7 и следуйте приведенным ниже инструкциям, я могу правильно запустить мастер

  1. установить docker-ce и добавить прокси
  2. установка кубеадм, кубектл, кубелет
  3. отключить firewalld и отключить своп
  4. экспорт no_proxy в .bash_profile

    export no_proxy=$no_proxy,127.0.0.1,localhost,<master-server-name>,<master-server-ip>,10.96.0.0/12,10.244.0.0/16

  5. kubeadm init

    kubeadm init --apiserver-advertise-address=<master-server-ip> --pod-network-cidr=10.244.0.0/16 mkdir -p $HOME/.kube \cp -f /etc/kubernetes/admin.conf $HOME/.kube/config chown $(id -u):$(id -g) $HOME/.kube/config

  6. тест с kubectl get cs

    NAME STATUS MESSAGE ERROR scheduler Healthy ok controller-manager Healthy ok etcd-0 Healthy {"health": "true"}

Нет необходимости вручную устанавливать etcd или экспортировать KUBECONFIG.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...