채용 공고를 보면서 데이터 엔지니어 직무의 우대사항에 왜 쿠버네티스가 들어간걸까?
이런 생각이 들어 GPT의 힘을 빌려 정리해두었다.
막연하게 배워야한다라고 생각하는게 아니라 글로 작성해보니 체감이 더 잘되는 것 같다.
🥡 데이터 엔지니어가 쿠버네티스를 배우는 이유?
- 효율적인 리소스 관리
쿠버네티스를 통해 애플리케이션과 서비스의 배포, 확장 및 관리를 자동화할 수 있습니다. 이는 인프라 운영의 복잡성을 줄이고, 자원을 더 효율적으로 사용할 수 있게 합니다.
- 확장성 및 가용성 향상
자동 확장 기능과 함께 노드 장애가 발생했을 때 서비스의 지속적인 운영을 보장합니다. ⇒ 고가용성과 확장성
- 다양한 환경과의 호환성
우선 포스팅 작성 전에 이번 포스팅의 거의 모든 내용은 다음 블로그를 참고하였다.
따라서 더 자세한 정보를 원한다면 해당 블로그를 참고하는 것을 추천한다.
이번 포스팅은 단순하게 내가 공부한 내용을 타이핑해보면서 기록하는 용도이다.
https://easyitwanner.tistory.com/174
[Kubernetes] 쿠버네티스의 구성 요소
목차 마스터 노드(컨트롤 플레인) 워커 노드 애드온 마스터 노드(컨트롤 플레인) 컨트롤 플레인은 클러스터를 제어하고 작동시킵니다. 즉, 마스터 노드는 전체 쿠버네티스 시스템을 제어하고 관
easyitwanner.tistory.com
쿠버네티스의 장점
- 애플리케이션 배포 단순화
- 하드웨어 활용도 증가
- 상태 확인과 자가 치유
- 오토스케일링
Master node = Control plane
컨트롤 플레인은 클러스터를 제어하고 작동시킨다. 하나의 마스터 노드에서 실행하거나 여러 노드로 분할되고 복제되어 고가용성을 보장할 수 있는 요소들로 구성된다.
구성 요소
- etc 분산 저장 스토리지
- 분산형, 신뢰 가능한 키 값 저장소
- 클러스터의 구성 데이터와 상태를 보유
- 뗏목 합의 알고리즘 기반
- API 서버
- 클러스터 내의 사용자, 관리자 및 기타 구성 요소 간의 기본 상호작용 지점.
- Restful APU 요청을 처리하고 유효성을 검사하며, etcd 데이터 저장소의 개체를 업데이트한다.
- 클러스터의 상태를 관리하고 컨트롤 플레인의 일관성, 보안, 안전성을 보장하는 역할을 수행한다.
- API서버가 Kubelet에 직접 접속하는 경우
- log를 가져오는 경우
- kubectl attach로 실행중인 컨테이너에 연결 시
- kubectl port-foward를 실행할 때
- 스케쥴러
- 새로 생성되거나 예약되지 않은 파드를 클러스터 내의 적절한 노드에 할당
- 리소스 가용성, 제약 조건 및 정의된 정책을 기반으로 포드를 실행할 위치를 결정하여 워크로드가 클러스터 전체에 효율적으로 분산되게 만듬.
- 컨트롤러 매니저
- 클러스터의 원하는 상태를 자동화하고 유지 관리하는 다양한 컨트롤러를 관리하는 k8s 제어 평면의 핵심구성요소
- 클러스터의 상태를 원하는 상태와 일치하도록 필요한 조정을 수행하는 제어 루프이다.
역할
- 클러스터 상태 관리
- 예약: Pod 예약
- 확장: 실행 중인 Pod수를 자동으로 확장 또는 축소
- 배포 업데이트 및 롤백: 애플리케이션 가동 중지 시간이 없음
- 클러스터 전체 네트워킹 관리
주요 기능
- 고가용성: 고가용성 구성 시 마스터 노드를 여러개로 실행
- 확장성: 마스터 노드는 수천개의 노드와 수만개의 포드가 있는 대규모 클러스터의 처리가 가능하다.
- 보안: 클러스터에 대한 액세스를 인증하고 승인해서 인증된 사용자만 특정 작업을 수행
- 사용자 정의 가능성
Worker node
컨테이너화된 애플리케이션을 실행하는 시스템.
구성 요소
- 컨테이너 런타임
- Kubelet: API서버와 통신하고 노드의 컨테이너를 관리한다.
- 컨테이너가 포드 내에서 예상되로 실행되도록 하는 역할.
- 컨트롤 플레인과 통신하고 노드에서 컨테이너의 수명 주기를 관리하는 기본 노드 에이전트 역할이다.
- 각 노드에서 실행되는 필수 구성요소이다.
- 쿠버네티스 서비스 프록시: 애플리케이션 구성 요소간에 네트워크 트래픽을 로드밸런싱함.
역할
- Pod 실행: 배포 가능한 가장 작은 단위인 Pod를 실행. 포드는 동일한 네트워크 네임스페이스를 공유하는 하나 이상의 컨테이너를 포함 가능.
- 컨테이너 관리: 필요에 따라 컨테이너 시작, 중지, 다시시작을 포함한 수명 주기를 관리
- 네트워킹: 작업자 노드는 IP 주소 할당 및 네트워크에 서비스 노출을 포함하여 실행중인 컨테이너에서 들어오고 나가는 네트워크 트래픽 처리
- 상태 확인
- 리소스 관리
주요 기능
- 확장성
- 유연성
- 내결함성: 하나 이상의 노드가 실패하더라도 애플리케이션이 계속 실행될 수 있다.
- 사용자 지정 가능성
'Infra & Container > k8s' 카테고리의 다른 글
k8s > GCE를 이용해서 설치하기(5) - Deployment 생성해보기 (0) | 2024.05.11 |
---|---|
k8s > Deployment (2) | 2024.05.11 |
k8s > GCE를 이용해서 설치하기(4) - Pod생성해보기 (0) | 2024.04.24 |
k8s > GCE를 이용해서 설치하기(3) - CNI (1) | 2024.04.19 |
k8s > GCE를 이용해서 설치하기(2) - Containerd, k8s설치 (0) | 2024.04.18 |