linkerd dashboard export (ingress)

해찌·2022년 5월 13일

linkerd

목록 보기
3/4
post-thumbnail

https://velog.io/@9674qzq/linkerd-dashboard-export-ingress-24%EB%85%84

아래 글로 더 이상 안 돼서 다시 작성함


언제까지고 수십명이 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$

이렇게 본인 도메인으로 바꿔봅니다.

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

profile
안녕하세요 :)

0개의 댓글