[k8s] 자주쓰는 쿠버네티스 커맨드 모음


자주쓰는 쿠버네티스 커맨드 모음

kubectl sc

접근 권한이 있는 Service Cluster를 검색하고 선택할 수 있음 여기서 잘 선택을 해둬야 그 클러스터의 정보를 보거나 뭔가 명령을 내릴 수 있음. 명령 타겟을 설정하는 작업이라고 보면 된다.


kubectl cluster-info

클러스터 정보 보기


kubectl get pods [-w]
kubectl get all
kubectl get pods -o wide --all-namespaces
kubectl get namespace
kubectl get pods --namespace=<namespace>
  • 현재 돌아가고 있는 파드(컨테이너)들을 볼 수 있음
  • w 옵션으로 실시간 상태를 볼 수 있음
  • pods 대신 services, ingress, event, nodes 등 넣으면 해당 instance 목록 나옴

kubectl logs <컨테이너 ID >
kubectl logs -n <namespace명> -c <container명>  <pod명>
kubectl logs -f <pod명>
  • 해당 파드 로그볼수있음
  • -f 옵션주면 tailing

kubectl port forward <컨테이너 ID> 8000:8000

Local port와 컨테이너의 서비스 포트를 연결한다.


kubectl exec -it <container ID> — bash
kubectl exec -it <container ID> /bin/bash

컨테이너가 있는 머신에서 뭔가를 수행하는 것. 위 예제에서는 bash shell에 접속하는 것임.


kubectl replace —force -f <yaml파일명>
  • 강제로 다시 시작시키기. 디플로이뿐만 아니라 다른 것도 다 적용되는 듯.
  • 주의!!! 이것은 graceful 하지 않고 서비스를 중단 시킬 수 있음.
kubectl rollout status deployment.v1.apps/<앱이름>
kubectl rollout restart deployment.v1.apps/<앱이름>
  • 이 방법은 무중단으로 새 이미지를 배포함.
  • 동일한 수의 container를 새로 만들고 기존 container는 차례로 하나씩 죽이면서 새걸로 교체됨

kubectl delete deploy <컨테이너 namespace>

배포했던 앱 삭제

kubectl delete -f <yaml파일명>

이 명령어로 삭제하면 배포했던 yaml파일 정보를 그대로 삭제함


kubectl describe nodes my-node
kubectl describe pods my-pod
kubectl describe pods -n <namespace명> <pod명>

상세 출력을 위한 Describe 커맨드


kubectl apply -f <yaml 파일>

yaml 파일 기반으로 pod 를 k8s 에 배포함


kubectl cheet sheet
https://kubernetes.io/ko/docs/reference/kubectl/cheatsheet/


kubectl create clusterrolebinding kubernetes-dashboard --clusterrole=cluster-admin --serviceaccount=kube-system:kubernetes-dashboard
clusterrolebinding.rbac.authorization.k8s.io/kubernetes-dashboard created

k8s dashboard 를 다시 띄움


kubectl rolling-update

롤링업데이트


kubectl scale deployment.apps/logan-batch --replicas=5

scale up


kubectl -n ingress-nginx edit configmap ingress-nginx

ingress configmap 수정


kubectl create namespace {namespace name}

namespace 생성


kubectl get pods -n mynamespace --no-headers=true | awk '/pattern1|pattern2/{print $1}'| xargs kubectl delete -n mynamespace pod

특정 패턴으로 pod 삭제하기
ex)

 kubectl get pods --no-headers=true | awk '/example-job/{print $1}'| xargs  kubectl delete pod

kubectl create job <your-new-job-name> —from=cronjob/<name-of-deployed-cron-job> -n <target namespace>

cronjob 기반으로 job 생성해서 1회실행하기


kubectl describe configmaps {configmap name} 

배포된 configmap 확인하기







© 2020. by berrrrr

Powered by berrrrr