Docker, k8s

k8s_ Replica, Depolyment

우당탕탕인생기 2023. 9. 13. 17:40

k8s 구성에 대해  공부할 때, Replica와 Depolyment가 나왔었는데, 이번에는 직접 두 가지의 Object을 구성해보는 실습을 해보도록 하겠다. 

 

이렇게 중복의 여러개의 pod의 집합을 replica set이라고 한다.

 

 

레플리카을 관리하는 상위 개념이다.

 

하지만 가급적 추천하는것은 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