Skip to content

K8S 기본 정리

SEO WON JIN edited this page Nov 7, 2021 · 2 revisions

ㅁ 클러스터 구성
ㅇ 제어 계층
- Kube-API 서버 : k8s api를 통해 타 컴포넌트를 제어하도록 노출되는 프론트 서버
-> 수평 확장 정책은 어디서?
- Etcd : 전체 클러스터 데이터를 저장하는 벡엔드, 키 벨류 형태로 저장
- Kube-scheduler: 노드가 배정되지 않은 파드 감지 / 실행할 노드를 선택
-> 헬름차트로 하드웨어 / 소프트웨어 정책 조사 필요
-> Affinity를 통한 서비스 구별
-> 데이터 지역성과 워크로드간 간섭
-> 데드라인등
위 사항을 고려하여 배포

  • kube-contoller manager : 컨트롤러 프로세스를 실행 -> 컨트롤러들은 논리적으로 분리된 프로세스지만, 모두 같이 컴파일되고 단일 프로세스(manager)에서 실행
  1. 노드 컨트롤러 : 노드 다운시 통지와 대응 2. 레플리케이션 컨트롤러: 시스템의 모든 replication 대상의 수를 알맞게 유지 3. 엔드포인트 컨트롤러: 서비스와 파드 연결 4. 서비스 어카운트 & 토큰 컨트롤러 : 네임스페이스 기본 계정과 API 접근 토큰 생성
- Cloud-controller-manager 
CSP 클라우드별 컨트롤 로직을 포함함 
CSP API를 통해 클러스터 연결,  클라우드 플랫폼 연관 컴포넌트와 클러스터하고만 작용하는 컴포넌트를 구별 

-> 어떻게? 해당 모듈은 CSP 전용 컨트롤러만 실행함, 로컬pc등의 환경은 이 컴포넌트가 생성되지 않음 1. 노드 컨트롤러 : CSP 클라우드 상에서 노드삭제 여부 확인 2. 라우트 컨트롤러 : 기본 클라우드 인프라에 경로 구성??? 3. 서비스 컨트롤러 : 클라우드 제공 사업자 LB 생성, 업데이트 , 삭제

ㅇ 노드 컴포넌트 - Kubelet : 각 노드에서 실행되며, pod 내 컨테이너의 동작을 보증함 PodSpec 집합을 받고 해당 스펙에 따라 동작하도록 제어, k8s외 다른 컨테이너 관리 x (kubectl과 차이) - Kube-proxy : 노드별 네트워크 프록시, 노드의 네트워크 규칙 관리 운영 체제별 패킷 필터링이 있는경우 사용함, 없으면 포워드 - 컨테이너 런타임 : 아래 사항을 구현한 모든 컨테이너 런타임을 지원하여 컨테이너의 실행을 지원 -> containerD? -> CRI-O? -> K8s CRI -> Docker : 얘는 뭐지

ㅇ Addon

  • 쿠버네티스 리소스(demonset , deployment etc..)로 클러스터 기능 구현
  • 에드온 관련 네임스페이스 리소스는 kube-system 네임스페이스로 구별
  • 기능은 클러스터 단위로 제공됨
  • DNS : 모든 클러스터는 클러스터 DNS를 기본으로 가짐, 구성 환경 내 다른 DNS와 더불어 레코드를 제공해줌 k8s 기반 구동 컨테이너는 DNS 검색시 자동으로 이 서버를 포함함
  • 웹 UI: - 컨테이너 리소스 모니터링: - 클러스터 레벨 로깅 : 로그 저장소에 컨테이너 로그 저장
Clone this wiki locally