KT 에이블스쿨 66일차(1)

박기범·2023년 5월 5일
0

에이블스쿨

목록 보기
72/95

어제에 이어 쿠버네티스의 개념에 대해 배웠습니다. 그리고 자격증 결과 발표가 있었습니다.



Pod

쿠버네티스의 가장 작은 최소 단위의 Object입니다. 하나 이상의 컨테이너 그룹을 가지고 있으며 네트워크와 볼륨을 공유합니다

Pod yaml파일을 만들때 항상 들여쓰기를 조심해야합니다.

kubectl 명령어를 통해 yaml파일을 사용해서 Pod를 생성할 수 있습니다.

	kubectl create -f <yaml 파일명>

kubectl 명령으로 Pod를 생성하는 명령어는 아래와 같습니다.

    kubectl run <pod명>\
    --image=<이미지명:버전>\
    --port=<포트번호>

위와 같은명령어의 형태로 Pod를 생성할 수 있습니다.



NameSpace

쿠버네티스의 Object이며 단일 클러스터 내 리소스 그룹 격리를 위한 오브젝트입니다. 사용자가 여러 팀으로 구성하는 경우 프로젝트를 진행함에 있어 환경을 분리해야 되는 경우에 사용합니다.

※스케쥴러가 로드밸런싱을 어디에 배치할지 결정합니다.



쿠버네티스 컨트롤러

▶ ReplocaSet

ReplocaSet은 Pod의 개수를 유지해주며 yaml 파일을 작성할 때 replica 갯수를 지정해주면 그 갯수를 유지해줍니다.

▶ Template

Template는 파드를 생성하기 위한 명세입니다. Deployment와 ReplicaSet과 같은 Controller의 yaml 내용에 포함하고 Template에는 Pod 세부사항을 결정해줍니다.

▶ Deployment

Deployment는 ReplicatSet을 관리하며 애플리케이션의 배포를 더욱 세밀하게 관리해줍니다. 초기 배포 이후에 버전 업데이트와 이전버전으로의 롤백도 가능합니다.

▶ Deployment Update

Deployment Update는 운영중인 서비스의 업데이트가 발생되면 재배포를 관리하는 역할을 합니다. 재배포 방법에는 2가지가 있습니다. Recrate 방식과 Rolling Update방식입니다.

▶ Deployment Rollback

Deployment Rollback은 Deployment는 이전버전의 ReplicaSet을 10개까지 저장하여 저장된 이전 버전의 ReplicaSet을 이용해서 Rollback을 진행합니다.

▶ Deployment

Deployment 사용 형태는 아래와 같습니다.
yaml파일을 사용해서 생성하는 명령어

    kubectl create -f <yaml 파일명>

kubectl 명령어를 통해 생성하는 방법

     kubectl create deployment <이름> \
    --image=<이미지명:버전> \
    --replicas=<Pod수>

Deployment로 생성된 Pod 수를 조정(Scale)하는 명령어

 	kubectl scale deployment/<Deployment명> --replicas=<조정할 Pod 수>

ReplicaSet으로 생성된 Pod 수를 조정(Scale)하는 명령어

	kubectl scale rs/<ReplicaSet명> --replicas=<조정할 Pod 수>

▶ Service

여기서 service는 통신을 의미하면 Pod에 접근하기 위해 사용하는 Object입니다. 쿠버네티스의 외부 또는 내부에서 Pod에 접근할 때 필요합니다.
service의 유형으로는 3가지가 있습니다
ClusterIP 는 디폴트로 서비스가 기본적으로 가지고 있는 방식입니다.
NodePort는 모든 Node에 Port를 할당하여 접근하는 방식입니다. 외부에서 접근이 가능합니다
Load Balancer는 온전하게 사용할려면 추가 플러그인 설치가 필요하고 로드밸런서를 지원해주는 클라우드 환경에서 사용이 가능합니다.
쿠버네티스의 서비스는 로드 벨런스 역할을 합니다.

▶ Selector

Selector을 사용하면 특정 Label과 같은 값을 찾아 해당하는 Object만 관리할 수 있게 연결해줍니다. 추가로 port fowarding까지 이뤄집니다.

▶ DNS

쿠버네티스의 DNS는 Pod와 Service에 IP대신 생성된 DNS 레코드로 접근할 수 있습니다.

▶ Volume

볼륨은 Pod 컨테이너에서 접근할 수 있는 디렉터리입니다.
Emptydir은 말 그대로 비어있는 디렉터리로 pod가 생성될 때 같이 생성되고 Pod가 삭제될 때 같이 삭제되는 임시 Volume입니다.
HostPath는 호스트 노드의 경로를 Pod에 마운트하여 함께 사용하는 유형의 볼륨입니다.

▶ PV

PV는 Persistent Volume의 약자로 영구적인 볼륨입니다. 클러스트 내부에서 Object처럼 관리가 가능하고 Pod와는 별도로 관리합니다. Pod에 직접 연결하지 않고 PVC를 통해서 사용합니다.







어제에 이어 쿠버네티스 이론에 대해 마저 공부하고 실습하는 시간을 가졌습니다. 클라우드는 정말 알아야 될 개념이 많은거 같습니다.




※공부하고 있어 다소 틀린점이 있을 수 있습니다. 언제든지 말해주시면 수정하도록 하겠습니다.
※용어에 대해 조금 공부 더 해서 수정하겠습니다.

profile
개발자가 되기 위한 한걸음

0개의 댓글