개요
CKA 시험에서 자주 사용되는 명령어를 정리한 글입니다.
(제가 작성한 Repository에서 더 자세한 설명을 보실 수 있습니다.)
더 자세한 내용은 공식 문서를 참조하시면 좋습니다. (kubectl 치트 시트 | 명령줄 도구 (kubectl))
상황별 명령어 모음
커맨드 단축어 설정
vi ~/.bashrc
# bashrc 마지막에 추가해주세요
# 자동완성
kubectl completion bash
kubeadm completion bash
# 단축어 세팅
alias kc="kubectl create"
export do="--dry-run=client -o yaml" # Create the YAML tamplate (사용법은 다음 스크립트 참조)
# Save and Quit
exec $SHELL # Reload shell (반드시 대문자로 입력!)
# 사용법 예시
kc deploymentmy my-dep --image=nginx --replicas=3
kc deployment --image=nginx nginx $do # <- 단축어 사용
k run --image=busybox $do -- "/bin/sh" "-c" "sleep 36000"
리소스 단축어 모음(Resource Short Words)
- pods : po
- deployments : deploy
- services : svc
- replicasets : rs
- replicationcontollers : rc
- configmaps : cm
- namespaces : ns
- nodes : no
- persistentvolumeclaims : pvc
- persistentvolumes : pv
- resourcequotas : quota
- serviceaccounts : sa
- daemonsets : ds
- cronjobs : cj
- ingresses : ing
- storageclasses : sc
상황 진단(Status Diagnosis)
# kubelet 상태 확인
sudo systemctl status kubelet
# Context가 올바른지 확인
k config get-contexts
k config set-context ${Context_Name} # if you want to change context
# System Pod 상태 확인
k logs -n kube-system ${System_Pod_Name}
# 클러스터 상태 확인
k cluster-info [dump] # dump 옵션은 더 자세한 정보 출력해줌!
# 모든 네임스페이의 모든 리소스를 자세하게 출력
k get all -A -o wide
# 특정 Pod의 이벤트와 메트릭을 출력
k describe pods ${Pod_Id}
k top node my-node
k explain deployment --recursive
생성(Create)
# 특정 이미지로부터 deployment 생성하기
k create deploy nginx --image=nginx
# 서비스 & 인그레스를 특정포트로 생성하기
k create svc clusterip my-service --tcp=80:80
k create ingress ${Name} --tcp=80:80
# 파일 혹은 문자열로 컨피그맵, 시크릿 생성하기
k create secret generic my-secret --from-file ${File_Name}
k create configmap my-config --from-literal=special.how=very
조회(Read)
YAML 파일 양식을 외우는 것도 좋지만,
이미 존재하는 파일에서 가져오는 것도 좋은 방법입니다.
# 이미 존재하는 Pod 정보를 YAML로 변환해서 가져오기
k get pod ${Pod_Id} -o yaml > pod.yaml
# 커맨드 실행 결과를 YAML로 변환하기
k create deploy nginx --image=nginx > deploy.yaml
k create deploy nginx --image=nginx $do > deploy.yaml # 단축어 설정을 해놨다면 사용할 수 있음!
생성(Update)
# 변경사항 부분 적용(기존 리소스는 유지됨)
k apply -f ${File_Name}
# 새 변경사항으로 변경 (기존 리소스는 제거되고 새로 생성)
k replace -f ${File_Name}
# 유저 쉘 에디터 상에서 리소스 편집
k edit ${Resource_Type} ${Resource_Name}
# 리소스의 특정 필드를 수정(에디터 진입 X)
k patch ${Resource_Type} ${Resource_Name} -p '{"property_name":"new_value"}'
# deployment 이미지를 교체
k set image deployment ${Deployment_Name} ${New_Image}=${Image_Url}
# deployment 이미지를 새버전으로 교체
k rollout restart deployment ${Deployment_Name}
# deployment 스케일을 변경
k scale deploy my-deployment --replicas=5
삭제(Delete)
# Pod 삭제
k delete pod ${Pod_Id}
# Pod 강제 삭제
k delete pod ${Pod_Id} --force --grace-period=0
# 특정 네임스페이스 안에 모든 Pod 삭제
k delete pod -n test --all
'How-to' 카테고리의 다른 글
몰래보는 쿠버네티스 상황별 명령어 (0) | 2023.02.15 |
---|---|
몰래보는 VS Code 단축키 정리 (0) | 2023.01.18 |
몰래보는 인텔리제이(IntelliJ) 단축키 정리 (0) | 2023.01.18 |
몰래보는 SQL Query 코드조각 (0) | 2023.01.18 |
몰래보는 파이썬(Python) 코드조각 (0) | 2023.01.18 |