Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- opentelemetry
- CI/CD
- gitlab ci
- 웹 취약점
- Resource
- Prometheus
- CI
- CD
- gitlab cd
- DevOps
- sonarqube
- scraping
- 크롤링
- Kubernetes
- helm
- eks
- argocd
- 모의해킹
- linkerd
- GitLab
- 스크레이핑
- Jenkins
- ECR
- 웹 해킹
- Crawling
- Service Mesh
- Monitoring
- deploy
- Grafana
- docker
Archives
- Today
- Total
ㅡ.ㅡ
[ServiceMesh] Emissary Ingress/Linkerd 본문
Helm
NS 변경시 오류가 발생했었슴다
helm repo add datawire https://app.getambassador.io
helm repo update
helm pull datawire/emissary-ingress --untar
kubectl create ns emissary
helm upgrade emissary -f values.yaml ./ -n emissary
Values.yaml
##1 클라이언트가 진입할 수 있는 LB를 생성하는부분으로 80, 443, 8877의 리스너를 생성한다.
##2 Emissary Ingress(pod)에 Linkerd Service Mesh 통신 구성(클라이언트가 들어오는 Inboud는 스킵 설정)한다.
##3 Mapping(routing)에서 사용될 resolver를 생성
##4 Emissary Ingress의 리스너를 생성(80, 443) / 해당 리소스가 없을때 통신이 안됬었다.
1번과 매칭되는거 같음(8877은 왜 되는건지 의문이다..)
## 1
148 service:
149 type: LoadBalancer
150 # Note that target http ports need to match your ambassador configurations service_port,
151 # https://www.getambassador.io/reference/modules/#the-ambassador-module
152 ports:
153 - name: http
154 port: 80
155 targetPort: 8080
156 # protocol: TCP
157 # nodePort: 30080
158 # hostPort: 80
159 - name: https
160 port: 443
161 targetPort: 8443
162 #/ambassador/v0/diag/
173 - name: admin
174 port: 8877
175 targetPort: 8877
183 annotations:
184 service.beta.kubernetes.io/aws-load-balancer-name: 이름
185 service.beta.kubernetes.io/aws-load-balancer-type: 타입
186 service.beta.kubernetes.io/aws-load-balancer-scheme: internet-facing
187 service.beta.kubernetes.io/aws-load-balancer-target-group-attributes: preserve_client_ip.enabled=true
188 service.beta.kubernetes.io/aws-load-balancer-cross-zone-load-balancing-enabled: true
## 2
274 podAnnotations:
275 config.linkerd.io/skip-inbound-ports: 80,443,8877
276 linkerd.io/inject: enabled
## 3
337 resolvers: # +doc-gen:break
338 endpoint:
339 create: true
340 name: endpoint
## 4
413 createDefaultListeners: true
ResourceMonitor
프로메테우스 스택에서 서비스 모니터를 통해 Emissary Ingress 메트릭을 수집하는 설정하게해주는 리소스이다.
# Helm > template/Prometheus-stack-svc-mon.yaml
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: ambassador-monitor
namespace: prometheus-stack 네임스페이스 명
labels:
release: prometheus-stack
spec:
namespaceSelector:
matchNames:
- emissary
selector:
matchLabels:
service: ambassador-admin
endpoints:
- path: /metrics
port: ambassador-admin
APP/Mapping
데이터가 들어올 실제 APP으로 Emissary Ingress를 통해 들어온 데이터를 APP쪽으로 전달하게 해주는 설정이다.
apiVersion: getambassador.io/v3alpha1
kind: Mapping
metadata:
name: spring-boot
spec:
hostname: "*"
prefix: /springboot
# https://www.getambassador.io/docs/emissary/latest/topics/using/intro-mappings/
# [scheme://][service][.namespace][:port]
service: http://springboot-svc-clusterip.springboot-canary:7070
#https://www.getambassador.io/docs/emissary/latest/topics/running/resolvers/
resolver: endpoint
# https://www.getambassador.io/docs/emissary/latest/topics/running/load-balancer/
load_balancer:
policy: round_robin
Admin/Grafana/Linkerd
Admin(8877) Page
Emissary의 설정 정보들을 확인할 수 있다.
Grafana Dashboard(4698)
프로메테우스 스택에서 수집한 리소스를 확인할 수 있다.
Linkerd Dashboard
Emissary Ingress를 통해 데이터가 APP쪽으로 인입되는것을 확인할 수 있다.
'Network' 카테고리의 다른 글
[Service Mesh] Istio (0) | 2022.02.02 |
---|---|
[Service Mesh] Linkerd (0) | 2021.11.14 |