Web/Kubernetes

kubectl 명령어

tose33 2024. 1. 5. 19:11

 

https://subicura.com/k8s/guide/kubectl.html#kubectl-%E1%84%86%E1%85%A7%E1%86%BC%E1%84%85%E1%85%A7%E1%86%BC%E1%84%8B%E1%85%A5

 

기본 명령어

kubectl의 기본적인 사용법을 익힙니다.

subicura.com

 

 

apply 원하는 상태를 적용합니다. 보통 -f 옵션으로 파일과 함께 사용합니다.
get 리소스 목록을 보여줍니다.
describe 리소스의 상태를 자세하게 보여줍니다.
delete 리소스를 제거합니다.
logs 컨테이너의 로그를 봅니다.
exec 컨테이너에 명령어를 전달합니다. 컨테이너에 접근할 때 주로 사용합니다.
config kubectl 설정을 관리합니다.

 

 

apply: 상태 설정하기

kubectl apply -f [파일명 또는 URL]

 

 

-f 는 파일.

원하는 리소스의 상태를 yaml로 작성하고 apply 명령어로 선언.

 

get: 리소스 목록 보기 

kubectl get [TYPE]

 

Pod 조회

# Pod 조회
kubectl get pod

# 줄임말(Shortname)과 복수형 사용가능
kubectl get pods
kubectl get po

# 여러 TYPE 입력
kubectl get pod,service
#
kubectl get po,svc

# Pod, ReplicaSet, Deployment, Service, Job 조회 => all
kubectl get all

# 결과 포멧 변경
kubectl get pod -o wide
kubectl get pod -o yaml
kubectl get pod -o json

# Label 조회
kubectl get pod --show-labels

 

 

describe: 리소스 상태 상세보기

kubectl describe [TYPE]/[NAME] 또는 [TYPE] [NAME]

 

특정 리소스 상태를 볼 수 있다.

로그도 볼 수 있기 때문에 에러 발생시 확인 가능하다.

 

 

'kubectl describe pod/wordpress-746bd6d54b-hkkcl...' 로 pod 이면서 이름이 wordpress-746bd6d54b-hkkc 인 리소스의 상태를 상세 확인하고 있다.

 

 

이런식으로 describe 시 이벤트 로그도 남아있기 때문에 어떤 에러가 발생했는지 확인 가능하다.

 

delete: 리소스 제거

kubectl delete [TYPE]/[NAME] 또는 [TYPE] [NAME]

 

 

pod/wordpress-746bd6d54b-hkkcl 제거

 

logs: 컨테이너 로그 조회 

kubectl logs [POD_NAME]

 

 

실시간으로 로그 보고 싶으면 -f 옵션.

 

exec: 컨테이너 명령어 전달

kubectl exec [-it] [POD_NAME] -- [COMMAND]

 

bash 커맨드로 컨테이너에 접속했다.

 

git bash 를 사용해서 접속 시도 했을때 아래와 같은 에러가 났는데, powershell 이나 cmd 에서는 정상 작동했다.

 

(https://stackoverflow.com/questions/60826194/kubectl-exec-fails-with-the-error-unable-to-use-a-tty-input-is-not-a-terminal/68163722#68163722)

 

 

config: 설정 관리

kubectl은 여러개의 쿠버네티스 클러스터를 컨텍스트로 설정하고 필요에 따라 설정 할 수 있다.

 

현재 나의 컨텍스트는 minikube 이고, 얼마든지 다른 컨텍스트를 만들고 전환할수 있다.

즉 여러 종류의 클러스터를 만들고 전환하면서 사용할수 있다.