linkerd dashboard export (ingress) -24.03

해찌·2024년 3월 28일

linkerd

목록 보기
4/4

https://velog.io/@9674qzq/linkerd-dashboard-export-ingress
2년전쯤 이런 글을 썼었다
당시에는 이런 야매방법으로 하면 됐는데 다시 하니 안 됨;
암튼 그 과정에서 구글링을 하게됐는데 잊고살았던 내 벨로그가 최상단에 노출돼서 식겁을 해버리고, 누군가 내 똥글을 보고 헤맸을수있으니 책임감을 가지고 갱신함

이번에도 GKE 환경이고 링커드는 걍 똑같이 CLI로 설치했음

https://linkerd.io/2.15/tasks/exposing-dashboard/#nginx-with-basic-auth
그냥 이거 읽고 따라하면 되는데 GKE에서 기본적으로 Nginx 인그레스 컨트롤러 지원을 안 해줘서 헬름으로 설치 갈기기~

helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx\nhelm repo update
helm install nginx-ingress ingress-nginx/ingress-nginx --namespace linkerd-viz

원래 엔진엑스 인그레스 컨트롤러는 저것만 쓰는 ns 파서 하는게 권장인거같지만 나는 어차피 테스트용이기에 걍 하나의 네임스페이스에 때려넣음

이렇게하고 저 공식 도큐에있는 시크릿이랑 인그레스 그대로 넣으니 시크릿은 되는데 인그레스가 웹훅어쩌고 스니펫어쩌고 함서 에러남

k edit configmap nginx-ingress-ingress-nginx-controller
 data:
  allow-snippet-annotations: "true"

잘 읽어보니 스니펫 설정을 허용하라는 에러엿는데 어케 허용하지? 라고 헤매다가 컨피그맵 봤는데 딱 저게 있는것ㅇ임. 그래서 false 였던걸 true로 바꿔줌. 그리고 다시 ingress 어플라이하면 잘 적용됨
참고로

helm upgrade nginx-ingress ingress-nginx/ingress-nginx \\n  --namespace linkerd-viz \\n  --set allowSnippetAnnotations=true

이런것도 중간에 해줬음 이걸 해서 컨피그맵에 있는건지 안 해도 있는건지는 모르겠음

apiVersion: v1
kind: Secret
type: Opaque
metadata:
  name: web-ingress-auth
  namespace: linkerd-viz
data:
  auth: YWRtaW46JGFwcjEkbjdDdTZnSGwkRTQ3b2dmN0NPOE5SWWpFakJPa1dNLgoK
---
# apiVersion: networking.k8s.io/v1beta1 # for k8s < v1.19
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: web-ingress
  namespace: linkerd-viz
  annotations:
    nginx.ingress.kubernetes.io/upstream-vhost: $service_name.$namespace.svc.cluster.local:8084
    nginx.ingress.kubernetes.io/configuration-snippet: |
      proxy_set_header Origin "";
      proxy_hide_header l5d-remote-ip;
      proxy_hide_header l5d-server-id;      
    nginx.ingress.kubernetes.io/auth-type: basic
    nginx.ingress.kubernetes.io/auth-secret: web-ingress-auth
    nginx.ingress.kubernetes.io/auth-realm: 'Authentication Required'
spec:
  ingressClassName: nginx
  rules:
  - host: linkerd.com
    http:
      paths:
      - backend:
          service:
            name: web
            port: 
              number: 8084
        path: /
        pathType: Prefix

문서에 있는 시크릿+인그레스 파일인데 도큐 갱신될수도잇으니 기록차 남겨둠
저 시크릿 base64 까보니까 admin:해시비밀번호 던데 도큐에서 아이디는 admin, 비번도 admin이라고 함

이렇게하고 헬름으로 설치한 nginx 컨트롤러 인그레스로 나온거 서비스 아이피랑 내가 인그레스에 적은 호스트랑 잘 엮어주면(dns작업) 도메인으로 접속하면 아이디랑 패스워드 넣으라는 창 나오면서 들어가짐

profile
안녕하세요 :)

0개의 댓글