쿠버네티스 서비스를 생성하고 로컬컴퓨터나 다른 인스턴스에서 쉘 명령을 실행해야만 코버네티스 오브젝트를 제어할수 있다.
쉘스크립트를 사용해야 하기때문에 인스턴스를 하나 만들어서 작업을 할 것이다.
ekctl 명령어로 클러스터를 생성할 수도 있다.
#cluster.yaml (파일 생성)
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig
metadata:
name: board-cluster
region: ap-northeast-2
$ eksctl create cluster -f cluster.yaml
사실 쿠버네티스를 다루려면 도커보다는 좀 더 많은 기본 지식이 필요하다.
그중에서도 네트워크에 대해 많이 알아 두어야 한다.
## 쿠버네티스 아키텍처
- 도커가 컨테이너와 관련된 전반적이고 추상화된 기술을 제공한다고 하면, 쿠버네티스는 다량의 컨테이너를 하나의 물리적인 서버에 배치하여 이를 사용하듯이 관리해주는 역할을 한다.
- 쿠버네티스의 영역은 크게 노드를 하나로 묶는 클러스터를 관리하는 컨트롤 플레인 영역과 흩어져 있는 각 노드를 관리하는 노드 영역으로 나눌 수 있다.
- 컨트롤 플레인 컴포넌트
: 클러스터에 관한 결정을 내리고 클러스터 이벤트를 감지하며 반응.
- Kube-apiserver : 쿠버네티스의 모든 컴포넌트의 통신을 담당한다.
- Etcd : 모든 클러스터 데이터를 담는 쿠버네티스 뒷단의 저장소로 사용되는 키-밸류 저장소이다.
- Kube-scheduler : 노드가 배정되지 않은 새로 생성된 파드를 감지하고, 실행할 노드를 선택하는 컴포넌트이다.
- 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와 같은 여러 컨테이너 런타임을 지원한다.
'[AWS]' 카테고리의 다른 글
도커 명령어 (0) | 2020.09.21 |
---|---|
도커 레지스트리 배포 프로세스 (0) | 2020.09.21 |
AWS EKS - Create Kubernetes cluster on Amazon EKS | the easy way (0) | 2020.09.16 |
AWS 기존 EC2 인스턴스에 스냅샷 복원하기 (0) | 2020.09.11 |
천만 사용자를 위한 AWS 클라우드 아키텍처 진화하기 (0) | 2020.09.11 |
댓글