티스토리 뷰

RollOut - 새로운 버전의 배포
RollBack - 이전 버전으로 되돌림
1. 서비스 그룹
2. kubernetes 클러스트 만들기

노드의 개수 = worker의 개수
노드 크기 = 자원
3. msaez.io
터미널창 -> az login -> 해당 code 8자리 복사후 -> microsoft.com/devicelogin 컨트롤 클릭 (로그인 세션은 12시간정도 유효)
az aks get-credentials --resource-group user09-rsrcgrp --name user09-aks
kubectl get all 했을때 아래와 같이 나와야함.

az acr login --name user0909 진행
az aks update -n user09-aks -g user09-rsrcgrp --attach-acr user0909
git clone https://github.com/event-storming/container-orchestration.git
git clone github.com/acmexii/mall.git
kubectl config current-context
클러스터 조회 : kubectl get all
worker개수 조회 : kubectl get node
-------------------------------------- 1차 세팅 완료 --------------------------------------
hub.docker.com -> Repositories -> my-nginx -> Tags(탭)
명령어 : kubectl create deploykubectl create deploy my-nginx --image=wodonggun/my-nginx:v1
진행하면 하단의 Deployment,ReplicaSet,Pod 생성해줌.

외부 배포?
kubectl expose deploy my-nginx --port=80 --type=LoadBalancer
3개로 배포
kubectl scale deploy my-nginx --replicas=3
pod(최소한의 배포단위) - 한개의 Container 또는 여러개일 수 있음.
pod 제거 (지워졌다가 다시 self로 되살아남) - deploy를 제거해줘야함.
kubectl delete pod my-nginx-65d5474c54-cbqwn
Deploy 제거
kubectl delete deploy my-nginx
kubectl delete service my-nginx
------- 지우고 다시 생성 -------
kubectl create deploy nginx --image=nginx
kubectl expose deploy nginx --port=80
전체 제거 (하지만 services/kubernetes는 self로 또 계속 살아남.(메인이기 때문에...?) )
kubectl delete deploy,service --all
kubectl delete deploy,service,pod,hpa --all
------ yaml 활용 ----
1. nano 편집기를 통해 아래와 같이 작성.

yaml을 통한 배포.
kubectl create -f declarative-pod.yaml
yaml변경 사항 적용(다시 배포안하고 update)
kubectl apply -f declarative-pod.yaml
MicroService 배포할때마다 yaml을 통해서 이름만바꿔서 배포하기를 권장 (API기반으로 하면 별로임)
kubectl create deploy order --image=order:v1
kubectl delete deploy order --image = order:v1 -> 하고 다시 create를 하면 불편함(history 관리가 안됨)
kubectl set image deploy order oder=order:v2 -> delete를 진행하지 않고, 바로 v2 deploy
order.yaml에서 image=order:v2로 수정하고 apply를 통해서도 가능.
------------------- 실습 ------------------------
kubectl create -f nginx.yaml
이미지 새로운 버전으로 배포하기(1)
kubectl set image deploy nginx-deployment nginx-nginx:1.9.1
배포 주석 달기(2)
kubectl annotate deploy nginx-deployment kubernetes.io/change-cause="v2 is nginx:1.9.1"
배포주석 조회
kubectl rollout history deploy nginx-deployment
롤백하기
kubectl rollout undo deploy nginx-deployment
kubectl apply -f https://k8s.io/examples/application/php-apache.yaml
오토스케일링 세팅 ( yaml에서 request에서 200m를 신청했으면, cpu사용률 20%(40m)가 되면 최대10개까지
kubectl autoscale deployment php-apache --cpu-percent=20 --min=1 --max=10
CPU/Memory 사용 조회
kubectl top no
kubectl top pod
------------ 과부하 주기 -----
과부하는 외부에서 주면 자체적으로 차단시킴. 내부로 들어가서 과부하를 줘야함.
해당 내부로 접속.
kubectl exec -it siege -- /bin/bash
과부하 생성
siege -c30 -t30S -v http://php-apache (-c30 = 접속유저, -t30S = 30초 동안 실행 )
----- namespace -----
kubectl create namespace wdg
kubectl create deploy nginx --namespace wdg --image=nginx
kubectl get all -n wdg
kubectl expose deploy nginx --port=80 --type=ClusterIP -n wdg
------------------- Volume -------------------------------
kubectl get storageclass




블록 스토리지 = DB같은 중요한 스토리지
파일 스토리지 = 간단하게 사용한 일반 NAS같은 스토리지
오브젝트 스토리지 = 어디서든지 편하게 사용하는 스토리지
-------- 트러블 슈팅 -----------
1. ImagePullBackOff : 생성할때 오타일 확률이 높음.
kubectl describe all
history
2. CrashLoopBackOff :
kubectl logs [ pod ] -f
3. 명령어를 통해서 해당 Container 내부의 bash로 들어감.
kubectl exec -i -t nginx-b8c7d9dff-n4lwc -- /bin/bash
4.
'Cloud > Cloud 교육' 카테고리의 다른 글
MSA 이해 (0) | 2022.04.08 |
---|---|
클라우드 정리(3) (0) | 2021.02.06 |
클라우드 정리(2) (0) | 2021.02.04 |
- Total
- Today
- Yesterday
- put
- git명령어
- 별코딩
- MSA란?
- 협업
- github
- NavLink
- Branch
- 형상관리
- 오류해결
- git clone
- HTTP
- 화살표함수
- Post
- HTTP 요청 메서드
- svn
- MicroService
- bitbucket
- git 기초
- 일반함수
- monolithic
- Link
- MSA
- React
- git branch
- GIT
- 브랜치란
- 원격저장소
- 코드리뷰
- node.js
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |