Post

Kubernetes - kube-system

Kubernetes 기초

Kubernetes - kube-system

Kube-system 컴포넌트의 이해

Image

큐브 API서버

  • kubernetes System 컴포넌트는 오직 API서버와 통신
  • 컴포넌트간 통신 x
  • etcd와 통신하는 유일한 컴포넌트 API
  • RESTful API를 통해서 클러스터 상태를 쿼리, 수정할 수 있는 기능 제공
  • 구체적인 역할

    큐브 컨트롤러 매니저

Image

큐브 스케쥴러

  • 일반적으로 실행 할 노드를 직접 정해주지 않음
  • 요청 받은 리소스를 어느 노드에서 실행할지 결정하는 역할
  • 현재 노드의 상태를 점검하고 최상의 노드를 찾아 배치
  • 다수의 포드를 배치하는 경우에는 라운드로빈을 사용하여 분산

    kubernetes System컴포넌트 확인

1
kubectl get pod -n kube-system

Image

yaml파일 저장 위치확

1
ls /etc/kubernetes/manifests/

static pod

  • kubelet이 직접 실행하는 포드
  • 각각의 노드에서 kubelet에 의해 실행
  • pod들을 삭제할 때, apiserver를 통해서 실행되지 않은 static pod는 삭제 불가
  • 즉, 노드의 필요에 의해 사용하고자 하는 포드는 static pod로 셋팅
  • 다음 명령들을 사용하여 실행하고자 하는 static pod의 위치를 설정 가능
  • /etc/kubernetes/manifest/ 폴더 기본 경로

    etcd 란

  • etcd는 데이터베이스다!
  • Key - value 데이터 셋 형식으로 구성
  • 다중 Key - value 가능
  • etcdctl 명령어가 필요 → 다운받아야함 ```yaml wget https://github.com/etcd-io/etcd/releases/download/v3.5.6/etcd-v3.5.6-linux-amd64.tar.gz tar -xf etcd-v3.5.6-linux-amd64.tar.gz

sudo ETCDCTL_API=3 ./etcdctl –endpoints 127.0.0.1:2379 –cacert /etc/kubernetes/pki/etcd/ca.crt –cert /etc/kubernetes/pki/etcd/server.crt –key /etc/kubernetes/pki/etcd/server.key get / –prefix –keys-only

1
2
3
4
5
6
### 간단한 key-value put & get

```yaml
sudo ETCDCTL_API=3 ./etcdctl --endpoints 127.0.0.1:2379 --cacert /etc/kubernetes/pki/etcd/ca.crt --cert /etc/kubernetes/pki/etcd/server.crt --key /etc/kubernetes/pki/etcd/server.key  put key1 value1
sudo ETCDCTL_API=3 ./etcdctl --endpoints 127.0.0.1:2379 --cacert /etc/kubernetes/pki/etcd/ca.crt --cert /etc/kubernetes/pki/etcd/server.crt --key /etc/kubernetes/pki/etcd/server.key get key1
This post is licensed under CC BY 4.0 by the author.