이전엔 kubectl의 기본이 되는 명령어를 살펴보았고 이번엔 조금 깊이있는 명령어를 다뤄보겠습니다.
리소스별 명령
쿠버네티스는 모든 것이 리소스로 표현됩니다.
Service, ReplicaSet, Deployment 등 다양한 리소스를 포함하는데 Pod 외에 다른 리소스에 명령을 수행하는 방법은 간단합니다.
기존에 Pod라고 적은 부분을 다른 리소스로 변경하여 명령을 실행하면 됩니다.
예로 Service 리소스에 대해 살펴보고 싶다면 service를 입력하변 됩니다.

쿠버네티스 클러스터 구축을 위한 노드들도 리소스 중 하나라 다음과 같은게 가능합니다.

네임스페이스(Namespace)
네임스페이스는 쿠버네티스 클러스터를 논리적으로 나누는 역할을 합니다.
리소스가 네임스페이스별로 생성되고 사용자 접근제어, Network 접근제어 정책을 다르게 가져갈 수 있습니다.

- default - 기본 네임스페이스로 아무 옵션없이 컨테이너를 만들게 되면 default 네임스페이스에 생성된다.
- kube-system - 핵심 컴포넌트들이 들어있는 네임스페이스로 네트워크 설정, DNS 서버 등 중요 역할을 담당하는 컨테이너가 존재
- kube-public - 외부로 공개 가능한 리소스를 담는 네임스페이스
- kube-node-lease - 노드가 살아있는지 마스터에게 알리는 용도로 존재하는 네임스페이스
명령 실행 시 --namespace (-n) 옵션을 이용하여 특정 네임스페이스에 리소스를 생성 할 수 있습니다.

이 옵션을 생략하면 default 네임스페이스로 설정 되는 것이지요.
kubectl get pod -n default
# NAME READY STATUS RESTARTS AGE
# mynginx 1/1 Running 0 71m
kubectl get pod
# NAME READY STATUS RESTARTS AGE
# mynginx 1/1 Running 0 71m
그래서 위 두 명령어는 동일한 결과를 보여줍니다.
자동완성 기능
쿠버네티스는 kubectl 명령을 자동으로 완성시켜주는 스크립트를 제공합니다.
https://kubernetes.io/docs/tasks/tools/install-kubectl/#enabling-shell-autocompletion
Install Tools
Set up Kubernetes tools on your computer.
kubernetes.io
다음 사이트에서 사용하는 쉘에 맞게 스크립트를 세팅할 수 있습니다.
위 사이트의 가이드에 따라 환경에 맞는 툴을 설치하고
echo 'source <(kubectl completion bash)' >> ~/.bashrc
source ~/.bashrc
위 명령어를 실행하면 탭키를 통해 자동 완성 기능을 사용 할 수 있습니다.

즉석 리소스 생성
YAML 명령 정의서를 이용하여 리소스를 생성할 때 매번 파일을 만들어 생성하지 않습니다.
cat & here document 명령 조합으로 즉석 생성이 가능합니다.

리소스 특정 정보 추출
--jsonpath라는 옵션을 이용하여 리소스의 특정 정보만을 골라 추출이 가능합니다.
예로 마스터노드의 IP를 확인하기 위해아래 명령어로 확인 가능합니다.

위 경로는 kubectl get node master -o yaml을 통해 확인가능하고
이후 --jsonpath 옵션을 통해 찾고자 하는 값을 추출 가능하다.
jsonpath에 대한 상세 사용법 참고
https://kubernetes.io/docs/reference/kubectl/jsonpath
JSONPath Support
The kubectl tool supports JSONPath templates as an output format. A JSONPath template is composed of JSONPath expressions enclosed by curly braces: { and }. Kubectl uses JSONPath expressions to filter on specific fields in the JSON object and format the ou
kubernetes.io
모든 리소스 조회
Pod 리소스 외에 어떤 리소스들이 존재하는지 확인하기 위해 다음 명령어를 사용 할 수 있다.
kubectl api-resources

4번째 속성으로 NAMESPACED가 존재합니다.
쿠버네티스는 크게 네임스페이스 레벨의 리소스와 클러스터 레벨의 리소스로 구분된다.
네임스페이스 레벨의 리소스 - 해당 리소스가 반드시 특정 네임스페이스에 속해야 하는 리소스입니다. (Pod)
클러스터 레벨의 리소스 - 클러스터 레벨에 존재하는 리소스입니다. (Node)

네임스페이스 레벨의 API리소스만 탐색 할 수 있다.
리소스 정의 설명
다음 명령어를 통해 리소스의 간단한 정의를 살펴볼 수 있다.
kubectl explain pods

클러스터 상태 확인
쿠버네티스 클러스터가 정상적으로 동작하고 있는지 확인하려면 다음 3가지 명령을 사용합니다.
# 쿠버네티스 API서버 작동 여부 확인
kubectl cluster-info
# 전체 노드 상태 확인
kubectl get node
# 쿠버네티스 핵심 컴포넌트의 Pod 상태 확인
kubectl get pod -n kube-system

클라이언트 설정 파일
쿠버네티스는 내부적으로 KUBECONFIG ($HOME/.kube/config) 설정 파일을 참조하여,
마스터 주소, 인증 정보 등을 관리한다.
이 설정 파일을 직접 수정 할 수도 있고, 아래 명령어를 사용 할 수도 있다.
kubectl config view
혹은 cat으로 KUBECONFIG 설정 파일을 직접 출력도 가능하다

KUBECONFIG 설정 파일은 3가지 영역으로 나뉜다
- clusters - kubectl 툴이 바라보는 클러스터 정보를 입력한다.
- users - cluster에 접속하는 사용자를 정의한다.
- contexts - cluster와 user를 연결해주는 것이다.
kubectl 명령 치트시트
이 링크는 kubectl 명령 외 다양한 명령을 제공한다 유용하니 알아두자
https://kubernetes.io/docs/reference/kubectl/cheatsheet/
kubectl Quick Reference
This page contains a list of commonly used kubectl commands and flags. Note:These instructions are for Kubernetes v1.34. To check the version, use the kubectl version command. Kubectl autocomplete BASH source <(kubectl completion bash) # set up autocomplet
kubernetes.io
마무리
kubectl의 기본 명령에 대해 알아보았다.
다음엔 쿠버네티스의 가장 기본 실행 단위인 Pod 리소스에 대해서 알아보려한다.
'개발 > DevOps' 카테고리의 다른 글
| [Kubernetes] Pod 파해치기 2 - livenessProbe, readlinessProbe, initContainers (0) | 2025.09.23 |
|---|---|
| [Kubernetes] Pod 파해치기 1 - label, nodeSelector, env, volume, resource (0) | 2025.09.22 |
| [Kubernetes] kubectl 기본 명령어 (1) | 2025.09.16 |
| [Kubernetes] 쿠버네티스 설치 과정 및 트러블슈팅 정리 (0) | 2025.09.16 |