on
쿠버네티스 개념과 리소스 종류
쿠버네티스 개념과 리소스 종류
0. Kubernetes
쿠버네티스는 서버를 원하는 상태를 유지하기 위해 현재 상태를 지속적으로 업데이트하는 컨테이너 오케스트레이션 플랫폼이다.
1. 컨테이너
개발 환경에서 소프트웨어들은 버전이 지속적으로 업데이트된다. 이는 협업 과정에서 버전 차이로 인한 생산성과 안정성에 대한 문제를 초래한다. 이때 운영체제단의 네임스페이스와 컨트롤 그룹을을 이용하는 컨테이너 기술을 활용하면 애플리케이션 실행에 필요한 운영체제, 라이브러리 등을 격리된 실행환경에 구축하므로 개발 환경 그리고 더 나아가 운영 환경 간의 차이로 인한 생산성 저하 문제에서 자유로워질 수 있다.
2. 컨테이너 오케스트레이션
서비스의 종류와 트래픽이 증가함에 따라서 여러 대의 컴퓨터에서 컨테이너를 운영해야하는 환경에 직면했다. 그리고 이로인해 컨테이너 관리의 복잡성이 증가했다. 그래서 등장한 것이 컨테이너 오케스트레이션 툴이다. 컴퓨터 클러스터를 구축하여 컨테이너를 배포하면 컨테이너 오케스트레이션 툴은 리소스 사용률이 적은 적절한 노드에 새로운 컨테이너를 실행시킨다.
3. 쿠버네티스 리소스 종류
(1) Pod
파드는 컨테이너를 실행할 수 있는 가장 작은 단위로 컨테이너 1개 이상을 포함할 수 있다.
(2) ReplicaSet
레플리카셋은 설정한 수만큼 파드를 복제하고 관리한다. 만약 문제가 생길 경우 자동으로 복구하여 파드의 개수를 유지한다.
(3) Deployment
디플로이먼트는 내부적으로는 레플리카셋을 활용한다. 차이점은 배포 관련 기능의 추가다. 만약 YAML 파일에서 버전을 추가하고 다시 Apply시키면 디플로이먼트는 업데이트 전략에 따라서 무중단 배포를 진행한다.
(4) Service
파드는 자체적인 IP를 가지고 다른 파드와 통신할 수는 있지만 컨테이너는 쉽게 사라지고 쉽게 생성된다는 특징이 있다. 따라서 직접 통신하는 방법은 권장되지 않는다. 쿠버네티스는 파드와 직접 통신하는 대신 별도의 고정된 IP를 가진 서비스를 만들고 해당 서비스를 통해 파드에 접근하는 방식을 사용한다. 즉 서비스는 클러스터 내부의 파드들 간 통신을 위한 리소스다.
(5) NodePort
노드포트는 클러스터 외부에서 파드에 접근할 수 있게 해주는 리소스다.
(6) Load Balancer
로드 밸런서는 프록시와 역할을 하며 내부적으로 NginX를 사용한다.
(7) Ingress
인그레스는 도메인을 기반으로 쿠버네티스 클러스터에 접근할 수 있게 해주는 리소스다.
etc.
쿠버네티스를 더 자세히 공부하게 된다면..
from http://jinyes-tistory.tistory.com/306 by ccl(A) rewrite - 2021-12-10 16:26:38