[Kubernetes] # 오브젝트와 컨트롤러

empty·2021년 1월 15일
0

Kubernetes

목록 보기
4/7

쿠버네티스는 크게 1.오브젝트와 2.컨트롤러로 나뉜다. 사용자는 템플릿 등으로 쿠버네티스에 자원의 Desired State(바라는 상태)를 정의하고 컨트롤러는 Desired State(바라는 상태)와 현재 상태가 일치하도록 오브젝트들을 생성/삭제 한다.

오브젝트의 종류

  • Pod
  • Service
  • Volume
  • Namespace

...

컨트롤러의 종류

  • ReplicaSet
  • Deployment
  • StatefulSet
  • DaemonSet
  • Job

...

네임스페이스

네임스페이스는 쿠버네티스 클러스터 하나를 여러 개 논리적인 단위로 나누어서 사용하는 것이다.

  • 클러스터 하나를 여러 개 팀이나 사용자가 함께 공유할 수 있음
  • 용도에 따라 실행해야 하는 앱을 구분할 때도 네임스페이스를 사용함
  • 네임스페이스 별로 Quota를 설정하여 사용량을 제한할 수도 있음.

쿠버네티스를 처음 설치하게 되면 기본적인 몇 개의 네임스페이스가 생성된다.

  • default

    : 기본 네임스페이스이다. 쿠버네티스에서 별도의 네임스페이스를 지정하는 명령어를 입력하지 않는이상 default 네임스페이스에 적용한다.

  • kube-system

    : 쿠버네티스 시스템에서 관리하는 네임스페이스로 관리용 파드나 설정이 있다.

  • kube-public

    : 클러스터 안 모든 사용자가 읽을 수 있는 네임스페이스이다.

    ⇒ 모두가 볼 수 있기 때문에 클러스터 사용량 같은 정보를 여기서 관리함.

  • kube-node-lease

    : 각 노드의 임대 오브젝트(Lease Object)들을 관리하는 네임스페이스

Lease Object?
: Lease Object는 클러스터가 확장될 때 노드의 하트비트 성능을 향상시키는 역할을 하는 오브젝트이다.

🔔 명령어 입력 시 기본 네임스페이스 변경하기

  1. 컨텍스트 정보 확인

    # 1. 현재 컨텍스트 확인 
    kubectl config current-context
    docker-desktop
    
    # 2. 컨텍스트 정보 확인
    kubectl config get-contexts docker-desktop
  2. 기본 네임스페이스 변경

    kubectl config set-context docker-desktop --namespace=kube-system
    
    # 혹은
    
    kubectl config set-context $(kubectl config current-context) --namespace=kube-system

*kubens라는 툴 사용 시 쉽게 기본 네임스페이스를 변경할 수 있다.

모든 네임스페이스의 모든 파드 출력
kubectl get pods --all-namespaces

0개의 댓글