Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- cache
- StringBuilder
- jwt
- MSA
- KEVISS
- static
- lambda
- 바이너리 카운팅
- equals
- stream
- DDL
- VUE
- 열 속성
- 생성자 주입
- jpa
- 필드 주입
- hashcode
- SQL
- Spring
- 인덱스
- docker
- redis
- 테스트 코드
- Test
- 재정의
- 조합
- DI
- java
- select_type
- AOP
Archives
- Today
- Total
백엔드 개발자 블로그
Cluster Component 본문
1.1. Cluster Architecture
고가용성, 확장성, 자동 복구 기능 제공해서 사용
- Kubernetes는 Master Node와 Worker Node로 구성되어 있음
- Master Node
- ETCD : 클러스터의 구성 정보 저장
- Kube-API Server : 클러스터에 대한 모든 조작 가능하게 하는 RESTful API 제공
- Kube Controller Manager : Container를 관리하는 Controller(Pod, ReplicaSet, Deployment, 상태) 관리자
- Kube Scheduler : Pod를 어느 노드에 배치할지 스케줄링
- 클러스터 제어 중심 노드
- Worker Node 구성
- Kubelet : 마스터의 명령에 따라 노드 상태 보고, 파드 실행 및 관리 : 장애 모니터링과 복구 기능
- Kube Proxy : 클러스터 내 모든 포드 연결
- 컨테이너 런타임 : 컨테이너 실행하고 관리
- 컨테이너가 실행하는 노드
- Master Node
1.2. ETCD
- 역할
- 클러스터에 관한 정보(Nodes, Pods, Configs, Secrets, Accounts, Roles, Bindings) 저장
- 특징
- 분산되고 신뢰할 수 있는 key-value Store
- 각 개인당 문서 하나를 갖고 개인에 대한 모든 정보가 해당 key-value형식으로 파일에 저장 됨
- 한 파일의 변화가 다른 파일에 영향을 안줌
- 분산되고 신뢰할 수 있는 key-value Store
- 설치 방법
- 직접 다운로드해서 설치
- `wget -q --https-only \``"https://github.com/coreos/etcd/releases/download/v3.3.9/etcd-v3.3.9-linux-amd64.tar.gz"`
- kubeadm 사용하여 설치
- `kubectl exec etc-master -n kube-system`
- 명령어명령어기능
`./etcd` 실행 `./etcdctl set key1 value1` key-value 저장 `./etcdctl get key1` key 값 조회 `./etcdctl` 명령어 조회 `./etcdctl --version` 버전 확인(etcdctl, API version) `export ETCDTL_API={버전숫자} ./etcdctl version` etcdctl version 변경하기
1.3. Kube-API Server
- 역할
- User 인증
- Request 유효성 확인
- ETCD와 상호작용(조회, 변경)
- 스케줄려와 상호작용
- kubelet에 실행 명령
- 설치 방법
- 직접 다운로드해서 설치
- `wget https:``//storage.googleapis.com/kubernetes-release/release/v1.13.0/bin/linux/amd64/kube-apiserver`
- 옵션 보기
- kubeadm 사용해서 옵션 보기
- `cat /etc/kubernetes/manifests/kube-apiserver.yaml`
- kubeadm 안사용하고 옵션 보기
- api-server 옵션 보기
- `cat /etc/systemd/system/kube-apiserver.service`
- 프로세스 실행과 효과적인 옵션도 볼 수 있음
- `ps -aux | grep kube-apiserver`
1.4. Kube Controller Manager
- 역할
- container 를 관리하는 controller 관리자
- 상태 모니터링
- 상태 변경
- container 를 관리하는 controller 관리자
- 옵션 보기
- kubeadm 사용해서 옵션 보기
- `cat /etc/kubernetes/mainifests/kube-controller-manager.yaml`
- kubeadm 안사용하고 옵션 보기
- Kube Controller Manager 옵션 보기
- `cat /etc/systemd/system/kube-controller-mangager.sesrvice`
- 프로세스 실행과 효과적인 옵션도 볼 수 있음
- `ps -aux | grep kube-controller-mangager`
1.5. Kube Scheduler
- 역할
- 어떤 POD가 어떤 Node에 들어갈지만 결정
- 조건에 안맞는 node 필터링
- 우선순위 따지기
- 어떤 POD가 어떤 Node에 들어갈지만 결정
- 설치 방법
- 직접 다운로드해서 설치
- `wget https:``//storage.googleapis.com/kubernetes-release/release/v1.13.0/bin/linux/amd64/kube-scheduler`
- 옵션 보기
- kubeadm으로 옵션 보기
- `cat /etc/kubernetes/mainifests/kube-scheduler.yaml`
- kubeadm 안사용하고 옵션 보기
- Kube-Scheduler 옵션 보기
- `cat /etc/systemd/system/kube-scheduler.sesrvice`
- 프로세스 실행과 효과적인 옵션도 볼 수 있음
- `ps -aux | grep kube-scheduler`
1.6. Kubelet
- 역할
- 클러스터로 노드를 등록
- POD를 생성
- Kube-scheduler에 의해
- Node와 POD를 모니터링
- 설치 방법
- 직접 다운로드해서 설치
- `wget https:``//storage.googleapis.com/kubernetes-release/release/v1.13.0/bin/linux/amd64/kubelet`
- 옵션 보기
- kubeadm 안사용하고 옵션 보기
- `ps -aux | grep kubelet`
1.7. Kube Proxy
- 역할
- 클러스터 내 모든 포드 연결
- 설치 방법
- 직접 다운로드해서 설치
- `wget https:``//storage.googleapis.com/kubernetes-release/v1.13.0/bin/linux/amd64/kube-proxy`
- 확인하기
- kubeadm으로 Kube Proxy 확인하기
- `kubectl get daemonset -n kube-system`
'CI CD > K8S' 카테고리의 다른 글
Core Concept (0) | 2023.08.22 |
---|