728x90
kubectl 커맨드의 기본
kubectl 커맨드의 기본 구조는 다음과 같이 세 부분으로 구성된다.
- 커맨드로 동작을 지정
- 리소스 타입과 이름으로 대상이 되는 오브젝트를 지정
- 옵션
kubectl <command> <resource type> [name] [option]
커맨드
커맨드 사용 예 개요
get | kubectl get -f <매니페스트|디렉터리> | get은 지정한 오브젝트의 목록을 한 줄에 하나씩 출력 |
kubectl get <리소스 타입> | ||
kubectl get <리소스 타입> <이름> | ||
kubectl get <리소스 타입> <이름> <옵션> | ||
describe | kubectl discribe -f <매니페스트|디렉터리> | get보다 더 자세한 정보를 출력 |
kubectl discribe <리소스 타입> | ||
kubectl discribe <리소스 타입> <이름> | ||
kubectl discribe <리소스 타입> <이름> <옵션> | ||
apply | kubectl apply -f <매니페스트> | 매니페스트에 기술된 오브젝트가 존재하지 않으면 생성하고, 존재하면 변경 |
create | kubectl create -f <파일명> | 매니페스트에 기술된 오브젝트를 생성, 이미 있는 경우에는 에러를 반환 |
delete | kubectl delete -f <파일명> | 매니페스트에 기술된 오브젝트를 삭제 |
kubectl delete <리소스타입> <이름> | ||
config | kubectl config get-contexts | 접속 대상이되는 콘텍스트(K8s 클러스터, 네임스페이스, 유저)의 목록을 출력하거나 선택 |
kubectl config use-context <콘텍스트명> | ||
exec | kubectl exec -it <파드명> [-c 컨테이너명] <커맨드> | 컨테이너에 대화형으로 커맨드를 실행. 파드 내에 컨테이너가 여러 개 있는 경우 [-c]로 컨테이너명을 지정. 컨테이너명은 kubectl get describe <파드명>으로 확인 가능. |
run | kubectl run <이름> —image=<이미지명> | 파드 실행 |
logs | kubectl logs <파드명> [-c 컨테이너명] | 컨테이너의 로그 표시 |
리소스 타입
파드 관련 리소스 타입
리로스 타입(생략형) 이름 오브젝트 개요
pod(po) | 파드 | 컨테이너의 최소 기동 단위로, 기동 시 파드 네트워크상의 IP주소를 할당받으며, 한 개 이상의 컨테이너를 내포 |
poddisruptionbudget(pdb) | 파드 정지 허용 수 | 파드의 개수가 지정한 개수 이하가 되지 않도록 디플로이먼트, 스테이트풀셋, 레플리카셋, 레플리케이션 컨트롤러의 동작을 제어 |
서비스 관련 리소스 타입
리소스 타입(생략형) 이름 오브젝트 개요
service(svc) | 서비스 | 파드를 클라이언트에 공개 |
endpoint(ep) | 엔드포인트 | 서비스를 제공하는 파드의 IP주소와 포트를 관리 |
ingress(ing) | 인그레스 | 서비스 공개, TLS 암호, 세션 유지, URL 매핑 기능을 제공 |
컨트롤러 관련 리소스 타입
리소스 타입(생략형) 이름 오브젝트 개요
deployment(deploy) | 디플로이먼트 | 파드의 레플리카 수, 자기 회복, 롤아웃, 롤백 등을 제어하는 컨트롤러 |
replicaset(rs) | 리플리카셋 | 파드의 레플리카 수를 제어하는 컨트롤러로, 디플로이먼트와 연계하여 동작 |
statefulset(sts) | 스테이트풀셋 | 퍼시스턴트 데이터를 보유하는 파드를 제어하는 컨트롤러, 퍼시스턴트 볼륨과 파드를 하나씩 쌍으로 묶어 각 이름에 동일한 일련 번호를 부여하여 관리 |
job | 잡 | 배치 처리를 수행하는 파드를 관리하는 컨트롤러 |
cronjob | 크론잡 | 장시적으로 실행되는 배치 처리를 관리하는 컨트롤러 |
daemonset(ds) | 데몬셋 | 모든 노드에 파드를 배치하는 컨트롤러 |
replicationcontroller(rc) | 레플리케이션 컨트롤러 | 레플리카셋의 이전 버전 |
horizontalpodautoscaler(hpa) | Horizontal Pod Autoscaler | 워크로드에 따라 파드 수를 조절하는 컨트롤러 |
볼륨 관련 리소스 타입
리소스 타입(생략형) 이름 오브젝트 개요
persistentvolume(pv) | 퍼시스턴트 볼륨 | 로우 레벨 스토리지 관리 |
persistentvolumeclaim(pvc) | 퍼시스턴트 볼륨 클레임 | 스토리지 클래스와 용량을 지정해 논리 볼륨의 프로비저닝을 요구 |
storageclass(sc) | 스토리지 클래스 | 스토리지의 종류 |
K8s 클러스터의 구성 관련 리소스 타입
리소스 타입(생략형) 이름 오브젝트 개요
node(no) | 노드 | K8s 클러스터의 쿼크로드를 실행하는 서버 |
apiservice | API 서비스 | 마스터가 지원하는 API 서비스를 관리 |
componentstatues(cs) | 컴포넌트 상태 | scheduler, controller-manager, etcd-0에 헬스 체크 결과를 보고 |
controllerrevision | 컨트롤러 리비전 | 컨트롤러의 리비전 관리 |
event | 이벤트 | K8s 클러스터에서 발생한 이벤트를 기록하고 표기하기 위한 컨트롤러 |
컨피그맵과 시크릿 관련 리소스 타입
리소스 타입(생략형) 이름 오브젝트 개요
configmap(cm) | 컨피그맵 | 설정 파일을 저장 |
secret | 시크릿 | 패스워드 등 비밀성이 필요한 정보를 저장 |
네임스페이스 관련 리소스 타입
리소스 타입(생략형) 이름 오브젝트 개요
namespace(ns) | 네임스페이스 | K8s 클러스터를 논리적으로 분할해서 사용 |
역할 기반 액세스 제어(RBAC) 관련 리소스 타입
리소스 타입(생략형) 이름 오브젝트 개요
serviceaccount(sa) | 서비스 어카운트 | 서비스 어카운트는 파드에서 실행되는 프로세스를 위한 어카운트, 접근 권한을 식별하기 위해 사용 |
role | 롤 | 일련의 권한을 기술하여 롤을 정의, 롤의 유효 범위는 네임스페이스로 한정됨 |
rolebinding | 롤바인딩 | 서비스 어카운트와 롤을 바인딩 |
clusterrole | 클러스터 롤 | K8s 클러스터 전체에 유효한 룰 |
clusterrolebinding | 클로스터 롤 바인딩 | K8s 클러스터 전체에 유효한 클러스터 롤과 서비스 어카운트를 매핑 |
보안 관련 리소스 타입
리소스 타입(생략형) 이름 오브젝트 개요
certificatesigningrequest(csr) | 루트 인증서 서명 요구 | 인증 기관(CA)에 인증서 서명 요구 작성 |
networkpolicies(netpol) | 네트워크 폴리시 | 네임스페이스 사이의 네트워크 접근 제어 |
podsecuritypoliceies(psp) | 파드 시큐리티 폴리시 | 파드 시큐리티 관련 항목의 기본값 설정 |
자원 관리 관련 리소스 타입
리소스 타입(생략형) 이름 오브젝트 개요
limitrange(limits) | limit range | 네임스페이스 내 컨테이너의 CPU와 메모리 요구값과 상한 값의 기본값 설정 |
resourcequota(quota) | resource quota | 네임스페이스별 CPU와 메모리 요구량, 상한값 설정 |
옵션
옵션 개요
-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 형식의 템플릿 파일로 출력할 내용 지정 |
반응형
'K8s & Docker' 카테고리의 다른 글
[Docker] docker 커맨드 (5) | 2024.10.01 |
---|