k8s 구성에 대해 공부할 때, Replica와 Depolyment가 나왔었는데, 이번에는 직접 두 가지의 Object을 구성해보는 실습을 해보도록 하겠다.
하지만 가급적 추천하는것은 replica set 보다는 deployment을 추천한다.
그 이유는, replica set은 외부로 노출, 서비스가 안되기 때문에 외부 노출을 위해서 deployment을 추천한다.
ReplicaSet
우선 nginx pod을 만드는데 타입을 replicaset으로 하겠다.
---
apiVersion: apps/v1
kind: ReplicaSet
metadata:
name: rep-nginx
labels:
env: rep-nginx
spec:
replicas: 2 # 복사할 pods 수
selector:
matchLabels: # 복사할 pod의 라벨
env: app-nginx
template: # 복사할 pod의 템플릿 설정
metadata:
name: temp-nginx
labels:
env: app-nginx
spec:
containers:
- name: nginx
image: nginx
imagePullPolicy: IfNotPresent
ports:
- containerPort: 80
kubectl scale --replicas=5 rs rep-nginx #레플리카 5개로 늘리기
Deployment
kubectl scale --replicas=6 deploy dep-nginx
앞서 언급한 대로 ReplicaSet은 외부 노출이 안되지만, deployment는 가능하다.
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: dep-nginx
labels:
env: dep-nginx
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
name: temp-nginx
labels:
app: nginx
spec:
containers:
- name: n1
image: nginx:1.24
imagePullPolicy: IfNotPresent
ports:
- containerPort: 80
~
kubectl scale --replicas=6 deploy dep-nginx # 레플리카 6개로 늘리기
kubectl expose deploy dep-nginx --type=NodePort # 외부로 노출
'Docker, k8s' 카테고리의 다른 글
k8s_ Ingress nginx (0) | 2023.09.15 |
---|---|
k8s_helm Prometheus Grafana 연동 (0) | 2023.09.15 |
k8s_yml 파일을 통한 Pod 실행 (0) | 2023.09.13 |
k8s_ Pod 생성, Pod접속 , Service, Namespace (0) | 2023.09.12 |
k8s_Kubernetes (0) | 2023.09.12 |