728x90
쿠버네티스와 Etcd 개념 및 클러스터 설정
1. Etcd의 역할과 중요성
- Etcd는 쿠버네티스에서 클러스터의 상태를 저장하는 분산 키-값 데이터 저장소.
- 저장 데이터:
- 노드, 포드, 복제본 세트, 시크릿, 서비스 계정, 역할 등.
- 쿠버네티스 API 서버와 통신하며, 클러스터 상태 변경 사항은 Etcd에 업데이트되어야 완료로 간주됨.
- Etcd는 기본적으로 IP:포트 2379에서 실행되며, API 서버가 이 주소를 참조하도록 구성.
2. 쿠버네티스 클러스터 배포 방법
- 스크래치 방식 (From Scratch)
- Etcd 및 기타 바이너리를 수동으로 다운로드하여 설치.
- 마스터 노드에 직접 설치 후 서비스를 구성.
- 인증서(TLS) 생성 및 구성 필요.
- Kubeadm 도구 사용
- Kubeadm이 Etcd를 자동으로 배포.
- kube-system 네임스페이스에서 Etcd 포드로 실행됨.
- Etcdctl 유틸리티를 이용해 Etcd 데이터베이스를 탐색 가능.
3. Etcd 데이터 구조
- Etcd의 데이터는 특정 디렉터리 구조로 저장됨:
- 루트 디렉터리: registry.
- 하위 디렉터리: 노드, 포드, 복제본 세트, 배포 등.
4. 고가용성(High Availability) 설정
- 고가용성 클러스터:
- 여러 마스터 노드와 여러 Etcd 인스턴스가 존재.
- Etcd 인스턴스들 간의 동기화 필요.
- 초기 클러스터 설정 시 각 Etcd 인스턴스 간의 통신을 위한 매개변수 설정 필요.
5. TLS 인증서
- Etcd와 클러스터 구성 시 TLS 인증서 사용 필수.
- 이 강의에서는 TLS 인증서 생성 및 구성에 대한 추가 학습이 예정됨.
ETCDCTL 명령어 및 사용 방법 요약
ETCDCTL: ETCD와 상호작용하는 CLI 도구
- ETCDCTL은 ETCD 서버와 상호작용할 수 있는 CLI 도구.
- 지원하는 API 버전:
- Version 2 (기본값).
- Version 3.
API 버전별 명령어 차이점
- ETCDCTL API Version 2
- 기본적으로 설정된 버전.
- 주요 명령어:
- etcdctl backup
- etcdctl cluster-health
- etcdctl mk
- etcdctl mkdir
- etcdctl set
- ETCDCTL API Version 3
- 환경 변수로 설정 필요: export ETCDCTL_API=3
- 주요 명령어:
- etcdctl snapshot save
- etcdctl endpoint health
- etcdctl get
- etcdctl put
- API 버전이 설정되지 않으면 기본적으로 Version 2로 동작.
- Version 3 명령어를 사용하려면 환경 변수 ETCDCTL_API를 3으로 설정해야 함.
- 설정된 API 버전에 따라 다른 명령어를 사용해야 하며, 호환되지 않음.
인증서 파일 지정
- ETCDCTL을 통해 ETCD API 서버와 통신하려면 인증서 파일 경로를 지정해야 함.
- 인증서 파일 경로:
- --cacert /etc/kubernetes/pki/etcd/ca.crt
- --cert /etc/kubernetes/pki/etcd/server.crt
- --key /etc/kubernetes/pki/etcd/server.key
- 인증서는 ETCD의 보안을 유지하기 위해 필수이며, 이후 강의에서 자세히 다룸.
ETCDCTL 명령어 실행 예시
- Version 3 API를 사용하여 데이터 조회:
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"
- 해석:
- ETCDCTL_API=3: API 버전을 Version 3으로 설정.
- etcdctl get /: 루트 디렉터리부터 데이터를 가져옴.
- --prefix: 접두사가 일치하는 모든 키를 검색.
- --keys-only: 키만 출력.
- --limit=10: 최대 10개의 결과만 출력.
- --cacert, --cert, --key: 인증서 파일 경로 지정.
핵심 정리
- API 버전을 명확히 설정해야 함.
- 명령어 실행 시 인증서 파일 경로를 지정해야 함.
- API 버전과 명령어의 호환성을 이해하고 적절히 사용해야 함.
728x90
'쿠버네티스' 카테고리의 다른 글
Kubernetes RBAC(Role-Based Access Control) 정리 (0) | 2024.12.22 |
---|---|
[쿠버네티스] 아키텍쳐 정리 및 간단한 실습 정리 (4) | 2024.12.15 |
[쿠버네티스] kube- 관련 개념 정리 (0) | 2024.12.11 |
쿠버네티스 개념 정리 - 1 (0) | 2024.12.07 |
쿠버네티스 실습을 위한 minikube 설치 (0) | 2024.10.27 |