kubectl <command> <type> <name> <flags>
🔸 쿠버네티스 리소스에 대해 수행할 작업
🔸 Ex. create, get, describe, execute, delete, ...
🔸 관리하고자하는 쿠버네티스 리소스의 종류
🔸 Ex. pods, nodes, namespaces, deployments, services, ...
🔸 해당 타입의 쿠버네티스 리소스의 이름
🔸 CLI 명령에 대한 옵션
🔸 Ex. -f, -s, -o
<type>🔸 쿠버네티스에 존재하는 해당 리소스 리스트 출력
🔸 -o wide: 해당 리소스와 관련된 추가적인 정보 출력
🔸 -w: 상태가 어떻게 변화되는지 출력
kubectl get pods
<type> <name> 🔸 리소스 생성
<type> <name>🔸 리소스 생성 및 교체
🔸 yaml 파일 사용해 리소스 생성 및 교체
🔸 파일 내용을 읽고 터미널 출력
cat nginx-deployment.yaml
<type> <name>🔸 해당 쿠버네티스 리소스의 디테일한 정보 출력
kubectl describe pods nginx-deployment-1-6497784f5c
<type> <name>🔸 리소스 삭제
🔸 yaml 파일에 해당하는 리소스 삭제
🔸 pod에서 실행되는 컨테이너로 명령어 전달
🔸 pod에 대해서만 수행 가능
🔸 선택한 pod의 로그 정보 확인
<cammand> <type> <name> -n namespace명🔸 해당 네임스페이스에 해당하는 리소스에 대해 명령 수행
<cammand> <type> <name> --all-namespaces🔸 모든 네임스페이스에 해당하는 리소스에 대해 명령 수행
<type>kubectl explain pods
🔸 해당 리소스에 대한 manual page 출력
🔸 리소스의 각 필드의 타입, kind, apiVersion 확인 가능
💡 시험 때 암기하면 좋음
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment-1
spec:
selector:
matchLabels:
app: nginx-1
replicas: 1
template:
metadata:
labels:
app: nginx-1
spec:
containers:
- name: nginx-1
image: nginx:1.14.2
ports:
- containerPort: 80
💡 - name:...은 '-'와 'name' 사이에 띄어쓰기가 한 번이고, 같은 라인에 있는 문자들은 '-'와 맞추는 것이 아니라 'name'과 맞춰야 함. 실제 '-'은 포함되는 'containers:'와 줄 맞춘 후 들여쓰기 한 번 한 것
💡 복붙하려면 드래그한 후 마우스 오른쪽 커서 클릭
kubectl create -f nginx-deployment.yaml
kubectl get pods nginx-deployment-1-7ff5447db4-hv75f

kubectl describe pods

apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment-1
spec:
selector:
matchLabels:
app: nginx-1
replicas: 3
template:
metadata:
labels:
app: nginx-1
spec:
containers:
- name: nginx-1
image: nginx:1.14.2
ports:
- containerPort: 80
kubectl apply -f nginx-deployment.yaml

kubectl delete pods nginx-deployment-1-7ff5447db4-hv75f

💡 pod 삭제했지만 replicas가 3이기 때문에 바로 다른 pod 생성
💡 아예 삭제하고 싶으면
kubectl delete -f nginx-deployment.yaml

apiVersion: v1
kind: Pod
metadata:
name: counter
spec:
containers:
- name: count
image: busybox
args: [/bin/sh, -c, 'i=0; while true; do echo "$i: $(data)"; i=$((i+1)); sleep 1; done']

🔸 counter라는 pod 안에 돌고 있는 container에 ls 명령어 전달
kubectl exec counter -- ls

🔸 " 0부터 시간순서대로 출력. 1초 당 1씩 증가 " 라는 container 동작
🔸 => log 확인
kubectl logs counter
