본문 바로가기
G.Code/kubernetes

[kubernetes] kubectl 명령어 모음

by 한선배 2021. 8. 31.
반응형

-- 기본

kubectl version --short # 쿠버네티스 버전 확인 하기

 

-- pod 명령어

kubectl get pod --show-labels # pod의 Label까지 확인하는 명령어

kubectl get pods -n kube-system # kube-system 네임스페이스에 있는 pod 확인

kubectl get pods -A # 모든 namespace에 있는 pod들 조회

kubectl run pod명 -it --image=centos:7

kubectl logs pod명 # pod에서 만든 로그 확인

kubectl exec pod명 -- env # 환경 변수명 확인

kubectl exec -it pod명 -c 컨테이너명 -- bin/bash #pod에 속한 컨테이너 안으로 들어가기

 

-- Replicaset 명령어

kubectl scale rs rs이름 --replicas=2 # Replica의 갯수를 수정하는 옵션 --> deployment가 있으면 늘어나지 않음

kubectl scale deployment deployment명 --replicas=4 # Replica의 갯수를 수정하는 옵션

kubectl delete rs rs-nginx --cascade=false #연쇄 삭제 기능을 비활성화 (default=true)

 

-- deployment 명령어

# application rollingupdate

kubectl set image deploy app-deploy web=nginx:1.15 --record # web이라는 pod에 버전을 1.15로 update, --record : 히스토리를 기억해 달라는 명령어

kubectl rollout history deployment app-deploy #이전 업데이트 기록 출력

kubectl rollout (pause/resume) deployment app-deploy # rollingupdate 일시정지/재시작

kubectl rollout undo deployment app-deploy # 이전 revision 버전으로 돌리기

kubectl rollout undo deployment app-deploy --to-revision=3 # 3번 revision 버전으로 update 하기

 

-- label 명령어

# Label 보기

kubectl get nodes --show-labels

kubectl get nodes -L <label_name> #원하는 key값만 조회해서 보여주기

예) kubectl get nodes disk,gpu

 

# Label 관리 : kubectl label --help

# label 생성 및 변경

kubectl label node <name> key=value

kubectl label node <name> key=value --overwrite

# label 확인

kubectl label node <name> --show-label

# label 제거

kubectl label node <name> key-

 

kubectl get pods --show-labels #pod내 레이블 정보 확인

kubectl get pods -l name=[label명] # label명이 같은 pod를 출력(selector)

kubectl get pods --selector name=[label명] # label명이 같은 pod를 출력(selector)

kubectl label pod pod-demo name=test # label 추가

kubectl label pod pod-demo name=login --overwrite # 동일한 label key의 값을 변경시 --overwrite 키워드 사용

kubectl label pod cmdpod name=order rel=beta # 복수의 key=value 값 넣기

kubectl label pod cmdpod run- #label 삭제, label명 뒤에 -(대시문자)

 

-- ConfigMap 명령어

#ConfigMap 생성

kubectl create configmap NAME [--from-file=source] [--from-literal=key1=value1]

kubectl create configmap 컨피그맵명 --from-literal=id=b2021002 --from-literal=class=bigdata #명령어내에서 바로 key=value값 생성해서 만들기

kubectl create configmap 컨피그맵명 --from-file=text.file #file에서 configmap value값 설정 key값은 파일명이됨

kubectl create configmap 컨피그맵명 --from-file=mydata=text.file #file에서 configmap value값 설정 key값은 mydata로 설정함

kubectl create configmap 컨피그맵명 --from-file=/configmap.dir/ #특정 디렉토리(/configmap.dir/)에 있는 파일에서 configmap 설정 지정

kubectl exec genid-boy -- env # 실행된 pod의 환경변수(env) 확인

configmap 참고 자료

 

-- Secret 만들기

kubectl create secret <Available Commands> name [flags] [options]

- docker-registry              create a secret for use with a Docker registry

- generic                        create a secret from a local file, directory or literal value

- tls                              create a TLS secret

 

kubectl create secret tls my-secret --cert=path/to/cert/file --key=path/to/key/flie

kubectl create secret docker-registry reg-secret --docker-username=tiger --docker-password=pass --docker-email=tiger@acme.com

kubectl create secret generic ttabea-secret --from-literal=INTERVAL=2 --from-file=./genid-web-config/

 

-- pod scheduling

-- taint

kubectl taint nodes node1.example.com role=web:NoSchedule # taint 생성

kubectl describe nodes node{1,2}.example.com | grep -i taint # taint 정보 확인

kubectl taint nodes node1.example.com role- # taint 삭제

 

-- 권한

kubectl create role developer --verb=create --verb=get --verb=list --verb=update --verb=delete --resource=pods #deleloper role을 생성함(pod에 대해서 create, get, list, update, delete만 가능함)

kubectl create rolebinding developer-binding-myuser --role=developer --user-myuser # "myuser"라는 이름을 갖은 유저에게 "developer"라는 권한을 전달

 

kubectl config current-context #현재 작업중인 context(user)

kubectl config use-context myuser # myuser로 context(user) 변경

 

kubectl create clusterrole developer --verb=create --verb=get --verb=list --verb=update --verb=delete --resource=pods #deleloper 클러스터role을 생성함(pod에 대해서 create, get, list, update, delete만 가능함)

 

-- 기타

history # 지금까지 실행한 명령어 history 파악

wget 파일url(https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.0.0/deploy/static/provider/baremetal/deploy.yaml) # 파일 다운로드 받기

kubectl create clusterrolebinding developer-binding-myuser --clusterrole=developer --user-myuser # "myuser"라는 이름을 갖은 유저에게 "developer"라는 권한을 전달. 클러스터롤!!

iptables -t nat -S | grep 서비스ip # kube-proxy에 사용하는 ip정보

반응형

'G.Code > kubernetes' 카테고리의 다른 글

[kubernetes] 10. Configmap 실습(도커, k8s 이용)  (0) 2021.09.19
[kubernetes] 6.4 DaemonSet  (0) 2021.09.08
kubeadm, kubelet, kubectl 차이  (0) 2021.08.25
[k8s] pod 생성  (0) 2021.08.23
kubenetes init 설치오류  (0) 2021.08.21