Kubernetes

이동현·2023년 5월 1일
0

코드 캠프 블로그

목록 보기
44/50

1. Kubernetes에 대한 이해

쿠버네티스는 컨테이너 관리자로 컨테이너 운영을 자동화하기 위한 도구이다.
쿠버네티스와 동일한 기능을 하는 도구에는 메소스(Mesos), 도커 스웜(Docker Swarm) 등 이 있다.셋다 큰 역할은 비슷하다. 쿠버네티스가 가장 쉽고 편하게 할 수 있으므로 우리는 쿠버네티스를 사용할 것이다.

컨테이너를 이용한 애플리케이션 배포 외에도 다양한 운영 관리 업무를 자동화할 수 있습니다.

도커 호스트 관리, 서버 리소스의 여유를 고려한 컨테이너 배치, 스케일링, 여러 개의 컨테이너 그룹에 대한 로드 밸런싱, 헬스 체크 등의 기능을 갖추고 있다.

쿠버네티스로 실행하는 애플리케이션은 애플리케이션을 구성하는 다양한 리소스가 함께 연동해 동작한다.

여기서 말하는 쿠버네티스의 리소스란 애플리케이션을 구성하는 부품과 같은 것으로 노드, 네임스페이스, 파드 등을 말한다.

2. Kubernetes Cluster

Kubernetes 클러스터(cluster)는 Kubernetes의 여러 리소스를 관리하기 위한 집합체를 말한다.

Kubernetes 리소스 중에서 가장 큰 개념은 노드(node)이다.

노드(node)는 클러스터(cluster)의 관리 대상으로 등록된 도커 호스트로, 도커 컨테이너가 배치되는 대상이다.
ubernetes 클러스터(cluster) 전체를 관리하는 서버인 마스터가 적어도 하나 이상 있어야 한다.

하나 이상이라는 의미는 클러스터가 작동하기 위한 최소 조건이지만 실제 프러덕 환경에서는 절대 하나로 클러스터(cluster)를 구성하지 않으며, 최소 3개 이상의 마스터 노드를 갖는다.

  • Master Node => Kubernetes Cluster 전체를 컨트롤하는 역할로 API 서버,스케줄러,컨트롤러 매니저, etcd 로 구성된다.

  • Worker Ndoe => Master Node에 의해 주어진 명령어를 받고 실제 워크로드에 생성하여 서비스하는 컴포넌트다.
    Kubelet, kube-proxy, cAdvisor 와 컨테이너 런타임으로 구성된다.

  • Pod => 포장된 도커라고 보면 편하다, 쿠버네티스에서는 결합이 강한 컨테이너를 파드로 묵어 일괄 배포한다.

3. Kubernetes VS Load Balancer

  • 쿠버네티스는 많은 역할을 하지만 로드밸런스와 같이 부화 모니터링을 통한 부화 분산 역할도 가능하다.

  • Load balancer 와 Kubernetes 차이점은 실행 환경이다.

  • Kubernetes는 cluster라는 큰 컴퓨터 안에서 docker container가 실행되기 때문에 따로 가상 컴퓨터(instance)를 실행하지 않아도 분산 부화를 할 수 있다. 당연히 속도 면에서 Load balncer 보다 앞선다.

4. 운영중인 서비스의 배포

  • 블루그린

    • 에이레코드르 변경해서 업테이트된 서버로 바로 바꿔준다.
      하지만 에러가 터지면 위험하다는 단점이 있따.
  • 카나리

    • 업뎅트된서버로 조금만 변경시키고 문제가 없으면 나머지 모두다 변경하고 원래 서버를 없앤다.
  • 롤링

    • 넘겨줄 유저를 조절가능하며 천천히 모두 넘기고 필요없는 백엔드 서버를 날린다.
      하지만 이러한 것들이 쉽지 않아 이것을 도와주기 나온것이 쿠버네티스이며 쿠버네티스의 기본 디폴트값은 롤링이다!!

쿠버네티스는 오토스케일링을 가지고 있다.

0개의 댓글