728x90
반응형
쿠버네티스는 공식문서 한글화가 굉장히 잘 되어 있는 듯 하다.
Mission: replication controller / image: teacherssamko/simple-web:v1 / replicas: 3
https://kubernetes.io/ko/docs/concepts/workloads/controllers/replicationcontroller/
# code
apiVersion: v1
kind: ReplicationController
metadata:
name: test
spec:
replicas: 3
selector:
app: test
template:
metadata:
name: test
labels:
app: test
spec:
containers:
- name: test
image: teacherssamko/simple-web:v1
ports:
- containerPort: 8000
k create -f test-rc.yaml
k get rc
#
kimminhyeok@Ivans-Mac k8s % k get rc
NAME DESIRED CURRENT READY AGE
test 3 3 3 6m16s
Mission: pods는 남겨둔 채 replication controller만 지우기
https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#deleting-only-a-replicationcontroller
k delete rc test --cascade=orphan
# result
kimminhyeok@Ivans-Mac k8s % k get po
NAME READY STATUS RESTARTS AGE
test-85hbx 1/1 Running 0 9m24s
test-kh8x4 1/1 Running 0 9m24s
test-skbgz 1/1 Running 0 9m24s
kimminhyeok@Ivans-Mac k8s % k get rc
No resources found in default namespace.
rc 는 지워지지만 파드들은 정상적으로 실행중
rc 가 지워지므로서 각 파드들은 관리가 되고 있지 않게 되었다. 이번에는 replica set 을 이용해서 한번 관리해 보자
Mission: replicaset으로 기존 pods 관리
https://kubernetes.io/docs/concepts/workloads/controllers/replicaset/
관리되고 있지 않은 파드들의 레이블 정보를 selector.spec 에 적어주면 먼저 탐색하면서 랜덤으로 레플리케이션 갯수만큼 가져와 관리하게 되고 같은 레이블의 초과되는 부분들은 삭제하게 된다.
이 때 유저들은 1초 미만의 중단을 경험하게 된다.
# create rs yaml
apiVersion: apps/v1
kind: ReplicaSet
metadata:
name: test
labels:
app: test
spec:
# 케이스에 따라 레플리카를 수정한다.
replicas: 3
selector:
matchLabels:
app: test
template:
metadata:
labels:
app: test
spec:
containers:
- name: test
image: teacherssamko/simple-web:v1
ports:
- containerPort: 8000
k create -f test-rs.yaml
# result
kimminhyeok@Ivans-Mac k8s % k get po
NAME READY STATUS RESTARTS AGE
test-85hbx 1/1 Running 0 22m
test-kh8x4 1/1 Running 0 22m
test-skbgz 1/1 Running 0 22m
kimminhyeok@Ivans-Mac k8s % k get rs
NAME DESIRED CURRENT READY AGE
test 3 3 3 9s
추가적으로 생성되지 않고 관리되고 있지 않던 app=test 레이블을 가진 파드들이 포함되어서 관리되기 시작한다.
Mission: replicas 4로 변경
scale: rs - test
k scale --replicas 4 rs test
kimminhyeok@Ivans-Mac k8s % k get po --show-labels
NAME READY STATUS RESTARTS AGE LABELS
test-85hbx 1/1 Running 0 35m app=test
test-kh8x4 1/1 Running 0 35m app=test
test-skbgz 1/1 Running 0 35m app=test
test-ss6qg 1/1 Running 0 3m55s app=test
Mission: review-probe.yaml / replicaset / random / liveness-probe 설정
기존에 있는 rs 코드에 livenessProbe 를 추가해서 상태관리를 해준다.
apiVersion: apps/v1
kind: ReplicaSet
metadata:
name: review-probe
labels:
app: test
spec:
# 케이스에 따라 레플리카를 수정한다.
replicas: 3
selector:
matchLabels:
app: test
template:
metadata:
labels:
app: test
spec:
containers:
- name: test
image: teacherssamko/simple-web:unhealthy
ports:
- containerPort: 8000
livenessProbe:
httpGet:
path: /
port: 8000
initialDelaySeconds: 3
periodSeconds: 3
728x90
반응형
'Dev. > Kubernetes & Helm' 카테고리의 다른 글
Kubernetes: ConfigMap (0) | 2023.09.18 |
---|---|
Kubernetes: svc - pod 구조 이해 (0) | 2023.09.17 |
Kubernetes: 서비스, 파드의 관리자 (0) | 2023.09.16 |
Kubernetes: 명령어와 익숙해지기 (0) | 2023.09.15 |
Kubernetes: Intro (0) | 2023.09.12 |
댓글