[Kubernetes] 특징 및 장점에 대해 알아보자

황시준·2023년 2월 1일
0

Kubernetes

목록 보기
9/12

1. 쿠버테티스란?


쿠버네티스(k8s)는 컨테이너화된 어플리케이션을 배포, 관리, 확장할 때 수반되는 다수의 수동 프로세스를 자동화하는 오픈소스 컨테이너 오케스트레이션 플랫폼이다.

2. 쿠버네티스 클러스터(K8s Cluster)란?

쿠버네티스 클러스터는 Linux온프레미스, 퍼블릭, 프라이빗 또는 하이브리드 클라우드 전체로 호스트를 확장할 수 있다.

3. 배포방식의 특징

Container는 웹 서버를 많이 다루지만 실제로는 웹 서버 뿐 아니라 굉장히 많은 어플리케이션이 존재한다.
쿠버네티스는 Deployment Statefulsets DaemonSet Job CronJob등 배포방식이 다양하다.

배포방식의 특징은 아래와 같다.

Deployment : 새로운 버전의 어플리케이션의 무중단 배포가 가능하다.
StatefulSets : 실행 순서를 보장하고 호스트 이름과 볼륨을 일정하게 사용할 수 있어 순서나 데이터가 중요한 경우에 사용할 수 있다.
DaemonSet : 로그나 모니터링 등 모든 노드에 설치가 필요한 경우에 사용할 수 있다.
Job, CronJob : 배치성 작업을 할 때 사용

4. Ingress 설정


서버를 배포할 때 WAS서버를 내부망에 설치하고 외부에서 접근이 가능한 NginxApache2를 프록시 서버로 사용했다. 프록시 서버는 도메인과 경로 조건에 따라 설정을 변경해 줘야했다.
쿠버네티스의 Ingress는 이를 자동화 하면서 기존 프록시 서버에서 사용하는 설정을 거의 그대로 사용할 수 있다.

5. 클라우드 지원

쿠버네티스는 부하에 따라 자동으로 서버를 늘리는 기능(Auto Scailing)이 있고 IP를 할당받아 로드벨런서로 사용할 수 있다.
외부 스토리지를 컨테이너 내부 디렉토리에 마운드하여 사용하는 것도 일반직인데 이를 위해 클라우드마다 사용하는 API가 다른데 쿠버네티스를 사용하면 Cloud Controller를 이용하여 클라우드 연동을 비교적 쉽게 확장할 수 있다.

6. Namespace, Label


하나의 클러스터를 논리적으로 구분해 사용할 수 있다.
하나의 클러스터에 다양한 프레임워크와 어플리케이션을 사용하기 때문에 기본(system, default)외에 여러개의 namespace를 사용하는게 일반적이다.

7. RBAC(role-based access control)


각각의 리소스에 대해 유저별로 CRUD권한을 쉽게 지정할 수 있다.
AWS의 경우 IAM을 연동해 사용할 수 있다.

8. CRD(Custom Resource Definitation)

쿠버네티스가 제공하지 않는 기능을 기본 기능과 동일한 방식으로 적용하고 사용할 수 있다. (EX. SSL인증서 적용)

8. Auto Scaling

CPU, 메모리 사용량에 따른 확장과 접속자 수와 같은 값을 사용할 수 있다. 컨테이너의 개수를 조정하는 HPA(Horizontal Pod Autoscaler), 컨테이너의 리소스 할당량을 조정하는 VPA(Vertical Pod Autoscaler), 서버 개수를 조정하는 CA(Cluster Autoscaler)방식이 있다.

9. Federation, Multi Cluster

클라우드에 설치한 쿠버네티스 클러스터와 자체 서버에 설치한 쿠버네티스를 묶어 하나로 사용할 수 있다.

해당 사이트를 보고 공부했습니다.
https://subicura.com/2019/05/19/kubernetes-basic-1.html

profile
하고싶은게 많은 newbie

0개의 댓글