728x90
반응형
Linkerd는 추가 설정을 통해 대시보드 화면을 Web UI로 볼 수 있다.
대시보드를 구축하면 서비스 메시를 더욱 효율적으로 관리하고 모니터링할 수 있게 된다. 이를 통해 서비스의 성능 개선 및 문제 해결에 도움이 될 수 있다.
이번 실습에서는 kubernetes ingress-nginx-controller와 linkerd-viz Helm 차트를 사용한다.
실습 전 [ Linkerd 설치 ] 작업을 먼저 진행해야 한다.
실습 절차
1. Helm을 사용하여 ingress-nginx-controller 설치2. Helm을 사용하여 linkerd-viz 설치
3. Ingress 구성
4. AWS Route 53 -> NLB 라우팅 대상 레코드 생성
5. 대시보드 접근
실습
1. Helm을 사용하여 ingress-nginx-controller 설치
helm repo 등록
$ helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
ingress-nginx-controller 설치를 위한 values yaml 파일 작성
## [config.yaml]
controller:
podAnnotations:
linkerd.io/inject: ingress
service:
annotations:
service.beta.kubernetes.io/aws-load-balancer-type: "nlb"
service.beta.kubernetes.io/aws-load-balancer-scheme: "internet-facing"
ingress-nginx-controller 설치 및 확인
## 설치
$ helm install ingress-nginx/ingress-nginx -n ingress-nginx --create-namespace -f config.yaml
## 설치 확인
$ kubectl get svc -n ingress-nginx
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
ingress-nginx-controller LoadBalancer 10.100.20.172 a7d6cb3c13dc346e99a019527fef8c74-6eebbe74a26efd7d.elb.ap-northeast-2.amazonaws.com 80:32735/TCP,443:30110/TCP 3m
ingress-nginx-controller-admission ClusterIP 10.100.46.120 <none> 443/TCP 68m
[참고]
AWS에서 EKS service annotation에 의해 NLB가 프로비저닝 되면 자동으로 EKS Cluster security group의 inbound에 아래와 같은 형식의 rule이 자동으로 추가된다.
- 프로토콜: TCP
- 포트범위: Ingress-nginx-controller service nodeport (32735, 30110)
- 소스: EKS Cluster Subnet CIDR(192.168.10.0/24, 192.168.20.0/24), 0.0.0.0/0
2. Helm을 사용하여 linkerd-viz 설치
linkerd-viz 설치 및 확인
## 설치
$ helm install linkerd-viz -n linkerd-viz --create-namespace linkerd/linkerd-viz
## 설치 확인
$ helm list -n linkerd-viz
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
linkerd-viz linkerd-viz 1 2023-04-04 13:19:49.575275872 +0000 UTC deployed linkerd-viz-30.3.6 stab le-2.12.4
3. Ingress 구성
linkerd Web ui의 id/password 사용을 위한 secret 생성
## linkerd-viz-secret.yaml
apiVersion: v1
kind: Secret
type: Opaque
metadata:
name: web-ingress-auth
namespace: linkerd-viz
data:
auth: YWRtaW46JGFwcjEkbjdDdTZnSGwkRTQ3b2dmN0NPOE5SWWpFakJPa1dNLgoK
- 해당 secret에 의해 설정되는 로그인 id와 password는 admin/admin이다.
- 아이디와 비밀번호를 변경하고 싶으면 해당 [Linkerd 대시보드 ID, Password 변경] 글을 참조하면 된다.
secret 적용 및 확인
$ kubectl apply -f linkerd-viz-secret.yaml
$ kubectl get -f linkerd-viz-secret.yaml
NAME TYPE DATA AGE
web-ingress-auth Opaque 1 65m
ingress-nginx-controller를 통하여 진입하기 위한 ingress 설정
## linkerd-viz-ingress.yaml
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: test.example.com # 개인 도메인 입력
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: web
port:
number: 8084
ingress 적용 및 확인
$ kubectl apply -f linkerd-viz-ingress.yaml
$ kubectl get -f linkerd-viz-ingress.yaml
NAME CLASS HOSTS ADDRESS PORTS AGE
web-ingress nginx test.example.com a7d6cb3c13dc346e99a019527fef8c74-6eebbe74a26efd7d.elb.ap-northeast-2.amazonaws.com 80 64m
4. AWS Route 53 -> NLB 라우팅 대상 레코드 생성
AWS Route 53에 ingress-nginx-controller에 의해 생성된 NLB를 대상으로 지정하여 레코드 등록
- AWS 로그인 -> Route 53 -> 호스팅 영역 -> {개인 호스팅 영역 이름 선택} -> 레코드 생성
5. 대시보드 접근
web 브라우저에서 도메인 입력하여 접근 (admin/admin)
반응형
'Service Mesh > Linkerd' 카테고리의 다른 글
Linkerd mTLS 통신 검증 (0) | 2023.04.05 |
---|---|
Linkerd 사이드카 주입 (0) | 2023.04.05 |
Linkerd 대시보드 ID, Password 변경 (0) | 2023.04.05 |
Linkerd 설치 (0) | 2023.04.04 |
Linkerd 란? (0) | 2023.04.04 |
댓글