Kubernetes Dashboard를 외부에 오픈하기 위해 NodePort나 Loadbalancer로 노출시키는 사례도 많은데, 가급적이면 서비스는 Ingress나 Gateway 리소스를 쓰는것이 좋다.
우선 Ingress Controller가 있는지 확인하고 없다면 설치하자.
ingress controller 설치 https://kubernetes.github.io/ingress-nginx/deploy/
$ kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.8.2/deploy/static/provider/baremetal/deploy.yaml
Kubernetes 어플리케이션을 배포하자
Kubernetes Dashboard 배포 https://kubernetes.io/docs/tasks/access-application-cluster/web-ui-dashboard/
$ kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml
Ingress 를 작성하고 배포 하자
# dashboard-ingress.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: dashboard-ingress
namespace: kubernetes-dashboard
annotations:
nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
spec:
ingressClassName: "nginx"
rules:
- host: dashboard.sicc.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: kubernetes-dashboard
port:
number: 443
$ kubectl apply -f dashboard-ingress.yaml
이제 서비스를 접속하자.
브라우저에 : https://dashboard.sicc.com:32340/#/login
단 여기서 주의할 것은
Ingress Controller가 외부로 노출된 포트에 접속을 해야한다는 것이다.
여기서 좀 갈리는데,
Ingress Controller를 위 가이드 데로 설치를 하면 특정 Service 포트를 확인할 수 있다.
이처럼 NodePort를 세팅한 Ingress Controller는 이 Endpoint로 브라우저가 접근하도록 해야 한다.
근데, 요즘에 세련되게 Ingress Controller 를 설치하는 곳은 DaemonSet을 사용한다. 이때는 대체로 그냥 모든 Worker Node의 80 또는 443이 Endpoint로 바로 올라와 있다.
이때는 Ingress Controller Service를 찾으려 하지말고 그냥 443이나 80으로 붙으면 어플리케이션 접근이 가능하다.
'PaaS > Kubernetes' 카테고리의 다른 글
KubeScape 란? (0) | 2023.11.15 |
---|---|
Kubernetes Resource가 잘 안지워질때 (0) | 2023.11.15 |
Ingress에서 Rewrite Target 사용하기 (0) | 2023.11.09 |
운영환경에 활용하기 좋은 k8s 리소스 YAML (0) | 2023.11.09 |
OIDC 인증으로 특정 Service Account에 대해 Kubelet API 호출하기 (1) | 2023.11.08 |