티스토리 뷰
볼륨 생성
kubectl apply -f volume-azurefile-pvc.yaml
-------------------------- Configmap ------------------------------
kubectl create configmap hello-cm --from-literal=language=java
docker build -t user0909.azurecr.io/hello-cm:v1 .
푸시 (권한이 없다고 뜸)
docker push user0909.azurecr.io/hello-cm:v1
acr로그인
az acr login --name user0909
다시 푸시
docker push user0909.azurecr.io/hello-cm:v1
configmap->cm-deployment.yaml
19번째줄 image: 를 수정.
배포 진행
kubectl apply -f cm-deployment.yaml
kubectl apply -f cm-service..yaml
내부접속
kubectl exec -it pod/cm-deployment-5d4c74b8d-2swjn -- /bin/bash
내부에서 환경변수 확인
env | grep LANGUAGE
----------------------------- liveness Probes VS readiness Probes------------------------------
kubectl apply -f exec-liveness.yaml
kubectl describe pod liveness-exec
------------------------ Ingress Controller ----------------------
Service는 L4레이어로 TCP레벨에서 Pod를 로드밸런싱함.
Ingress는 L7계층에서 로드밸런싱함.(URL기반)
Helm으로 Ingress Controller 설치
- helm repo add stable https://charts.helm.sh/stable
- helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
- helm repo update
- kubectl create namespace ingress-basic
- helm version 확인
- (helm version 2.x 일때)
- helm install --name nginx-ingress stable/nginx-ingress --namespace=ingress-basic
- (helm version 3.x 일때)
- helm install nginx-ingress ingress-nginx/ingress-nginx --namespace=ingress-basic
- (설치확인)
- kubectl get all --namespace=ingress-basic
- (Ingress Controller의 EXTERNAL-IP가 API Gateway 엔드포인트: 메모 必)
az acr build --registry user0909 --image user0909.azurecr.io/the-blue:v1 .
마지막 라우터 배포
kubectl apply -f path-based-ingress.yaml
kubectl create deploy nginx --image=nginx
------------- 동작 확인 -------------
default용 만들고.
kubectl create deploy nginx --image=nginx -n ingress-basic
http://20.194.18.6/blue , green HTTP로 접속
또는
kubectl exec pod nginx-f89759699-4fd8p -n ingress-basic -- /bin/bash kubectl exec -it nginx-f89759699-4fd8p -n ingress-basic -- /bin/bash
curl http://nginx-blue-svc
curl http://nginx-green-svc
왜 조회가 되는가?
같은 namespace(ingress-basic)으로 만들어서 서로 공유하고 있음.
다른 pod로 접속(namespace가 다를때)
kubectl exec -it nginx-f89759699-prct8 -- /bin/bash
curl http://nginx-blue-svc -> 못찾음
curl http://nginx-blue-svc.ingress-basic -> ingress-basic 네임스페이스를 명시하면 조회함.
--------------------------- 아키텍처 ------------------------------------
모든 Worker Node는 API-server를 바라보고있음.
Scheduler는 자원분배 및
Master Node는 일반적으로 가져다 쓰면 클라우드(Azure)에서 알아서 관리해줌.
하지만 On-premise로 사용할 경우에는 Master Node도 다 설정해줘야함.
----------------------- 필수 요소 -----------------
Readiness Probes 또는 Liveness Probes를 선택해서 꼭 적용해야함.
위에거는 다 구현되어있으면 점수 획득함.
Saga패턴
CQRS패턴(분리) -UI에서 상태값을 확인 할 수 있어야함.
Correlation - 배송상태가 바뀌면 관련되어있는거를 자동으로 update? (find by ID?)
Req/Resp(동기호출) - 아무 라이브러리를써서,
Gateway - 쿠버네티스ingress, spring framework의 gateway를 쓰던 상관없음.
Deploy/Pipeline -
Circuit Breaker - 과부하 걸릴때 차단용
Autosacle (HAP) - Scaleout이 되는걸 확인하면 됨.
zero-downtime deploy - rollout할때는 yaml이나 set image를 통해 (부하가 걸려있을때) -> Readniess가 적용되어있으면 Availability가 100%로 됨(손실된 요청이 없음)
Config Map / Persistence Volume - 만들어진 CM을 MSA가 활용을 해야함. Volume을 만들면 MSA에 마운트시키고 사용을 해야함!
Polyglot - 언어를 바꾸는건 어려움 -> Polyglot persistence를 사용함 -> 다른 DB를 써서 서로 호환되게함? -> mongoDB랑 mysql을 쓰면 될듯.
Self-healing (liveness Probe) - 8080은 정상인데, 8081로 바꾸면 계속 RESTART를함?
위에 : 0.6초가 넘으면 차단함
아래 : 모델이 너무 로직이 간단해서 아무리 부하를줘도 잘 안걸리니까 해당 함수를 넣어서 과부하를 더줌.
kafka - order에 application.xml ->
group : 그룹정보는 kafka에서 구별하는거? 1개의 그룹으로 여러개의 요청이 동시에 오면 msa중에서 먼저 가져간놈한테 이 그룹의 데이터를 넘겨준다?
destination :
RECREATE - 전체 다 내렸다가 다시시작
RAMPED - 하나씩 내렸다가 올림
BLUE/GREEN - 라우터를 A,B를 스왑하면서 사용
CANARY - 점진적으로 배포 ? / 카나리 스코어(IBM) : 어느정도 점수가 이상이되면 내림
A/B TESTING -
SHADOW -
---------------------- Istio ------------------------
Improved Resilience - Circuit Break + pool Ejection(계속 문제가 생기면 방출) + retry
'Cloud > Cloud 교육' 카테고리의 다른 글
MSA 이해 (0) | 2022.04.08 |
---|---|
클라우드 정리(3) (0) | 2021.02.06 |
클라우드 정리(1) (0) | 2021.02.03 |
- Total
- Today
- Yesterday
- 코드리뷰
- 협업
- svn
- node.js
- github
- Link
- 원격저장소
- git 기초
- MSA
- MSA란?
- git clone
- 일반함수
- HTTP 요청 메서드
- HTTP
- GIT
- 형상관리
- bitbucket
- Post
- git branch
- monolithic
- 브랜치란
- put
- Branch
- 별코딩
- 화살표함수
- React
- MicroService
- git명령어
- 오류해결
- NavLink
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |