반응형
01. deployment의 scale을 조정 / pod의 스케일인 or 스케일아웃을 확인
[precondition]
: deployment의 scale을 3으로 조정하기 위해서 먼저 2개의 pod를 가지는 deployment를 먼저 생성함
[root@k8s-master ~]# vi 10-test.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
[root@k8s-master ~]# kubectl apply -f 10-test.yaml
deployment.apps/nginx-deployment created
[root@k8s-master ~]# kubectl get pods | grep nginx-deployment
nginx-deployment-cbdccf466-6nqjr 1/1 Running 0 4m17s
nginx-deployment-cbdccf466-wf8gk 1/1 Running 0 4m17s
[root@k8s-master ~]#
[solve]
[root@k8s-master ~]# kubectl scale --replicas=3 deployment/nginx-deployment
deployment.apps/nginx-deployment scaled
[root@k8s-master ~]# kubectl get pods | grep nginx-deployment
nginx-deployment-cbdccf466-6nqjr 1/1 Running 0 6m4s
nginx-deployment-cbdccf466-nsp68 1/1 Running 0 5s
nginx-deployment-cbdccf466-wf8gk 1/1 Running 0 6m4s
[root@k8s-master ~]#
02. deployment를 생성하고 service에 연결한다. nslookup을 이용해서 dns 정보를 확인하고 특정 파일로 생성한다.
[solve]
[root@k8s-master ~]# kubectl get deployments.apps
NAME READY UP-TO-DATE AVAILABLE AGE
nginx-deployment 6/6 6 6 5h4m
[root@k8s-master ~]#
[root@k8s-master ~]# kubectl expose deployment/nginx-deployment
service/nginx-deployment exposed
[root@k8s-master ~]# vi dnsutils.yaml
[root@k8s-master ~]# kubectl apply -f dnsutils.yaml
pod/dnsutils created
[root@k8s-master ~]#
[root@k8s-master ~]# kubectl exec -it dnsutils -- nslookup k8s
Server: 10.96.0.10
Address: 10.96.0.10#53
** server can't find k8s: NXDOMAIN
command terminated with exit code 1
[root@k8s-master ~]# kubectl exec -it dnsutils -- nslookup kubernetes.default
Server: 10.96.0.10
Address: 10.96.0.10#53
Name: kubernetes.default.svc.cluster.local
Address: 10.96.0.1
[root@k8s-master ~]# kubectl exec -it dnsutils -- nslookup nginx-deployment
Server: 10.96.0.10
Address: 10.96.0.10#53
Name: nginx-deployment.default.svc.cluster.local
Address: 10.101.72.39
[root@k8s-master ~]# kubectl exec -it dnsutils -- nslookup nginx-deployment > /opt/pod.dns
[root@k8s-master ~]# cat /opt/pod.dns
Server: 10.96.0.10
Address: 10.96.0.10#53
Name: nginx-deployment.default.svc.cluster.local
Address: 10.101.72.39
[root@k8s-master ~]#
03. deployment를 생성하고 특정 이미지 버전으로 업데이트를 진행한다. 업데이트 후 이전 버전으로 다시 롤백을 진행한다.
[solve]
[root@k8s-master ~]# vi 50-test.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-app
labels:
app: nginx
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx
ports:
- containerPort: 80
[root@k8s-master ~]# kubectl apply -f 50-test.yaml
deployment.apps/nginx-app created
[root@k8s-master ~]# kubectl set image deployment/nginx-app nginx=nginx:1.11.13-alpine
deployment.apps/nginx-app image updated
[root@k8s-master ~]#
[root@k8s-master ~]# kubectl describe pods nginx-app-578594c58-5zmhr
Error from server (NotFound): pods "nginx-app-578594c58-5zmhr" not found
[root@k8s-master ~]# kubectl describe pods nginx-app-766c77587f-
nginx-app-766c77587f-dsqmg nginx-app-766c77587f-gzvtd nginx-app-766c77587f-w64pp
[root@k8s-master ~]# kubectl describe pods nginx-app-766c77587f-dsqmg
Name: nginx-app-766c77587f-dsqmg
Namespace: default
Priority: 0
Service Account: default
Node: k8s-node2/192.168.56.32
Start Time: Sat, 28 Dec 2024 22:09:36 +0900
Labels: app=nginx
pod-template-hash=766c77587f
Annotations: cni.projectcalico.org/containerID: 54b264870455ff16b090f05fa3f7dce8bdb8c171fbb6f0d5d88c7e1ac381412e
cni.projectcalico.org/podIP: 20.96.169.179/32
cni.projectcalico.org/podIPs: 20.96.169.179/32
Status: Running
IP: 20.96.169.179
IPs:
IP: 20.96.169.179
Controlled By: ReplicaSet/nginx-app-766c77587f
Containers:
nginx:
Container ID: containerd://761785b86fca729cccaebfabc31922a0b1e2741f2391f451eb903037c9fb0482
Image: nginx:1.11.13-alpine
Image ID: docker.io/library/nginx@sha256:5aadb68304a38a8e2719605e4e180413f390cd6647602bee9bdedd59753c3590
Port: 80/TCP
Host Port: 0/TCP
State: Running
Started: Sat, 28 Dec 2024 22:09:38 +0900
Ready: True
Restart Count: 0
Environment: <none>
Mounts:
/var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-fqfvt (ro)
Conditions:
Type Status
Initialized True
Ready True
ContainersReady True
PodScheduled True
Volumes:
kube-api-access-fqfvt:
Type: Projected (a volume that contains injected data from multiple sources)
TokenExpirationSeconds: 3607
ConfigMapName: kube-root-ca.crt
ConfigMapOptional: <nil>
DownwardAPI: true
QoS Class: BestEffort
Node-Selectors: <none>
Tolerations: node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 23s default-scheduler Successfully assigned default/nginx-app-766c77587f-dsqmg to k8s-node2
Normal Pulling 23s kubelet Pulling image "nginx:1.11.13-alpine"
Normal Pulled 21s kubelet Successfully pulled image "nginx:1.11.13-alpine" in 1.567263854s (1.567276841s including waiting)
Normal Created 21s kubelet Created container nginx
Normal Started 21s kubelet Started container nginx
[root@k8s-master ~]#
[root@k8s-master ~]#
[root@k8s-master ~]# kubectl rollout undo deployment nginx-app
deployment.apps/nginx-app rolled back
[root@k8s-master ~]#
[root@k8s-master ~]#
[root@k8s-master ~]# kubectl describe pods nginx-app-766c77587f-dsqmg
Error from server (NotFound): pods "nginx-app-766c77587f-dsqmg" not found
[root@k8s-master ~]# kubectl describe pods nginx-app-578594c58-5zmhr
Error from server (NotFound): pods "nginx-app-578594c58-5zmhr" not found
[root@k8s-master ~]# kubectl describe pods nginx-app-55f598f8d-
nginx-app-55f598f8d-6558z nginx-app-55f598f8d-m9dbb nginx-app-55f598f8d-rfwfv
[root@k8s-master ~]# kubectl describe pods nginx-app-55f598f8d-6558z
Name: nginx-app-55f598f8d-6558z
Namespace: default
Priority: 0
Service Account: default
Node: k8s-node2/192.168.56.32
Start Time: Sat, 28 Dec 2024 22:10:14 +0900
Labels: app=nginx
pod-template-hash=55f598f8d
Annotations: cni.projectcalico.org/containerID: b03e59bca70c12e42b99e1bec16d84ec423263e19403a8dc2dc19e557c0b0a72
cni.projectcalico.org/podIP: 20.96.169.180/32
cni.projectcalico.org/podIPs: 20.96.169.180/32
Status: Running
IP: 20.96.169.180
IPs:
IP: 20.96.169.180
Controlled By: ReplicaSet/nginx-app-55f598f8d
Containers:
nginx:
Container ID: containerd://e5ea62562b9b67a7d7a94b3d8c6c6fd7ac17742fc76881fa8ab5362dd806febe
Image: nginx
Image ID: docker.io/library/nginx@sha256:42e917aaa1b5bb40dd0f6f7f4f857490ac7747d7ef73b391c774a41a8b994f15
Port: 80/TCP
Host Port: 0/TCP
State: Running
Started: Sat, 28 Dec 2024 22:10:16 +0900
Ready: True
Restart Count: 0
Environment: <none>
Mounts:
/var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-jbz8n (ro)
Conditions:
Type Status
Initialized True
Ready True
ContainersReady True
PodScheduled True
Volumes:
kube-api-access-jbz8n:
Type: Projected (a volume that contains injected data from multiple sources)
TokenExpirationSeconds: 3607
ConfigMapName: kube-root-ca.crt
ConfigMapOptional: <nil>
DownwardAPI: true
QoS Class: BestEffort
Node-Selectors: <none>
Tolerations: node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 37s default-scheduler Successfully assigned default/nginx-app-55f598f8d-6558z to k8s-node2
Normal Pulling 37s kubelet Pulling image "nginx"
Normal Pulled 35s kubelet Successfully pulled image "nginx" in 1.647072305s (1.64708808s including waiting)
Normal Created 35s kubelet Created container nginx
Normal Started 35s kubelet Started container nginx
[root@k8s-master ~]#
반응형