1. **kubectl get**
이 명령어는 클러스터 내의 리소스를 나열하거나 조회하는 데 사용합니다. 일반적으로 클러스터의 상태를 점검하거나 리소스가 올바르게 생성되었는지 확인할 때 유용합니다.
```bash
# Pods를 나열합니다.
kubectl get pods
# 모든 네임스페이스의 Pods를 나열합니다.
kubectl get pods --all-namespaces
# 특정 네임스페이스에서 서비스 목록을 조회합니다.
kubectl get svc -n my-namespace
```
2. **kubectl describe**
특정 리소스의 자세한 상태와 이벤트를 확인할 수 있는 명령어입니다. 리소스의 문제를 디버깅하거나 상태를 자세히 분석할 때 활용됩니다.
```bash
# 특정 Pod에 대한 자세한 정보를 얻습니다.
kubectl describe pod my-pod
# 특정 네임스페이스의 서비스에 대한 정보를 조회합니다.
kubectl describe svc my-service -n my-namespace
```
3. **kubectl apply**
YAML 또는 JSON 파일 형식으로 작성된 리소스를 클러스터에 적용하거나 업데이트할 때 사용합니다. 선언형 방식의 배포와 업데이트에 적합합니다.
```bash
# deployment.yaml 파일을 클러스터에 적용합니다.
kubectl apply -f deployment.yaml
# 여러 파일을 한 번에 적용하는 경우입니다.
kubectl apply -f service.yaml -f configmap.yaml
```
4. **kubectl delete**
클러스터 내의 리소스를 삭제하는 명령어로, 잘못 배포된 리소스나 더 이상 필요하지 않은 리소스를 제거할 때 유용합니다.
```bash
# 특정 Pod를 삭제합니다.
kubectl delete pod my-pod
# deployment.yaml에 정의된 리소스를 삭제합니다.
kubectl delete -f deployment.yaml
# 특정 네임스페이스의 모든 리소스를 삭제합니다.
kubectl delete all --all -n my-namespace
```
5. **kubectl logs**
Pod에서 실행 중인 컨테이너의 로그를 확인할 때 사용하는 명령어입니다. 애플리케이션의 문제를 디버깅하거나 상태를 모니터링할 때 매우 유용합니다.
```bash
# 단일 컨테이너 Pod의 로그를 확인합니다.
kubectl logs my-pod
# 여러 컨테이너가 있는 Pod에서 특정 컨테이너의 로그를 확인할 때 사용합니다.
kubectl logs my-pod -c my-container
```
6. **kubectl exec**
실행 중인 컨테이너에 명령을 실행할 수 있도록 합니다. 컨테이너 내부의 상태를 점검하거나 임시적인 수정이 필요할 때 사용하는 명령어입니다.
```bash
# 실행 중인 Pod의 컨테이너에 셸로 접속합니다.
kubectl exec -it my-pod -- /bin/sh
# 특정 컨테이너에서 환경 변수 값을 확인합니다.
kubectl exec my-pod -- env
```
이러한 명령어들은 쿠버네티스를 다루는 데 있어 필수적인 도구들로, 다양한 운영 및 관리 작업에서 중요한 역할을 합니다. 상황에 맞게 적절히 활용하면 효과적인 클라우드 네이티브 애플리케이션 운영이 가능합니다.