Docker & Kubernetes

쿠버네티스 kubectl 커맨드 명령어 시트

beekei 2021. 11. 24. 13:58
반응형

kubectl 커맨드의 기본

쿠버네티스 클러스터에게 명령을 내릴 때는 kubectl을 사용한다.

kubectl 커먼대의 기본 구조는 아래와 같이 세 부분으로 구성된다.

kubectl <1. 커맨드> <2. 리소스 타입> [이름] [3. 옵션]
  1. 커맨드로 동작을 지정하고
  2. 리소스 타입과 이름으로 대상이 되는 오브젝트를 지정한 뒤
  3. 옵션을 지정

1. 커맨드

get 

지정한 오브젝트의 목록을 한 줄에 하나씩 출력

  • kubectl get -f <매니페스트 | 디렉터리>
  • kubectl get <리소스타입>
  • kubectl get <리소스타입> <이름>
  • kubectl get <리소스타입> <이름>

describe

get 보다 자세한 정보를 출력

  • kubectl describe -f <매니페스트 | 디렉터리>
  • kubectl describe <리소스타입>
  • kubectl describe <리소스타입> <이름>
  • kubectl describe <리소스타입> <이름>

apply

매니페스트에 기술된 오브젝트가 존재하지 않으면 생성하고, 존재하면 변경

  • kubectl apply -f <매니페스트>

create

매니페스트에 기술된 오브젝트를 생성

이미 있는 경우엔 에러 반환

  • kubectl create -f <파일명>

delete

매니페스트에 기술된 오브젝트를 삭제

  • kubectl delete -f <파일명>
  • kubectl delete <리소스타입> <이름>

config

접속 대상이 되는 콘텍스트(클러스터, 네임스페이스, 유저)의 목록을 출력하거나 선택

  • kubectl config get-contexts
  • kubectl config use-context <콘텍스트명>

exec 

컨테이너의 대화형으로 커맨드를 실행, 파드 내에 컨테이너가 여러 개 있는 경우 [-c]로 컨테이너명을 지정

컨테이너명은 'kubectl get describe <파드명>'으로 확인 가능

  • kubectl exec -it <파드명> [-c 컨테이너명] <커맨드>

run

파드를 실행

  • kubectl run <이름> --image=<이미지명>

logs

컨테이너의 로그 표시

  • kubectl logs <파드명> [-c 컨테이너명]

2. 리소스 타입

파드 관련 리소스 타입

pod(po) - 파드

컨테이너의 최소 기동 단위로, 기동 시 파드 네트워크상의 IP 주소를 할당받으며, 한 개 이상의 컨테이너를 내포

참고 문서

 

poddisruptionbudget(pdb) - 파드 정지 허용 수

파드의 개수가 지정한 개수 이하가 되지 않도록 디플로이먼트, 스테이트풀셋, 리플리카셋, 레플리케이션 컨트롤러의 동작을 제어

참고 문서

 

서비스 관련 리소스 타입

service(svc) - 서비스

파드를 클라이언트에 공개

참고 문서

 

endpoints(ep) - 엔드포인트

서비스를 제공하는 파드의 IP 주소와 포트를 관리

참고 문서

 

ingress(ing) - 인그레스

서비스 공개, TLS 암호, 세션 유지, URL 매핑 기능을 제공

참고 문서

 

컨트롤러 관련 리소스 타입

deployment(deploy) - 디플로이먼트

파드의 레플리카 수, 자기회복, 롤아웃, 롤백 등을 제어하는 컨트롤러

참고 문서

 

replicaset(rs) - 리플리카셋

파드의 리플레카 수를 제어하는 컨트롤러로, 디플로이먼트와 연계하여 동작

참고 문서

 

statefulset(sts) - 스테이트풀셋

퍼시스턴트 데이터를 보유하고 파드를 제어하는 컨트롤러, 퍼시스턴트 볼륨과 파드를 하나씩 쌍으로 묶어 각 이름에 동일한 일련 번호를 부여하여 관리

참고 문서

 

job - 잡

배치 처리를 수행하는 파드를 관리하는 컨트롤러

참고 문서

 

cronjob - 크론잡

정기적으로 실행되는 배치 처리를 관리하는 컨트롤러

참고 문서

 

daemonset(ds) - 데몬셋

모든 노드에 파드를 배치하는 컨트롤러

참고 문서

 

replicationcontroller(rc) - 리플리케이션 컨트롤러

파드의 레플리카 수를 제어하는 컨트롤러, 레플리카셋의 이전 버전

참고 문서

 

horizontalpodautoscaler - Horizontal Pod Autoscaler

워크로드에 따라 파드 수를 조절하는 컨트롤러

참고 문서

 

볼륨 관련 리소스 타입

persistentvolume(pv) - 퍼시스턴트 볼륨

로우 레벨 스토리지 관리

참고 문서

 

persistentvolumeclaim(pvc) - 퍼시스턴트 볼륨 클레임

스토리지 클래스와 용량을 지정해서 논리 볼륨에 프로비저닝을 요구

참고 문서

 

storageclass(sc) - 스토리지 클래스

스토리지의 종류

참고 문서

 

쿠버네티스 클러스터의 구성 관련 리소스 타입

node(no) - 노드

쿠버네티스 클러스터의  워크로드를 실행하는 서버

참고 문서

 

apiservice - API 서비스

마스터가 지원하는 API 서비스를 관리

참고 문서

 

componentstatuses(cs) - 컴포넌트 상태

scheduler, controller-manager, etcd-0에 헬스체크 결과를 보고

참고 문서

 

controllerrevision - 컨트롤러 리비전

컨트롤러의 리비전 관리

참고 문서

 

event - 이벤트

쿠버네티스 클러스터에서 발생한 이벤트를 기록하고 표시하기 위한 컨트롤러

참고 문서

 

컨피그맵과 시크릿 관련 리소스 타입

configmap(cm) - 컨피그맵

설정 파일을 저장

참고 문서

 

secret - 시크릿

패스워드 등 비밀성이 필요한 정보를 저장

참고 문서

 

네임스페이스 관련 리소스 타입

namespace(ns) - 네임스페이스

쿠버네티스 클러스터를 논리적으로 분할해서 사용

참고 문서

 

역활 기반 엑세스 제어(RBAC) 관련 리소스 타입

serviceaccount(sa) - 서비스 어카운트

파드에서 실행되는 프로세스를 위한 계정, 접근 권한을 식별하기 위해 사용

참고 문서

 

role - 롤

일련의 권한을 기술하여 롤을 정의

롤의 유효범위는 네임스페이스로 한정됨

참고 문서

 

rolebinding - 롤바인딩

서비스 어카운트와 롤을 바인딩

참고 문서

 

clusterrole - 클러스터 롤

쿠버네티스 클러스터 전체에 유요한 룰

참고 문서

 

clusterrolebinding - 클러스터 롤 바인딩

쿠버네티스 클러스터 전체에 유효한 클러스터 롤과 서비스 어카운트를 매핑

참고 문서

 

보안 관련 리소스 타입

certificatesigningrequest(csr) - 루트 인증서 서명 요구

인증 기관(cA)에 인증서 서명 요구 작성

참고 문서

 

networkpolicies(netpol) - 네트워크 폴리시

네임스페이스 사이에 네트워크 접근 제어

참고 문서

 

podsecuritypolicies(psp) - 파드 시큐리티 폴리시

파드 시큐리티 관련 항목의 기본값 설정

참고 문서

 

자원 관리 관련 리소스 타입

limitrange - limit range

네임스페이스 내 컨테이너의 CPU와 메모리 요구값과 상한값의 기본값 설정

참고 문서

 

resourcequota(quota) - resource quota

네임스페이스별 CPU와 메모리 요구량, 상한값 설정

참고 문서


3. 옵션

-n 네임스페이스명

조작 대상 지정된 네임스페이스로 한정

 

--all-namespaces -A

모든 네임스페이스의 오브젝트를 대상으로 함(v1.14부터)

 

-o=yaml

YAML 포맷으로 API 오브젝트를 표시

 

-o=wide

추가 정보 표시(파드의 IP 주소, 배치된 노드 이름 등)

 

-o=json

JSON 형식으로 API 오브젝트를 표시

 

-o=custom-columns=<spec>

항목을 지정해서 목록 표시

 

-o=custom-columns-file=<file>

템플릿 파일로 출력할 컬럼을 지정

 

-o=jsonpath=<template>

jsonpath에 일치하는 목록 표시

 

-o=jsonpath-file=<filename>

jsonpath 형식의 템플릿 파일로 출력할 내용 지정

 

 

 

 

참고

 

Overview of kubectl

The kubectl command line tool lets you control Kubernetes clusters. For configuration, kubectl looks for a file named config in the $HOME/.kube directory. You can specify other kubeconfig files by setting the KUBECONFIG environment variable or by setting t

kubernetes.io

 

반응형