Create
kubectl create -f deployment.yaml
Get
kubectl get deployments
Update
kubectl edit deploy myapp-deployment (yaml 기준 -> 수정 후 대기하면 자동 재배포)
kubectl apply -f deployment.yaml (파일 기준)
kubectl set image deployment/myapp-deployment nginx=nginx:1.9.1 (명령어)
Status
kubectl rollout status deployment/myapp-deployment
kubectl rollout history deployment/myapp-deployment
Rollback
kubectl rollout undo deployment/myapp-deployment
Rollout
kubectl rollout status deployment/myapp-deployment
kubectl rollout history deployment/myapp-deployment

Create configmaps or secrets and inject into Pod









RBAC - Role Based Access Control

하나의 파드에 여러 개의 컨테이너들이 동시에 프로세스가 수행되는 형태이다.
Log 메트릭 수집용 SideCar 컨테이너도 여기에 포함된다.
kubectl -n elastic-tack exec -it 'pod-name' -- cat /log/pod.log
하나의 파드에 주 컨테이너를 시작하기 전 가장 먼저 시작하는 컨테이너로 프로세스가 끝난 뒤에 메인 컨테이너가 동작한다.
시험에서 사이드카 컨테이너가 나오면 전통적 방식대로 멀티 컨테이너 구조로 작성한다. containers:에 같이 실행되는 보조 컨테이너로 작성한다.
전통 사이드카 구현
containers:
- name: sidecar-log-shipper
신규 알파 init container 구현
initContainers:
- name: my-sidecar
image: busybox
restartPolicy: Always
initContainers:
- name: sidecar
image: logging-agent
restartPolicy: Always # 핵심!
| 구분 | 기존 Init | 새로운 Sidecar | 기존 Sidecar |
|---|---|---|---|
| 시작 시점 | 메인 앞 | 메인 앞 | 메인과 동시 |
| 생명주기 | 종료 | 계속 실행 | 계속 실행 |
| 순서 보장 | ✅ | ✅ | ❌ |
결론: restartPolicy: Always를 가진 Init Container = 순서 보장되는 Sidecar
CKA(Certified Kubernetes Administrator) 시험에서 자주 출제되는 HPA(Horizontal Pod Autoscaler)와 VPA(Vertical Pod Autoscaler)에 대해 쉽게 정리. 또한, metrics-server나 VPA 설치가 안 된 경우 어떻게 대처해야 하는지도 포함.
replicas 값 조정 → Pod 개수 변화 apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: myapp-hpa
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: myapp
minReplicas: 2
maxReplicas: 10
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 50
➡ CPU 평균 사용량이 50%를 넘으면 Pod를 늘리고, 미만이면 줄임.
kubectl autoscale deployment myapp --cpu-percent=50 --min=2 --max=10
kubectl get hpa
Off : 추천만 제공 (Pod에는 적용 X) Initial : Pod 생성 시에만 적용 Auto : 자동으로 Pod 재시작하며 리소스 값 적용 apiVersion: autoscaling.k8s.io/v1
kind: VerticalPodAutoscaler
metadata:
name: myapp-vpa
spec:
targetRef:
apiVersion: "apps/v1"
kind: Deployment
name: myapp
updatePolicy:
updateMode: "Auto" # Off, Initial, Auto 가능
➡ 위 설정은 myapp Deployment의 Pod 리소스를 VPA가 자동 조정하도록 설정.
| 구분 | HPA (가로 확장) | VPA (세로 확장) |
|---|---|---|
| 대상 | Pod 개수 | Pod 리소스(CPU/Memory) |
| 동작 | replicas 조정 | requests/limits 조정 |
| 특징 | Metrics Server 필요 | 별도 설치 필요 |
| 장점 | 트래픽 급증 시 확장 용이 | 리소스 부족/낭비 방지 |
| 단점 | Pod당 리소스는 그대로 | Pod 재시작 필요, HPA와 충돌 가능 |
kubectl top nodes / kubectl top pods가 안 되면 metrics-server 없음 kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
kubectl -n kube-system get pods | grep metrics-server
kubectl top nodes
👉 문제에서 설치 지시가 없으면, 설치 대신 HPA YAML 작성만 요구될 수 있음.
kubectl apply -f vpa-install.yaml
kubectl get crd | grep vpa
👉 CRD(verticalpodautoscalers.autoscaling.k8s.io) 확인 후 사용.
👉 설치 지시 없으면 리소스 정의 작성만 하면 됨.
HPA
kubectl autoscale / kubectl get hpa 자주 출제 VPA
Off, Initial, Auto 반드시 기억 ✅ 정리: