Skip to content

Latest commit

 

History

History
32 lines (31 loc) · 2.52 KB

terms.md

File metadata and controls

32 lines (31 loc) · 2.52 KB

용어 정리

  • IaC를 위해 k8s에서는 오브젝트를 사용한다. 시스템에 오브젝트를 올려두면 오브젝트 생성 보장을 위해 지속적으로 동작한다.
  • 다음과 같은 오브젝트 필드는 거의 모든 오브젝트의 필드에 포함이 된다
    • spec: 오브젝트를 생성할 때 리소스에 원하는 특징에 대한 설명이 작성된다
    • status: k8s 오브젝트의 현재 상태를 설명한다. 실제 상태를 정의한 상태와 일치시키기 위해 동작한다
    • apiVersion: k8s 버전
    • kind: 어떤 종류의 오브젝트를 생성할지
    • metadata: 이름 문자열, uid, 네임스페이스를 포함
  • 관리기법은 다음과 같이 여러가지가 있다
    • 명령형 커맨드: cli로 직접 명령어를 때려 동작시킨다
    • 명령형 오브젝트 구성
      • yml 파일로 작성해 버전관리가 가능하다
      • 작성하기 위해 오브젝트 스키마에 대한 기본적인 이해가 필요하다
      • 디렉토리가 아닌 파일에 가장 적합하다
    • 선언형 오브젝트 구성
      • diff를 사용해 k8s 내에서 버전관리가 가능하다
  • 네임스페이스: 여러개의 프로젝트가 있는 환경에서 사용할 수 있도록 만들어졌다. k8s에는 다음 초기 네임스페이스가 있다
    • default
    • kube-system: k8s 시스템에서 생성한 오브젝트를 위한 네임스페이스
    • kube-public: 자동으로 생성되며 모든 사용자가 읽기 권한으로 접근이 가능하다
    • kube-node-lease: 클러스터가 스케일링될 때 하트비트 성능을 향상시키는 각 노드와 관련된 리스 오브젝트에 대한 네임스페이스
  • 노드
    • master: 주요 컨트롤 유닛으로 worker를 관리하는 주체
      • kubectl: master와 통신하는 명령어
      • api server: rest api 요청을 처리하고 k8s 클러스터를 구성하는 컴포넌트들과 통신한다
      • scheduler: 노드들의 리소스를 파악하며 pod이 배치될 적절한 노드를 선택한다
      • controller manager: 클러스터 상태 감시 및 상태를 유지한다
      • etcd: 오픈소스 key/value 저장소로 master의 api server가 http를 통해 접근할 수 있는 데이터를 저장하는 용도로 사용한다
    • worker: 할당한 태스크를 요청대로 수행한다
      • kubelet: master와 통신을 담당하는 에이전트로 노드에서 동작하는 pod을 관리한다
      • kube-proxy: 노드별로 탑재되어 네트워크 프록시 및 로드밸런서 역할을 한다