-- 기본
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) 확인
-- 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 |