본문 바로가기
[AWS]

쿠버네티스란?

by SAMSUNG CLOUD-OKY 2020. 9. 16.
반응형

 

 

 

 

쿠버네티스 서비스를 생성하고 로컬컴퓨터나 다른 인스턴스에서 쉘 명령을 실행해야만 코버네티스 오브젝트를 제어할수 있다.

 

 

 

쉘스크립트를 사용해야 하기때문에 인스턴스를 하나 만들어서 작업을 할 것이다.

 

 

 

 

ekctl 명령어로 클러스터를 생성할 수도 있다.

 

#cluster.yaml (파일 생성)

apiVersion: eksctl.io/v1alpha5

kind: ClusterConfig

metadata:

  name: board-cluster

  region: ap-northeast-2

 

 

$ eksctl create cluster -f cluster.yaml

 

 

 

 

 

 

 

 

 

사실 쿠버네티스를 다루려면 도커보다는 많은 기본 지식이 필요하다.

그중에서도 네트워크에 대해 많이 알아 두어야 한다.

 

 

 

 

 

 

 

 

## 쿠버네티스 아키텍처

  • 도커가 컨테이너와 관련된 전반적이고 추상화된 기술을 제공한다고 하면, 쿠버네티스는 다량의 컨테이너를 하나의 물리적인 서버에 배치하여 이를 사용하듯이 관리해주는 역할을 한다.

 

 

  • 쿠버네티스의 영역은 크게 노드를 하나로 묶는 클러스터를 관리하는 컨트롤 플레인 영역과 흩어져 있는 노드를 관리하는 노드 영역으로 나눌 있다.

 

 

  • 컨트롤 플레인 컴포넌트

: 클러스터에 관한 결정을 내리고 클러스터 이벤트를 감지하며 반응.

 

  1. Kube-apiserver : 쿠버네티스의 모든 컴포넌트의 통신을 담당한다.
  2. Etcd : 모든 클러스터 데이터를 담는 쿠버네티스 뒷단의 저장소로 사용되는 -밸류 저장소이다.
  3. Kube-scheduler : 노드가 배정되지 않은 새로 생성된 파드를 감지하고, 실행할 노드를 선택하는 컴포넌트이다.
  4. Kube-controller-manager : 컨트롤러를 구동하는 컴포넌트이다. 구동되는 컨트롤러로 노드 컨트롤러, 레플리케이션 컨트롤러, 엔드포인트 컨트롤러, 서비스 어카운트, 토큰 컨트롤러 등이 있다.

   5. Cloud-controller-manager : 바탕을 이루는 클라우드 제공 사업자와 상호작용하는 컨트롤러를 작동시킨다. Cloud-controller-manager 바이너리는 쿠버네티스 릴리스1.6에서 도입된 알파 기능이다.

 

   6. Node-component : 동작 중인 파드를 유지시키고 쿠버네티스 런타임 환경을 제공하며, 모든 노드 상에서 동작한다.

 

   7. Kubelet : 클러스터의 노드에서 실행되는 에이전트이다. Kubelet 파드에서 컨테이너가 확실하게 동작하도록 관리한다.

 

   8. Kube-proxy : 클러스터의 노드에서 실행되는 네트워크 프록시로, 쿠버네티스 서비스 개념의 구현부이다. 또한 노드의 네트워크 규칙을 유지, 관리한다. 네트워크 규칙이 내부 네트워크 세션이나 클러스터 바깥에서 파드로 네트워크 통신을 있도록 해준다.

 

   9. Container-runtime : 컨테이너 실행을 담당하는 소프트웨어이다. 쿠버네티스는 도커, containerd, CRI-O 그리고 쿠버네티스 CRI 같은 여러 컨테이너 런타임을 지원한다.

 

 

 

 

반응형

댓글