Я новичок в кубернете / атомарном хосте, поэтому мой вопрос может быть действительно тривиальным или уже хорошо обсужденным - но, к сожалению, я не смог найти никаких подсказок, как достичь своей цели - вот почему я здесь.
Я установил кластер Kubernetes на атомарных хостах (сейчас у меня только один мастер и один узел). Я работаю в облачной сети, на виртуальных машинах.
[root@master ~]# kubectl get node
NAME STATUS AGE
192.168.2.3 Ready 9d
После долгой суеты мне удалось настроить пользовательский интерфейс панели управления kubernetes на моем мастере.
[root@master ~]# kubectl describe pod --namespace=kube-system
Name: kubernetes-dashboard-3791223240-8jvs8
Namespace: kube-system
Node: 192.168.2.3/192.168.2.3
Start Time: Thu, 07 Sep 2017 10:37:31 +0200
Labels: k8s-app=kubernetes-dashboard
pod-template-hash=3791223240
Status: Running
IP: 172.16.43.2
Controllers: ReplicaSet/kubernetes-dashboard-3791223240
Containers:
kubernetes-dashboard:
Container ID: docker://8fddde282e41d25c59f51a5a4687c73e79e37828c4f7e960c1bf4a612966420b
Image: gcr.io/google_containers/kubernetes-dashboard-amd64:v1.6.3
Image ID: docker-pullable://gcr.io/google_containers/kubernetes-dashboard-amd64@sha256:2c4421ed80358a0ee97b44357b6cd6dc09be6ccc27dfe9d50c9bfc39a760e5fe
Port: 9090/TCP
Args:
--apiserver-host=http://192.168.2.2:8080
Limits:
cpu: 100m
memory: 300Mi
Requests:
cpu: 100m
memory: 100Mi
State: Running
Started: Fri, 08 Sep 2017 10:54:46 +0200
Last State: Terminated
Reason: Error
Exit Code: 2
Started: Thu, 07 Sep 2017 10:37:32 +0200
Finished: Fri, 08 Sep 2017 10:54:44 +0200
Ready: True
Restart Count: 1
Liveness: http-get http://:9090/ delay=30s timeout=30s period=10s #success=1 #failure=3
Volume Mounts: <none>
Environment Variables: <none>
Conditions:
Type Status
Initialized True
Ready True
PodScheduled True
No volumes.
QoS Class: Burstable
Tolerations: <none>
Events:
FirstSeen LastSeen Count From SubObjectPath Type Reason Message
--------- -------- ----- ---- ------------- -------- ------ -------
1d 32m 3 {kubelet 192.168.2.3} Warning MissingClusterDNS kubelet does not have ClusterDNS IP configured and cannot create Pod using "ClusterFirst" policy. Falling back to DNSDefault policy.
1d 32m 2 {kubelet 192.168.2.3} spec.containers{kubernetes-dashboard} Normal Pulled Container image "gcr.io/google_containers/kubernetes-dashboard-amd64:v1.6.3" already present on machine
32m 32m 1 {kubelet 192.168.2.3} spec.containers{kubernetes-dashboard} Normal Created Created container with docker id 8fddde282e41; Security:[seccomp=unconfined]
32m 32m 1 {kubelet 192.168.2.3} spec.containers{kubernetes-dashboard} Normal Started Started container with docker id 8fddde282e41
также
[root@master ~]# kubectl cluster-info
Kubernetes master is running at http://localhost:8080
kubernetes-dashboard is running at http://localhost:8080/api/v1/proxy/namespaces/kube-system/services/kubernetes-dashboard
Теперь, когда я попытался подключиться к панели управления (я попытался получить доступ к панели управления через браузер на виртуальной машине Windows в той же облачной сети), используя адрес: https://192.168.218.2:6443/api/v1/proxy/namespaces/kube-system/services/kubernetes-dashboard Я получаю "неавторизованный". Я считаю, что это доказывает, что панель управления действительно работает под этим адресом, но мне нужно настроить какой-то способ доступа к нему?
Чего я хочу достичь в долгосрочной перспективе: я хочу включить подключение к панели управления с использованием логина / пароля (позже, когда я узнаю немного больше, я подумаю об аутентификации с помощью сертификатов или чего-то более безопасного, чем пароль) извне облачной сети. На данный момент можно подключиться к панели управления вообще.
Я знаю, что есть темы об аутентификации, но в большинстве из них упоминается что-то вроде:
Обычная проверка подлинности включается путем передачи параметра --basic-auth-file = SOMEFILE серверу API.
И это та часть, с которой я не могу справиться - я понятия не имею, как передавать параметры на сервер API. На атомарном хосте api-server, kube-controller-manager и kube-scheduler работают в контейнерах, поэтому я попадаю в контейнер api-server с помощью команды:
docker exec -it kube-apiserver.service bash
Я несколько раз видел, что мне нужно отредактировать файл .json в каталоге / etc / kubernetes / manifest, но, к сожалению, такого файла (или даже каталога) нет.
Прошу прощения, если моя проблема слишком тривиальна или недостаточно хорошо описана, но я новичок в (обоих) ИТ-мире и stackoverflow.
Я хотел бы предоставить больше информации, но боюсь, что в конечном итоге включу много бесполезной информации, поэтому я решил дождаться ваших инструкций по этому поводу.