Невозможно войти в панель управления Kubernetes с URL-адреса hhtp, поскольку локальный хост мастера является виртуальной машиной

Мне нужно создать https URL с моей панели инструментов, используя прокси-сервер kubectl, только генерирует http url, как создать URL https, какая команда должна быть выполнена для этого токена, генерируется grtting, но панели входа в систему остаются статичными без ответа при вводе токена

1 ответ

Решение

Вы можете выставить свой kubernetes-dashboard сервис через NodePort.

Чтобы достичь этого, самым простым способом было бы редактировать текущий kubernetes-dashboardнастройка и изменение сервиса ClusterIP параметр для NodePort:

kubectl edit services kubernetes-dashboard -n kube-system

apiVersion: v1
kind: Service
metadata:
  annotations:
    kubectl.kubernetes.io/last-applied-configuration: |
      {"apiVersion":"v1","kind":"Service","metadata":{"annotations":{},"labels":{"k8s-app":"kubernetes-dashboard"}
,"name":"kubernetes-dashboard","namespace":"kube-system"},"spec":{"ports":[{"port":443,"targetPort":8443}],"select
or":{"k8s-app":"kubernetes-dashboard"}}}
  creationTimestamp: null
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard
  selfLink: /api/v1/namespaces/kube-system/services/kubernetes-dashboard
spec:
  externalTrafficPolicy: Cluster
  ports:
  - port: 443
    protocol: TCP
    targetPort: 8443
  selector:
    k8s-app: kubernetes-dashboard
  sessionAffinity: None
  type: NodePort
status:
  loadBalancer: {}

Затем Kubernetes выделяет некоторый порт из диапазона (30000-32767), и каждый узел должен использовать этот порт для прокси для вашей целевой службы.

Теперь вы можете проверить kubernetes-dashboard и найдите ссылку на порт:

kubectl describe svc kubernetes-dashboard -n kube-system

Name:                     kubernetes-dashboard
Namespace:                kube-system
Labels:                   k8s-app=kubernetes-dashboard
Annotations:              kubectl.kubernetes.io/last-applied-configuration={"apiVersion":"v1","kind":"Service","me
tadata":{"annotations":{},"labels":{"k8s-app":"kubernetes-dashboard"},"name":"kubernetes-dashboard","namespace":..
.
Selector:                 k8s-app=kubernetes-dashboard
Type:                     NodePort
IP:                       XX.XX.XX.XX
Port:                     <unset>  443/TCP
TargetPort:               8443/TCP
NodePort:                 <unset>  31605/TCP
Endpoints:                XX.XX.XX.XX:8443
Session Affinity:         None
External Traffic Policy:  Cluster
Events:                   <none>

Наконец, вы можете проверить, kubernetes-dashboard будет доступно:

curl -k https://localhost:31605

Если вы подумаете о том, чтобы найти способ общаться со своей приборной панелью в Kubernetes через Bearer token затем взгляните на это руководство.

Другие вопросы по тегам