Kubectl 커맨드

kubectl commad


kubectl command 인자의 기본 형식

kubectl # <(1) 커맨드> <(2)리소스 타입> [이름] [(3) 옵션]



목차



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. 컨트롤러 관련 리소스 타입


</tbody> </table>
[목차로](#home1)


##### 2-4. 볼륨 관련 리소스 타입
리소스 타입(생략형) 이름 오브젝트 개요
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단계로 배우는 도커와 쿠버네티스