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