LAB-02:指定节点不可用
LAB 需求
将名为 k8s-node-1 的 node 设置为不可用,并且重新调度该 node 上所有的 pods。
LAB 预配
# 编写一个2副本的 deployments,至少一个 pod 调度到 k8s-node-1上。
user1@k8s-master:~/cka/2$ cat deployment-Nginx-pod-nodes.yaml
apiVersion: apps/v1
kind: Deployment
Metadata:
name: Nginx-pod-nodes
spec:
replicas: 2
selector:
matchLabels:
app: Nginx-pod-nodes
template:
Metadata:
labels:
app: Nginx-pod-nodes
spec:
containers:
- name: Nginx
image: Nginx:1.18.0
imagePullPolicy: IfNotPresent
ports:
- containerPort: 80
# 部署 deployments 资源
user1@k8s-master:~/cka/2$ kubectl apply -f deployment-Nginx-pod-nodes.yaml
deployment.apps/Nginx-pod-nodes created
# 查看部署的资源,分别在 k8s-node-1 和 k8s-node-2 上
user1@k8s-master:~/cka/2$ kubectl get pod -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READInesS GATES
Nginx-pod-nodes-859fcdcc9d-65bwd 1/1 Running 0 115s 10.244.2.2 k8s-node-2 <none> <none>
Nginx-pod-nodes-859fcdcc9d-8jvdx 1/1 Running 0 115s 10.244.1.2 k8s-node-1 <none> <none>
LAB 答案
# 切换 content
$ kubectl config use-context k8s
# 设置节点是不可调度状态
$ kubectl cordon k8s-node-1
# 重新调度 pods,忽略 daemonsets,删除 local-data,不然无法驱逐
$ kubectl drain k8s-node-1 --delete-local-data --ignore-daemonsets --force
LAB 验证
# 查看 k8s-node-1 为不可以,原来在 k8s-node-1 上的 pod 调度到其他节点
user1@k8s-master:~$ kubectl get node
NAME STATUS ROLES AGE VERSION
k8s-master Ready control-plane,master 21h v1.22.1
k8s-node-1 Ready,Schedulingdisabled <none> 21h v1.22.1
k8s-node-2 Ready <none> 21h v1.22.1
k8s-node-3 Ready <none> 21h v1.22.1
参考资料
-
https://kubernetes.io/zh/docs/concepts/architecture/nodes/
-
https://kubernetes.io/zh/docs/tasks/administer-cluster/safely-drain-node/
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。