kubectl은 Kubernetes 클러스터를 관리하기 위한 도구로, Kubernetes API 서버와 상호작용하는 명령어를 실행합니다. 이 명령어의 기본 구조는 다음과 같습니다:
kubectl [command] [TYPE] [NAME] [flags]
이 구조를 이해하기 쉽게 비유로 설명해볼게요.
https://cdn.bizwatch.co.kr/news/photo/2023/10/23/37702746507b6bc89005ea26e50f82cd.jpg
kubectl 명령어는 마치 레스토랑에서 주문을 하는 것과 비슷해요.kubectl: 이건 레스토랑의 "주문기기"라고 생각하면 돼요. 이 기기를 통해서 주방(=Kubernetes API 서버)에 주문을 보내는 거죠.
[command]: 여기는 "무엇을 할지"에 대한 지시사항이에요. 예를 들어, 주문을 새로 넣을지(create), 이미 있는 주문을 확인할지(get), 주문을 취소할지(delete) 등을 결정하는 거죠.
[TYPE]: 이 부분은 "무엇에 대해 작업할지"를 지정하는 거예요. 예를 들어, 주방에 있는 "파스타"나 "피자" 같은 특정 메뉴(=자원 타입)를 선택하는 것과 같아요. Kubernetes에서는 pod, service, node 등이 여기에 해당하죠.
[NAME]: 여기서는 "특정한 대상"을 지정해요. 예를 들어, "마르게리타 피자"나 "카르보나라 파스타"처럼 특정한 메뉴 이름을 말하는 것과 같아요. Kubernetes에서는 webserver 같은 특정 리소스의 이름이 여기에 해당하죠.
[flags]: 마지막으로, "주문을 어떻게 할지"에 대한 추가 옵션이에요. 예를 들어, "소스를 더 추가해주세요" 같은 요청처럼 말이죠. Kubernetes에서는 --help나 -o json 같은 옵션을 사용할 수 있어요.
kubectl 명령어들kubectl get [TYPE] [NAME]:
kubectl get pods (모든 파드를 조회)kubectl describe [TYPE] [NAME]:
kubectl describe pod webserver (webserver 파드의 상세 정보를 조회)kubectl create -f [파일명]:
kubectl create -f pod.yaml (pod.yaml 파일로 파드를 생성)kubectl delete [TYPE] [NAME]:
kubectl delete pod webserver (webserver 파드를 삭제)kubectl apply -f [파일명]:
kubectl apply -f deployment.yaml (deployment.yaml 파일로 디플로이먼트를 생성 또는 업데이트)이 명령어들을 통해 Kubernetes 클러스터에서 다양한 작업을 수행할 수 있습니다. kubectl을 사용해 클러스터를 관리하는 것은 마치 주방에 구체적인 지시를 내리는 것과 같아서, 원하는 작업을 명확하게 전달할 수 있게 됩니다.