E
E
emashev2019-07-23 22:50:25
Nginx
emashev, 2019-07-23 22:50:25

How to make a port in kubernetes-dashboard outside?

Приветствую, осваиваю kubernetes. Есть кластер из 3х нод на версии 1.15 с VIP адресом.
Есть nginx балансировщик внешний с прикрученными сертификатами от LetsEncrypt для других сайтов. Хотелось бы его использовать так же для кластера кубернетеса, не поднимая внутри него лишних сущностей и kubectl proxy.
Загвоздка сейчас в том, что непонятно как выставить порт сервиса dashboard на VIP адрес, к которому можно потом создать location в nginx.
Пытаюсь на примере этом примере:
https://raw.githubusercontent.com/kubernetes/dashb...

Answer the question

In order to leave comments, you need to log in

1 answer(s)
P
Pavel Zamyatin, 2019-07-24
@emashev

Если у вас установлен и настроен ingress-контроллер, то примерно так:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: kubernetes-dashboard
  annotations:
    kubernetes.io/ingress.class: nginx
    kubernetes.io/tls-acme: "true"
    ingress.kubernetes.io/ssl-redirect: "true"
    ingress.kubernetes.io/use-port-in-redirects: "true"
  namespace: kube-system
spec:
  tls:
  - hosts:
    - kubedash.example.com
    secretName: kubedash-tls
  rules:
  - host: kubedash.example.com
    http:
      paths:
      - path: /
        backend:
          serviceName: kubernetes-dashboard
          servicePort: <порт_вашего_сервиса>

Если контроллера нет или не планируется, но нода/ы имеют внешний доступный IP, то можно сделать доступным сервис так (и не забыть на файерволе правило настроить для выбранного порта):
kind: Service
apiVersion: v1
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard-nodeport
  namespace: kube-system
spec:
  type: NodePort
  ports:
    - port: 443
      targetPort: 8443
      nodePort: <порт_для_доступна_снаружи>
  selector:
    k8s-app: kubernetes-dashboard

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question