POD Design 에 대해서 정리해보도록 하자
우선 처음 POD Design 으로 Labels 에 대한 설명이다.
한마디로 Labels 를 잘 활용하라는 내용이었다.. (뭔가 더 설명할 만한 것이..)
아래와 같이 labels 를 통해 business 가 뭔지, enviroment 가 뭔지, tier 가 뭔지 설정해서 쉽게 파드를 알아볼 수 있게 설계하였다.
apiVersion: v1
kind: Pod
metadata:
generateName: app-1-
labels:
bu: finance
env: dev
tier: frontend
이후 k get pods --selector 키=값 을 사용해서 아래와 같이 사용이 가능하다.
왠지 이런 명령어가 있을 것 같았는데 자연스럽게 알게 되었다.
# --selector 를 통해 labels 기반으로 검색이 가능하다.
$ k get pods --selector env=dev
# 여러개 일때
$ k get pods --selector env=dev,bu=finance,tier=front-end
또 전에 배웠던 개념이지만
ReplicaSet, Deployment 리소스를 가진 매니페스트는 matchLabels 에 해당하는 Labels 가 템플릿 안에 있어야 한다.
matchLabels 에 해당하는 컨테이너 만을 관리하기 때문이다.
apiVersion: apps/v1
kind: ReplicaSet
metadata:
name: replicaset-1
spec:
replicas: 2
selector:
matchLabels:
tier: front-end
template:
metadata:
labels:
tier: front-end
spec:
containers:
- name: nginx
image: nginx
다음 강좌는 Deployment 와 연관이 있는데, 그다지 많은 내용이 없어 명령어만 정리해본다면
# deployment 생성
# --record : rollout 할때 history에 기록한다.
k create -f deployment-definition.yml --record
# deployment 조회
k get deployments
# deployment 생성 및 업데이트
# --record : rollout 할때 history에 기록한다.
k apply -f deployment-definition.yml
# 이미지 변경
k set image deployment/myapp-deployment nginx=nginx:1.9.1
# 롤링배포 상태 및 기록
k rollout status deployment/myapp-deployment
k rollout history deployment/myapp-deployment
# 롤링업데이트 이후에 undo 를 하게되면 이전 버전으로 롤백이 된다.
k rollout undo deployment/myapp-deployment
Deployment 는 StrategyType를 따로 설정하지 않으면 기본적으로 롤링업데이트(RollingUpdate) 방식을 사용하여 배포한다.
이번 강좌는 조금 쉬어가는 코너로 간단하게 정리하고 넘어가도록 한다.. ㅎㅎ
'Dev > Kubernetes' 카테고리의 다른 글
[Kubernetes] 쿠버네티스로 우분투 띄워보기 (0) | 2022.04.18 |
---|---|
[CKAD] section 6. POD Design (2) - Job & CronJob (0) | 2022.04.17 |
[CKAD] section 5. Observability (0) | 2022.04.07 |
[CKAD] section 4. Multi-Container Pod (0) | 2022.04.02 |
[CKAD] 2022년 시험 팁 정리 (0) | 2022.03.25 |