이 포스팅은 아래의 유튜브 채널 "따배"를 따라서 학습한 내용입니다.
[관련 이론]
[Precondition]
(1) 테스트 환경
(1.1) Rocky Linux Cluster
: 직접 구성
[root@k8s-master ~]# k get nodes -o wide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
k8s-master Ready control-plane 30d v1.27.2 192.168.56.30 <none> Rocky Linux 8.10 (Green Obsidian) 4.18.0-553.33.1.el8_10.x86_64 containerd://1.6.32
k8s-node1 Ready <none> 30d v1.27.2 192.168.56.31 <none> Rocky Linux 8.8 (Green Obsidian) 4.18.0-477.10.1.el8_8.x86_64 containerd://1.6.21
k8s-node2 Ready <none> 30d v1.27.2 192.168.56.32 <none> Rocky Linux 8.8 (Green Obsidian) 4.18.0-477.10.1.el8_8.x86_64 containerd://1.6.21
[root@k8s-master ~]#
(1.2) Ubuntu Cluster
: kodekloud 테스트 환경 활용
controlplane ~ ➜ kubectl get nodes -o wide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
controlplane Ready control-plane 9m6s v1.31.0 192.6.94.6 <none> Ubuntu 22.04.4 LTS 5.4.0-1106-gcp containerd://1.6.26
node01 Ready <none> 8m31s v1.31.0 192.6.94.9 <none> Ubuntu 22.04.4 LTS 5.4.0-1106-gcp containerd://1.6.26
https://learn.kodekloud.com/user/courses/udemy-labs-certified-kubernetes-administrator-with-practice-tests
(2) 사전 필요 설정
: k8s context 생성
controlplane ~ ➜ k config get-contexts
CURRENT NAME CLUSTER AUTHINFO NAMESPACE
* kubernetes-admin@kubernetes kubernetes kubernetes-admin
controlplane ~ ✖ k config get-users
NAME
kubernetes-admin
controlplane ~ ➜ k config set-context k8s --cluster kubernetes --user kubernetes-admin
Context "k8s" created.
controlplane ~ ➜ k config get-contexts
CURRENT NAME CLUSTER AUTHINFO NAMESPACE
k8s kubernetes kubernetes-admin
* kubernetes-admin@kubernetes kubernetes kubernetes-admin
controlplane ~ ➜ k config use-context k8s
Switched to context "k8s".
controlplane ~ ➜ k config get-contexts
CURRENT NAME CLUSTER AUTHINFO NAMESPACE
* k8s kubernetes kubernetes-admin
kubernetes-admin@kubernetes kubernetes kubernetes-admin
controlplane ~ ➜
[Question]
Create a deployment as follows:
TASK:
- name : nginx-app
- Using container nginx with version 1.11.10-alpine
- The deployment should contain 3 replicas
Next, deploy the application with new version 1.11.13-alpine, by performing a rolling update
Finally, rollback that update to the previous version 1.11.10-alpine
[Solve]
(1) delployment 생성
controlplane ~ ➜ k create deployment nginx-app --image=nginx:1.11.10-alpine --replicas=3 --dry-run=client -o yaml
apiVersion: apps/v1
kind: Deployment
metadata:
creationTimestamp: null
labels:
app: nginx-app
name: nginx-app
spec:
replicas: 3
selector:
matchLabels:
app: nginx-app
strategy: {}
template:
metadata:
creationTimestamp: null
labels:
app: nginx-app
spec:
containers:
- image: nginx:1.11.10-alpine
name: nginx
resources: {}
status: {}
controlplane ~ ➜ k create deployment nginx-app --image=nginx:1.11.10-alpine --replicas=3
deployment.apps/nginx-app created
: 생성한 deployment 확인
(2) deployment image version 업데이트
controlplane ~ ➜ k set image deployments/nginx-app nginx=nginx:1.11.13-alpine
deployment.apps/nginx-app image updated
controlplane ~ ➜ k describe pods/nginx-app-54bd5c79dd-69wrl
: nginx image update 상태 확인
controlplane ~ ➜ k rollout status deployment/nginx-app
deployment "nginx-app" successfully rolled out
(3) 이미지 버전 rollback
controlplane ~ ➜ k rollout undo deployment/nginx-app
deployment.apps/nginx-app rolled back
controlplane ~ ➜ k rollout status deployment/nginx-app
deployment "nginx-app" successfully rolled out
[사용 커맨드 정리]
k config use-context k8s
k create deployment nginx-app --image=nginx:1.11.10-alpine --replicas=3 --dry-run=client -o yaml
k create deployment nginx-app --image=nginx:1.11.10-alpine --replicas=3
k set image deployments/nginx-app nginx=nginx:1.11.13-alpine
k describe pods/nginx-app-54bd5c79dd-69wrl
k rollout status deployment/nginx-app
k rollout undo deployment/nginx-app
k rollout status deployment/nginx-app
k describe pods/nginx-app-7bf488585-9dnws
'Compute > kubernetis' 카테고리의 다른 글
[따배씨] 9. Node 관리 / drain & uncordon / CKA 시험 문제 학습 (0) | 2025.01.30 |
---|---|
[따배씨] 8. Node Selector / CKA 시험 문제 학습 (0) | 2025.01.30 |
[따배씨] 6. Deployment & Pod Scale / CKA 시험 문제 학습 (0) | 2025.01.30 |
[따배씨] 5. Side-car Container Pod 생성 / CKA 시험 문제 학습 (0) | 2025.01.30 |
[따배씨] 4. multi-container Pod 생성 / CKA 시험 문제 학습 (0) | 2025.01.30 |