언제까지고 수십명이 linkerd viz dashboard & 명령어를 사용해서 볼 수는 없습니다.
따라서 접속 할 도메인 주소를 만들어 줄겁니다.
해당 작업은 GKE에서 진행됐으며 대시보드를 ingress를 통해 외부로 노출시켜 도메인 접속하는 방법을 설명합니다.
우선 web 서비스를 nodeport로 바꿔줍니다.
이후 인그레스를 적용합니다.
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ingress-linkerd
namespace: linkerd-viz
spec:
rules:
- host: linkerd.url.com
http:
paths:
- backend:
service:
name: web
port:
number: 8084
path: /
pathType: Prefix
tls:
- secretName: ssl-name
ingress 입니다.
k8s linkerd-viz ns의 web이라는 서비스의 8084 포트에서 서비스 됩니다.
이 과정에서 헬스체크를 하게 되는데 GKE만의 문제인지 8084에 대한 헬스체크가 안 되어서
https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/
문서를 참조하여 livenessProbe와 readinessProbe를 모두 TCP로 바꾼 후 9094를 바라보게 했습니다.
여기까지하면 dns 오류를 뱉어냅니다. 로컬호스트 외에 다른 주소로 접근하는 건 막는다고 합니다. 해당 메세지에 url이 있으니 들어가보면 arg 변경 부분이 있을겁니다.
containers:
- args:
- -linkerd-metrics-api-addr=metrics-api.linkerd-viz.svc.cluster.local:8085
- -cluster-domain=cluster.local
- -grafana-addr=grafana.linkerd-viz.svc.cluster.local:3000
- -controller-namespace=linkerd
- -viz-namespace=linkerd-viz
- -log-level=info
- -log-format=plain
- -enforced-host=^(localhost|127\.0\.0\.1|web\.linkerd-viz\.svc\.cluster\.local|web\.linkerd-viz\.svc|\[::1\])(:\d+)?$
- -enable-pprof=false
기존 이 파일을
- -enforced-host=^dashboard\.example\.com$
이렇게 본인 도메인으로 바꿔봅니다.

그러면 접속이 되는것을 확인할 수 있습니다!