Как я могу получить доступ к панели инструментов Kubernetes на удаленной машине

Я новичок в kubernetes и пытаюсь настроить clsuter на удаленном сервере. Для этого я использую microk8s и сервер от hetzner-cloud (https://www.hetzner.com/de/cloud).

Я вошел на сервер с помощью ssh и следовал инструкциям по установке microk8s для Linux (https://microk8s.io/). Все это, казалось, работало нормально. Моя проблема в том, что я не нашел способ получить доступ к kubernetes-dashboard.

Я пробовал обходной путь с помощью NodePort и microk8s kubectl proxy --disable-filter = true, но он не работает и не рекомендуется из соображений безопасности. С отключенным методом фильтрации можно получить доступ к странице входа, но она не отвечает.

Я также пытался получить доступ к панели инструментов извне, используя туннель ssh и этот учебник: with-token">Как я могу получить удаленный доступ к панели управления kubernetes с помощью токена

Туннель работает нормально, но я все еще не могу получить доступ к порту.

Теперь у меня два основных вопроса:

1: Как вы обычно используете kubernetes, если kubernetes не хочет, чтобы вы обращались к панели управления извне. Потому что обычно вы не запускаете свои службы на арендованном сервере, который не находится в вашей гостиной? Какой смысл я просто не понимаю?

2: Как я могу получить доступ к Dashborad?

Я был бы очень рад, если бы кто-нибудь мог мне помочь. Мучаюсь с этой проблемой уже месяц. :)

с наилучшими пожеланиями, мамо


person mamo    schedule 27.05.2021    source источник
comment
Привет, @mamo, добро пожаловать в Stack Overflow. Вы уверены, что ваш облачный провайдер разрешает трафик через порт, требуемый приборной панелью? У меня не было проблем с доступом к Dasboard на GCP после установки по умолчанию и разрешением трафика на порту 10443.   -  person Paweł Grondal    schedule 28.05.2021
comment
@PawełGrondal большое спасибо за ваш ответ. Я сразу спрошу у своего провайдера, можно ли сменить порт. потому что я уже пробовал "kubectl proxy --port=8080" и другие порты.   -  person mamo    schedule 31.05.2021
comment
@PawełGrondal В Google встроен Kubernetes. Вы им пользуетесь или сами устанавливали?   -  person mamo    schedule 31.05.2021
comment
Нет, я построил его с нуля, используя kubeadm. Мне также пришлось создать правило брандмауэра, разрешающее трафик через порт 10443.   -  person Paweł Grondal    schedule 01.06.2021


Ответы (1)


Чтобы получить доступ к службам K8s извне по HTTP, вам необходимо настроить и использовать контроллер входа.

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

Как только это будет сделано, вы сможете получить доступ к панели инструментов.

Пример конфигурации (ссылка)

---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: dashboard-google
  namespace: kube-system
  annotations:
    nginx.ingress.kubernetes.io/secure-backends: "true"
    nginx.ingress.kubernetes.io/ssl-passthrough: "true"
spec:
  tls:
    - hosts:
      - kube.mydomain.com
      secretName: tls-secret
  rules:
    - host: kube.mydomain.com
      http:
        paths:
        - path: /
          backend:
            serviceName: kubernetes-dashboard
            servicePort: 443
person Rakesh Gupta    schedule 28.05.2021