쿠버네티스를 설치하고 테스트 해본 과정을 공유 하려고 합니다.
구글에서 검색 해보고 테스트 해본 내용 입니다.
1. 쿠버네티스(kubernetes)란?
2. 쿠버네티스 목적
쿠버네티스 마스터노드에게 사용자가 필요한 컨테이너를 어떤 목적에 맞는 이미지로 몇 개 만들지만 명령만 하면 된다.
쿠버네티스는 컨테이너를 A서버와 B서버에 자동으로 할당하게 된다.
서버 컨테이너는 각각의 private ip를 가지고 있고, A서버와 B서버에 있는 컨테이너 간의 통신은 kube-proxy 등을 통해 통신이 가능하다.
쿠버네티스는 서버가 다운 되거나 컨테이너가 Fail상태가 되면 서비스를 지속적으로 제공 하기 위해서 동일한 컨테이너를 생성 한다.
쿠버네티스는 사용자가 접근할 때마다 container1 -> container2 -> container3 순서로 round-robin형태의 로그밸런싱이 제공 된다.
3. 쿠버네티스 용어
마스터 노드이다. 다중 도커데몬을 관리하는 일을한다.
도커가 설치되어 있으며 실제 컨테이너들이 생성되어 일하는 노드이며. 마스터의 관리를 받는다.
kubernetes의 기본 단위. 컨테이너 혹은 컨테이너의 묶음이다.
rc는 replication controller의 줄임 말이다. pod를 자동으로 생성 복제해주는 컨트롤이며, 복제 개수 설정을 3으로 하게 되면 3개의 pod가 서비스상에 계속 active상태가 된다.
pod의 group을 식별하는 라벨이라는 기준에 따라 pod들을 하나의 서비스로 외부에서 접근할 수 있도록 해준다.
kubenets에서 service, rc, pod등 기능을 설명한 데이터 형식 코드이며, 야믈이라고 읽는다.
kubernetes를 간단하게 부르기 위한 줄임 말이다. k와 s사이의 8개의 알파벳을 빼서 부르겠다 하여 k8s라고 지칭 한다.
4. 쿠버네티스 pod
5. pod생성 yaml
apiVersion: v1
kind: Pod
metadata:
name: k8s-nodejs
labels:
app: hi-nodejs
spec:
containers:
- name: gpu-test
image: 1985ck/gpu-test:1.0
ports:
- containerPort: 8000
6. pod - replicaset
7. kubernetes components
쿠버네티스의 주요 컨트롤 유닛으로서 worker nodes를 관리하는 주체이며, 클러스터에 관한 전박적인 결정을 하고 이벤트를 감지 및 반응하는 역할을 한다.
워커노드는 할당된 task를 요청대로 수행하는 시스템이며, 컨테이너들간의 네트워크 등 서비스에 필요한 전박적인 일을 마스터 노드와 통신하며 수행한다.
kubectl, api server, scheduler, controller manager, etcd
kubelet, kube-proxy, pod
8. kubernetes components
마스터 노드와 통신하는 명령어로서 쿠버네티스 API를 사용해서 마스터노드와 상호작용을 한다.
REST API 요청을 처리하고 쿠버네티스 클러스터를 구성하는 각 컴포넌트들과 통신을 담당한다.
노드들의 리소스 상태를 파악하여 pod가 배치될 적절한 노드를 선택해 주는 역할을 한다.
쿠버네티스 클러스터 상태 감시, 설정한 상태로 유지하는 역할을 한다.
오픈소스 key-value 저장소로서 Kubernetes에서는 Master Node의 API Server가 HTTP/JSON API를 이용하여 접근할 수 있는 구성 데이터를 저장하는 용도로 사용된다.
쿠버네티스 마스터 노드간의 통신을 담당하는 에이전트로서 노드에서 동작하는 pod들을 관리한다.
각 노드별로 탑재되며 네트워크 프록시 및 로드밸런서 역할을 한다.
'오픈소스' 카테고리의 다른 글
쿠버네티스 설치 및 실행 (0) | 2023.04.10 |
---|