1. kubectl이란?
- kubectl은 Kubernetes 클러스터를 제어하기 위한 명령줄 도구야.
- Kubernetes 클러스터 안에서 자원을 만들고 수정하거나, 삭제하고 상태를 확인하는 등의 작업을 할 수 있어.
- 주로 다음과 같은 기능을 수행해:
- Kubernetes 리소스에 대한 설정 변경 적용.
- 실행 중인 컨테이너에 접속하거나 명령어를 전달.
- 로그 확인 및 특정 이미지를 클러스터에 배포.
2. kubectl의 동작 원리
kubectl은 사용자가 입력한 명령어를 Kubernetes API 서버로 전달하고, 해당 요청을 처리한 결과를 받아와서 출력해. 이를 통해 사용자는 Kubernetes 클러스터 안에서 원하는 작업을 수행할 수 있어.
3. 기본 개념 재확인
- Deployment: Kubernetes에서 애플리케이션을 배포하는 상위 개념이야. 하나의 애플리케이션을 여러 개의 Pod로 배포하고 관리하는 방법을 정의해.
- Pod: 컨테이너를 감싸고 있는 Kubernetes의 최소 단위야. 각 Pod 안에 컨테이너가 포함되며, 그 컨테이너들이 애플리케이션을 실제로 실행해.
- Service: 클러스터 외부에서 Pod에 접근할 수 있게 해주는 네트워크 엔드포인트를 정의해. 클러스터 내부에서 고정된 IP 주소로 Pod를 접근할 수 있도록 해주는 역할도 해.
4. kubectl 기본 명령어 구문
- 구문: 여기서 각 부분의 의미는:
- command: Kubernetes 리소스에 대해 수행할 작업 (예: create, get, delete 등).
- type: 작업하려는 Kubernetes 리소스의 종류 (예: pods, deployments, services 등).
- name: 해당 리소스의 이름.
- flags: 명령어에 대한 추가 옵션 (예: f, o 등).
- kubectl <command> <type> <name> <flags>
예를 들어, 다음 명령어는 클러스터 안에 있는 Pod 목록을 출력해:
kubectl get pods
5. kubectl 기본 작업
- 리소스 목록 보기:예를 들어, 모든 Pod의 목록을 보려면 kubectl get pods 명령어를 사용하면 돼.
- kubectl get <type>
- 리소스 상세 정보 보기:특정 리소스에 대한 세부 정보를 출력하는 명령어야. 예를 들어, 특정 Pod의 상태를 보려면:
- kubectl describe pod <pod-name>
- kubectl describe <type> <name>
- 리소스 생성 및 변경:
- 리소스 생성: YAML 파일을 사용해서 리소스를 생성하려면:
kubectl apply -f <filename>.yaml
- kubectl create <type> <name>
- 리소스 생성: YAML 파일을 사용해서 리소스를 생성하려면:
- 리소스 삭제:또는 YAML 파일에 정의된 리소스를 삭제하려면:
- kubectl delete -f <filename>.yaml
- kubectl delete <type> <name>
- Pod에서 명령어 실행:이 명령어는 특정 Pod 안에 있는 컨테이너에서 명령어를 실행해.
- kubectl exec <pod-name> -- <command>
- Pod 로그 확인:특정 Pod에서 실행된 컨테이너의 로그를 확인할 수 있어.
- kubectl logs <pod-name>
6. kubectl 활용 방법 (Best Practices)
- 네임스페이스 활용: 네임스페이스는 Kubernetes 리소스를 그룹화하는 방법이야. 리소스가 여러 네임스페이스에 걸쳐 있을 수 있기 때문에, 올바른 네임스페이스를 지정하는 것이 중요해:모든 네임스페이스에서 리소스를 조회하려면:
- kubectl get pods --all-namespaces
- kubectl get pods -n <namespace>
- 리소스 설명서(man page) 확인:리소스에 대한 자세한 설명과 각 필드의 타입, 종류, 그리고 API 버전을 확인할 수 있어.
- kubectl explain <resource-type>
7. kubectl 명령어 단축어
kubectl은 자주 사용하는 리소스에 대한 단축어를 지원해. 이를 활용하면 명령어를 빠르게 입력할 수 있어:
- pods → po
- services → svc
- deployments → deploy
예를 들어, 서비스의 목록을 보려면:
kubectl get svc
결론
kubectl은 Kubernetes 클러스터를 제어하고 관리하는 핵심 도구야. 이 도구를 사용하면 애플리케이션을 배포하고, 상태를 확인하고, 문제를 해결할 수 있어. 다양한 명령어와 옵션을 이해하면, Kubernetes를 더욱 효율적으로 다룰 수 있을 거야.
'Kubernetes' 카테고리의 다른 글
volume(emptyDir&hostPath) (0) | 2024.11.13 |
---|---|
Kubernetes Volumes (2) | 2024.11.13 |
Kubernetes의 Networking과 Service (0) | 2024.11.06 |
Application Deployment (4) | 2024.11.06 |
Configuration File (YAML format), Label, Selector (1) | 2024.10.29 |