쿠버네티스 replication

greenTea·2023년 8월 18일
0

쿠버네티스 replication-controller

🥳쿠버네티스는 클러스터 내의 컨테이너 상태를 자동으로 관리하며, 필요한 개수의 컨테이너 복제본이 항상 실행 중임을 보장하는 기능을 제공합니다.
이러한 기능은 ReplicationControllerReplicaSet,Deployment등 다양한 컨트롤러를 지원합니다. 여기서는 위에서 언급한 3가지 컨트롤러중 ReplicationControllerReplicaSet를 중심으로 알아보겠습니다.

ReplicationController

apiVersion: v1
kind: ReplicationController
metadata:
  name: nginx-replication
spec:
  replicas: 3
  selector:
    app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx-container
        image: nginx:latest

🫠ReplicationControllerspec.replicas 필드를 통해 원하는 Pod의 수를 지정하며, selector를 통해 해당 컨트롤러가 관리할 Pod를 선택합니다.

이때 selector에서 설정한 갑사이 template의 labels에 존재해야 합니다.

위 파일을 만든 후 kubectl create -f [파일 이름]을 실행하고 나면 replicas에서 정한 개수 만큼 pod가 생성된 것을 알 수 있습니다.

ReplicationController를 확인 하는 명령어는 kubectl get rc입니다.

😑정말 관리해주는지 pod 하나를 지워보시면 알 수 있습니다.

ReplicaSet

apiVersion: apps/v1
kind: ReplicaSet
metadata:
  name: nginx-replica
spec:
  replicas: 3
  selector:
    matchExpressions:
      - {key: version, operator: In, values: [1.15]}
  template:
    metadata:
      labels:
        app: nginx
        version: 1.15
    spec:
      containers:
      - name: nginx-container
        image: nginx:1.15

🧐ReplicationController와 같은 기능을 하지만 ReplicaSetReplicationController보다 라벨 선택에 있어 보다 더 많은 기능을 가지고 있습니다.

1. matchLables
ReplicationController의 labels와 같은 기능입니다.

2. matchExpressions
라벨을 보다 더 세밀하게 조정해서 선택할 수 있는 기능입니다. key에는 원하는 값을 넣어주고 operator에는 계산 기능을 넣어주시면 되는데 위에서 in의 경우에는 values에 정한 값이 들어있는 경우에 선택하라는 의미를 지니고 있습니다.

ReplicaSet 확인 하는 명령어는 kubectl get rs입니다.

결론

😓쿠버네티스는 서비스의 안정성과 확장성을 보장하기 위해 ReplicationControllerReplicaSet과 같은 리소스를 제공합니다. 이들 컨트롤러는 클러스터 내에서 안정적인 서비스 운영을 위해 필요한 Pod의 수를 자동으로 관리합니다.

deployment의 경우에는 다음 글에서 다루어 보겠습니다.

profile
greenTea입니다.

0개의 댓글