반응형
Basic in Kubernetes
- what is ETCD?
- ETCD 는 간단하고, 안전하며, 빠른, 분산 안정적 키값 저장소입니다.
- what is key-value store?
- 중복 값을 가질 수 없다.
- how to get started quickly?
# 1. download curl -L https://github.com/etcd-io/etcd/releases/download/v3.3.11/etcd- v3.3.11-linux-amd64.tar.gz -o etcd-v3.3.11-linux-amd64.tar.gz # 2. extract tar xzcf etcd-v3.3.11-linux-amd64.tar.gz (안깔리길레 brew install etcd) # 3. run ETCD Service ./etcd
- how to operate ETCD?
# 4. operate ETCD
$etcdctl set key1 value1
$etcdctl put key1 value1
(etcdctl= etcd 용 cli)
$etcdctl get key1
(base) ➜ 20220228 git:(master) ✗ etcdctl get key1
key1
value1
$etcdctl
# 다양한 헬프문구 나옴.
ETCD in Kubernetes
- 쿠버네티스에서 ETCD는 cluster를 저장한다.
- nodes
- configs
- secrets
- accounts
- roles
- bindings
- ..
kubectl get
명령을 실행할때, 표시되는 모든 정보들은 ETCD 서버에서 가져오는 것이다.- 노드 추가, pods 배포, replicaset update와 같은 클러스터에 수행하는 변경작업은 ETCD 에 업데이트 된다.
- ETCD 서버에 업데이트가 된 이후에만 변경이된 것으로 간주된다.
- 클러스터를 설정하는 방법에 따라, ETCD가 다르게 배포된다.
- 이 섹션 전체에서 우리는 2가지 유형의 Kubernetes 배포에 대해 설명합니다.
- 손수 배포
- 하나는 kubeadm tool 을 이용한 배포
2가지 유형의 Kubernetes 배포
- 손수 배포
- etcd를 직접 다운로드해서 ETCD를 배포한다.
- 바이너리를 설치하고, 마스터노드에 서비스로 ETCD를 구성한다.
- 서비스에 전달되는 옵션 중 다수는 인증서와 관련이 있다.
advertise-client-urls
:- 만약에 우리가 고가용성(HA) 쿠베를 설정할때, 내가 신경써야하는 유일한 옵션
- 이것은 ETCD 가 수신하는 주소이다.
- 이것은 서버의 ip 와 포트가 있다.
- 2379: etcd 가 listen 하는 기본 포트이다.
- kube-apiserver 가 etcd 서버에 접속을 시도할때, 설정해야하는 Url 이다.
- kubeadm 배포
- kubeadme를 이용해 클러스터를 설정하는 경우, kubeadm 는 ETCD 서버를 kube-system namespace 내, POD 로 배포한다.
- kubectl 이용해서 etcd 데이터베이스를 탐색 가능하다.
- 쿠버네티스는 데이터를 특정 디렉토리 구조로 저장한다.
- root directory 는
registry
이고, 그 아래에는, 다양한 쿠버네티스 구성요소를 볼 수 있다.- 다양한 쿠버네티스 구성요소
- minions
- nodes
- pods
- replicasets
- deployments
- roles
- secrets
- 다양한 쿠버네티스 구성요소
- root directory 는
- kubeadme를 이용해 클러스터를 설정하는 경우, kubeadm 는 ETCD 서버를 kube-system namespace 내, POD 로 배포한다.
-
#kubeadm 는 ETCD 서버를 kube-system namespace 내, POD 로 배포한다. kubetctl get pods -n kube-sytem
-
# 쿠베에 저장된 모든 키를 나열하려면, 다음과 같이 명령어를 실행하시오. kubectl exec etcd-master -n kube-system etcdctl get / ---prefix -keys-only # root directory 는 `registry` 이고, 그 아래에는, 다양한 쿠버네티스 구성
ETCD in HA Environment
- 고가용성 환경(HA Environment, High Availability Environment)에서는 클러스터에 여러 마스터 노드가 있습니다.
- 여러 ETCD 인스턴스가 마스터 노드에 분산됩니다.![image-20220304223502928](/Users/giljaeeun/Library/Application Support/typora-user-images/image-20220304223502928.png)
- 이 경우, etcd Service Configuration 에 올바른 매개변수를 지정하여,etcd 인스턴스를 분별해야한다.
- "initial-cluster"은 ETCD 서비스의 여러 인스턴스를 지정해야 하는 부분이다.
controller-0
,controller-1
이렇게 구분자로 구별되는 것이 보임.
--initial-cluster controller-0=https://${CONTROLLER0_IP}:2380,controller-1=https://${CONTROLLER1_IP}:2380
- "initial-cluster"은 ETCD 서비스의 여러 인스턴스를 지정해야 하는 부분이다.
ETCD - Commands (Optional)
- (Optional) Additional information about ETCDCTL Utility
- ETCDCTL 은 ETCD 와 통신하기 위한 cli 이다.
- 버전2, ,버전3이 있는데,, 버전2가 default . 둘이 서로 다른 command 이용
- API 버전 세팅
export ETCDCTL_API=3
- 버전2
etcdtl backup
etcdctl cluster-health
etcdctl mk
etcdctl mkdir
etcdctl set
- 버전3
etcdctl snapshot save
etcdctl endpoint health
etcdctl get
etcdctl put
- 또한, 너는 ETCD APIserver에 ETCDCTL을 인증하기 위해, 무조건 certificate 해야한다.
- certificate files 는 etcd-master 해당 path 에 있다.
-
--cacert /etc/kubernetes/pki/etcd/ca.crt --cert /etc/kubernetes/pki/etcd/server.crt --key /etc/kubernetes/pki/etcd/server.key
- 그러므로, etcd master 을 수행할 때, 너는 반드시 버전이랑, certification 을 해야한다.
-
kubectl exec etcd-master -n kube-system -- sh -c "ETCDCTL_API=3 etcdctl get / --prefix --keys-only --limit=10 --cacert /etc/kubernetes/pki/etcd/ca.crt --cert /etc/kubernetes/pki/etcd/server.crt --key /etc/kubernetes/pki/etcd/server.key"
-
반응형
'독후감' 카테고리의 다른 글
Chap 15. Kube Controller Manager (0) | 2022.03.07 |
---|---|
Chap14. Kube-API Server (0) | 2022.03.07 |
CKA udemy 강의 Core Concept 1 - main structure (0) | 2022.03.07 |
쿠버네티스 인 액션 5장. 서비스 (0) | 2022.02.21 |
쿠버네티스 패턴 4장. 정상 상태 점검 (0) | 2022.02.15 |