kubectl несколько чистых / http: тайм-аут рукопожатия TLS - PullRequest
0 голосов
/ 30 мая 2018

Я новичок в kubernetes tech и пытаюсь настроить работоспособный локальный кластер (в ESXI).

Я сталкиваюсь с множеством ошибок, которые мне не удалось устранить:

  • DashBoard работает, но не может получить доступ через API-интерфейс kubectl прокси

  • Мне не удалось получить доступ к любому svc, доступному в типе NodePort (сброс соединения tcp)

  • Мне не удалось извлечь журналы из модулей

  • Мне не удалось создать план обновления kubeadm

Я думаю, что большинство из нихиз-за той же ошибки конфигурации / ошибки, но я был в состоянии найти, что / где этот сломанный брик.

Если я забыл какую-то информацию, скажите мне, я добавлю их в пост.

Я запускаю кластер на вм.Все виртуальные машины работают под управлением centos7. Я уже сделал это на всех из них:

swapoff -a
systemctl disable firewalld
systemctl stop firewalld
setenforce 0
systemctl daemon-reload
systemctl restart docker
systemctl restart kubelet

Для фланели

sysctl -w net.bridge.bridge-nf-call-iptables=1
sysctl -w net.bridge.bridge-nf-call-ip6tables=1

kubectl версия

 Client Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.2", GitCommit:"81753b10df112992bf51bbc2c2f85208aad78335", GitTreeState:"clean", BuildDate:"2018-04-27T09:22:21Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"linux/amd64"}
    Server Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.2", GitCommit:"81753b10df112992bf51bbc2c2f85208aad78335", GitTreeState:"clean", BuildDate:"2018-04-27T09:10:24Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"linux/amd64"}

kubectl get ep

NAME            ENDPOINTS                          AGE
dark-room-dep   172.17.0.10:8085,172.17.0.9:8085   19h
kubernetes      10.66.222.223:6443                 8d

kubectl get svc

NAME            TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)          AGE
dark-room-dep   NodePort    10.99.12.214   <none>        8085:30991/TCP   19h
kubernetes      ClusterIP   10.96.0.1      <none>        443/TCP          8d

информация о кластере kubectl

Kubernetes master is running at https://10.66.222.223:6443
Heapster is running at https://10.66.222.223:6443/api/v1/namespaces/kube-system/services/heapster/proxy
KubeDNS is running at https://10.66.222.223:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
monitoring-grafana is running at https://10.66.222.223:6443/api/v1/namespaces/kube-system/services/monitoring-grafana/proxy
monitoring-influxdb is running at https://10.66.222.223:6443/api/v1/namespaces/kube-system/services/monitoring-influxdb/proxy

kubectl получить развертывание

NAME            DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
dark-room-dep   2         2         2            2           20h

kubectl get pods --all-namespaces

NAMESPACE     NAME                                            READY     STATUS    RESTARTS   AGE
default       dark-room-dep-577bf64bb8-9n5p7                  1/1       Running   0          20h
default       dark-room-dep-577bf64bb8-jmppg                  1/1       Running   0          20h
kube-system   etcd-localhost.localdomain                      1/1       Running   6          8d
kube-system   heapster-69b5d4974d-qvtrj                       1/1       Running   0          1d
kube-system   kube-apiserver-localhost.localdomain            1/1       Running   5          8d
kube-system   kube-controller-manager-localhost.localdomain   1/1       Running   4          8d
kube-system   kube-dns-86f4d74b45-njzj9                       3/3       Running   0          1d
kube-system   kube-flannel-ds-h9c2m                           1/1       Running   3          6d
kube-system   kube-flannel-ds-tcbd7                           1/1       Running   5          8d
kube-system   kube-proxy-7v6mf                                1/1       Running   3          6d
kube-system   kube-proxy-hwbwl                                1/1       Running   4          8d
kube-system   kube-scheduler-localhost.localdomain            1/1       Running   6          8d
kube-system   kubernetes-dashboard-7d5dcdb6d9-q42q5           1/1       Running   0          1d
kube-system   monitoring-grafana-69df66f668-zf2kc             1/1       Running   0          1d
kube-system   monitoring-influxdb-78d4c6f5b6-nhdbx            1/1       Running   0          1d

route -n

Table de routage IP du noyau
Destination     Passerelle      Genmask         Indic Metric Ref    Use Iface
0.0.0.0         10.66.222.1     0.0.0.0         UG    100    0        0 ens192
10.66.222.0     0.0.0.0         255.255.254.0   U     100    0        0 ens192
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0
172.25.1.0      172.25.1.0      255.255.255.0   UG    0      0        0 flannel.1

kubectl получить узлы --all-namespaces

NAME                    STATUS    ROLES     AGE       VERSION
k8s-01                  Ready     <none>    6d        v1.10.2
localhost.localdomain   Ready     master    8d        v1.10.2

Спасибо за помощь.Хорошего дня.

zonko

Ответы [ 2 ]

0 голосов
/ 05 сентября 2018

Для доступа к DASHBOARD UI это то, что я сделал, и он работает на кластере kuebernetes со следующими спецификациями:

OS : CentOS 7

Версия компонентов Kubernetes(но у меня тоже работало с v1.10.x):

Client Version: version.Info{Major:"1", Minor:"11", GitVersion:"v1.11.2", GitCommit:"bb9ffb1654d4a729bb4cec18ff088eacc153c239", GitTreeState:"clean", BuildDate:"2018-08-07T23:17:28Z", GoVersion:"go1.10.3", Compiler:"gc", Platform:"linux/amd64"} Server Version: version.Info{Major:"1", Minor:"11", GitVersion:"v1.11.2", GitCommit:"bb9ffb1654d4a729bb4cec18ff088eacc153c239", GitTreeState:"clean", BuildDate:"2018-08-07T23:08:19Z", GoVersion:"go1.10.3", Compiler:"gc", Platform:"linux/amd64"}

Шаги

  1. Установить пользовательский интерфейс dahsboard

kubectl create -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml

Установите kubectl на свой локальный компьютер: этот метод зависит от того, работаете ли вы с Windows, Linux или OS X, но довольно прост

Скопируйте каталог .kube с вашего главного узла на локальный компьютер

Создайте служебную учетную запись с именем <name> (вы можете поставить все, что захотите, но из моего опыта лучше, если вы используете тот жеимя учетной записи, которое вы используете для входа на свой компьютер, куда вы импортируете каталог .kube) в пространстве имен kube-system

$ vim my_user.yaml

apiVersion: v1 kind: ServiceAccount metadata: name: <your account user_name> namespace: kube-system

kubectl create -f my_user.yaml

Создание ассоциации роли кластера

$ vim cluster-admin-role-association.yml

apiVersion: rbac.authorization.k8s.io/v1beta1 kind: ClusterRoleBinding metadata: name: <your account user_name> roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin subjects: - kind: ServiceAccount name: <your account user_name> namespace: kube-system

kubectl create -f cluster-admin-role-association.yml

Получите свой токен для входа в систему

$ kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep <your account user_name> | awk '{print $1}')

  `Name:         <your account user_name>-token-xxxxx
  Namespace:    kube-system
  Labels:       <none>
  Annotations:  kubernetes.io/service-account.name=<your account user_name>
                  kubernetes.io/service-account.uid=xxxxxxxxxxxxxxxxxxxxxx
  Type:  kubernetes.io/service-account-token
  Data
  ====
  namespace:  11 bytes
  token:
  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx (your token)`
Теперь вы можете выполнить на своем локальном компьютере kubectl proxy, получить доступ к DashboardUI по следующему URL и войти в систему с помощью токена:

http://127.0.0.1:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/

Вы можете изменить пространства именнапример, чтобы влиять на разных пользователей в разных проектах и ​​быть более точным с разрешениями

Для доступа к SERVICE обычно, по крайней мере, при моем развертывании, вам необходимо знать, в каком из вашихузлы, на которых работает служба (вы можете получить ее, добавив -o wide к вашему kubectl get resource запросу), и вы сможете получить к ней доступ с помощью http(s)://<node_ip>:<service_port>/<any url complement if there is one>

Возможно, существует лучший способ получить доступ к службе(имена DNS), но я все еще учусь, так что на данный момент, как я это делаю

Надеюсь, что это помогает

Приветствия

0 голосов
/ 08 июня 2018

I ошибок, которые я исправил:

Мне не удалось восстановить журналы из модулей: узел отключил брандмауэр

Мне не удалось создать план обновления kubeadm: неправильная настройка конфигурации прокси

I ошибки, которые мне не удалось устранить:

DashBoard работает, но не может получить доступ через kubectl proxy api: я поработал над этим и обнаружил, что ему нужны heapster и heapsterнужен другой компонент ... Я был включен, чтобы заставить его работать.

Мне не удалось получить доступ к любому svc, выставленному в типе NodePort (сброс соединения tcp): я успешно развернул svc на порту 80, но это не такработать на любом другом порту.

...