如何将Kubernetes节点状态从;准备好了吗;至;“未准备就绪”;通过改变CPU利用率、内存利用率或磁盘压力?
我已经将kubernetes群集设置为1个主节点和1个工作节点。出于测试目的,我将CPU利用率和内存利用率提高到100%,但静止节点未处于“NotReady”状态。 我正在测试压力状态。。如何将MemoryPressure的状态标志更改为true,或将DiskPressure或PIDPressure更改为true 以下是我的主节点条件:- 条件:如何将Kubernetes节点状态从;准备好了吗;至;“未准备就绪”;通过改变CPU利用率、内存利用率或磁盘压力?,kubernetes,Kubernetes,我已经将kubernetes群集设置为1个主节点和1个工作节点。出于测试目的,我将CPU利用率和内存利用率提高到100%,但静止节点未处于“NotReady”状态。 我正在测试压力状态。。如何将MemoryPressure的状态标志更改为true,或将DiskPressure或PIDPressure更改为true 以下是我的主节点条件:- 条件: Type Status LastHeartbeatTime LastTransit
Type Status LastHeartbeatTime LastTransitionTime Reason Message
---- ------ ----------------- ------------------ ------ -------
NetworkUnavailable False Wed, 27 Nov 2019 14:36:29 +0000 Wed, 27 Nov 2019 14:36:29 +0000 WeaveIsUp Weave pod has set this
MemoryPressure False Thu, 28 Nov 2019 07:36:46 +0000 Fri, 22 Nov 2019 13:30:38 +0000 KubeletHasSufficientMemory kubelet has sufficient memory available
DiskPressure False Thu, 28 Nov 2019 07:36:46 +0000 Fri, 22 Nov 2019 13:30:38 +0000 KubeletHasNoDiskPressure kubelet has no disk pressure
PIDPressure False Thu, 28 Nov 2019 07:36:46 +0000 Fri, 22 Nov 2019 13:30:38 +0000 KubeletHasSufficientPID kubelet has sufficient PID available
Ready True Thu, 28 Nov 2019 07:36:46 +0000 Fri, 22 Nov 2019 13:30:48 +0000 KubeletReady kubelet is posting ready status
以下是播客信息:-
Non-terminated Pods: (8 in total)
Namespace Name CPU Requests CPU Limits Memory Requests Memory Limits AGE
--------- ---- ------------ ---------- --------------- ------------- ---
kube-system coredns-5644d7b6d9-dm8v7 100m (5%) 0 (0%) 70Mi (0%) 170Mi (2%) 22d
kube-system coredns-5644d7b6d9-mz5rm 100m (5%) 0 (0%) 70Mi (0%) 170Mi (2%) 22d
kube-system etcd-ip-172-31-28-186.us-east-2.compute.internal 0 (0%) 0 (0%) 0 (0%) 0 (0%) 22d
kube-system kube-apiserver-ip-172-31-28-186.us-east-2.compute.internal 250m (12%) 0 (0%) 0 (0%) 0 (0%) 22d
kube-system kube-controller-manager-ip-172-31-28-186.us-east-2.compute.internal 200m (10%) 0 (0%) 0 (0%) 0 (0%) 22d
kube-system kube-proxy-cw8vv 0 (0%) 0 (0%) 0 (0%) 0 (0%) 22d
kube-system kube-scheduler-ip-172-31-28-186.us-east-2.compute.internal 100m (5%) 0 (0%) 0 (0%) 0 (0%) 22d
kube-system weave-net-ct9zb 20m (1%) 0 (0%) 0 (0%) 0 (0%) 22d
Allocated resources:
(Total limits may be over 100 percent, i.e., overcommitted.)
Resource Requests Limits
-------- -------- ------
cpu 770m (38%) 0 (0%)
memory 140Mi (1%) 340Mi (4%)
ephemeral-storage 0 (0%) 0 (0%)
此处为工作节点:-
Conditions:
Type Status LastHeartbeatTime LastTransitionTime Reason Message
---- ------ ----------------- ------------------ ------ -------
NetworkUnavailable False Thu, 28 Nov 2019 07:00:08 +0000 Thu, 28 Nov 2019 07:00:08 +0000 WeaveIsUp Weave pod has set this
MemoryPressure False Thu, 28 Nov 2019 07:39:03 +0000 Thu, 28 Nov 2019 07:00:00 +0000 KubeletHasSufficientMemory kubelet has sufficient memory available
DiskPressure False Thu, 28 Nov 2019 07:39:03 +0000 Thu, 28 Nov 2019 07:00:00 +0000 KubeletHasNoDiskPressure kubelet has no disk pressure
PIDPressure False Thu, 28 Nov 2019 07:39:03 +0000 Thu, 28 Nov 2019 07:00:00 +0000 KubeletHasSufficientPID kubelet has sufficient PID available
Ready True Thu, 28 Nov 2019 07:39:03 +0000 Thu, 28 Nov 2019 07:00:00 +0000 KubeletReady kubelet is posting ready status
只需在要处于NotReady状态的节点上关闭kubelet服务只需在要处于NotReady状态的节点上关闭kubelet服务有几种方法可以使节点进入NotReady状态,但不是通过POD。当一个Pod开始消耗太多内存时,kubelet会杀死该Pod,以精确地保护节点 我想你应该测试当一个节点发生故障时会发生什么,在这种情况下,你应该将其耗尽。换句话说,要模拟节点问题,应执行以下操作:
kubectl排水节点
尽管如此,还是要查看kubectl drain--help
,看看在什么情况下会发生什么
编辑
实际上,我尝试访问节点并直接在节点上运行压力,这就是20秒内发生的情况:
root@gke-klusta-lemmy-3ce02acd-djhm:/# stress --cpu 16 --io 8 --vm 8 --vm-bytes 2G
在节点上检查:
$ kubectl get no -w | grep gke-klusta-lemmy-3ce02acd-djhm
gke-klusta-lemmy-3ce02acd-djhm Ready <none> 15d v1.13.11-gke.14
gke-klusta-lemmy-3ce02acd-djhm Ready <none> 15d v1.13.11-gke.14
gke-klusta-lemmy-3ce02acd-djhm NotReady <none> 15d v1.13.11-gke.14
gke-klusta-lemmy-3ce02acd-djhm NotReady <none> 15d v1.13.11-gke.14
gke-klusta-lemmy-3ce02acd-djhm NotReady <none> 15d v1.13.11-gke.14
$kubectl获得编号-w | grep gke-klusta-lemmy-3ce02acd-djhm
gke-klusta-lemmy-3ce02acd-djhm就绪15d v1.13.11-gke.14
gke-klusta-lemmy-3ce02acd-djhm就绪15d v1.13.11-gke.14
gke-klusta-lemmy-3ce02acd-djhm NotReady 15d v1.13.11-gke.14
gke-klusta-lemmy-3ce02acd-djhm NotReady 15d v1.13.11-gke.14
gke-klusta-lemmy-3ce02acd-djhm NotReady 15d v1.13.11-gke.14
我运行的节点非常弱。1CPU@4GBRAM有几种方法可以使节点进入NotReady状态,但不能通过POD。当一个Pod开始消耗太多内存时,kubelet会杀死该Pod,以精确地保护节点 我想你应该测试当一个节点发生故障时会发生什么,在这种情况下,你应该将其耗尽。换句话说,要模拟节点问题,应执行以下操作:
kubectl排水节点
尽管如此,还是要查看kubectl drain--help
,看看在什么情况下会发生什么
编辑
实际上,我尝试访问节点并直接在节点上运行压力,这就是20秒内发生的情况:
root@gke-klusta-lemmy-3ce02acd-djhm:/# stress --cpu 16 --io 8 --vm 8 --vm-bytes 2G
在节点上检查:
$ kubectl get no -w | grep gke-klusta-lemmy-3ce02acd-djhm
gke-klusta-lemmy-3ce02acd-djhm Ready <none> 15d v1.13.11-gke.14
gke-klusta-lemmy-3ce02acd-djhm Ready <none> 15d v1.13.11-gke.14
gke-klusta-lemmy-3ce02acd-djhm NotReady <none> 15d v1.13.11-gke.14
gke-klusta-lemmy-3ce02acd-djhm NotReady <none> 15d v1.13.11-gke.14
gke-klusta-lemmy-3ce02acd-djhm NotReady <none> 15d v1.13.11-gke.14
$kubectl获得编号-w | grep gke-klusta-lemmy-3ce02acd-djhm
gke-klusta-lemmy-3ce02acd-djhm就绪15d v1.13.11-gke.14
gke-klusta-lemmy-3ce02acd-djhm就绪15d v1.13.11-gke.14
gke-klusta-lemmy-3ce02acd-djhm NotReady 15d v1.13.11-gke.14
gke-klusta-lemmy-3ce02acd-djhm NotReady 15d v1.13.11-gke.14
gke-klusta-lemmy-3ce02acd-djhm NotReady 15d v1.13.11-gke.14
我运行的节点非常弱。1CPU@4GBRAM我想通过CPU、内存或磁盘的压力来完成它,但事情不是这样的。当存在磁盘压力或资源不足时,POD将从该节点退出。您的意思是节点磁盘压力不会将节点状态更改为“NotReady”。。我想检查..如何使这些压力为真?部署一个或多个需要比节点容量更多cpu/内存的pod这将导致pod失败,但我需要节点压力我想通过cpu或内存或磁盘的压力来实现这一点。情况并非如此。当存在磁盘压力或资源不足时,POD将从该节点退出。您的意思是节点磁盘压力不会将节点状态更改为“NotReady”。。我想检查..如何将这些压力设置为真?部署一个或多个需要比节点容量更多cpu/内存的pod这将导致pod失败,但我需要节点压力我正在寻找将节点条件(MemoryPressure、DiskPressure、PIDPressure)的状态设置为真的方法,然后它也将变为“NotReady”状态..直接在节点上运行,是。我编辑了我的答案。如何从节点内部运行命令?我可以从实例运行它,强调--cpu 8--io 4--vm 3--vm字节1900M--24小时超时&cpu达到100%,内存也达到。。但是节点仍然处于就绪状态,因为实例来自节点,所以它是正确的。更强调它。更多的工人,更多的io。我的第一次测试比我发布的测试要弱得多,是的,已经有106%的时间了,什么都没有发生。但是当我升级到cpu 16、io 8、vm 8和vm字节到2G时,在20秒内,它杀死了节点。谢谢。。这件事已记不得了。。任何脱离磁盘压力或PID压力故障的方法我正在寻找将节点状态(MemoryPressure、DiskPressure、PIDPressure)设置为true的方法,然后它也将进入“NotReady”状态。直接在节点上运行,是的。我编辑了我的答案。如何从节点内部运行命令?我可以从实例运行它,强调--cpu 8--io 4--vm 3--vm字节1900M--24小时超时&cpu达到100%,内存也达到。。但是节点仍然处于就绪状态,因为实例来自节点,所以它是正确的。更强调它。更多的工人,更多的io。我的第一次测试比我发布的测试要弱得多,是的,已经有106%的时间了,什么都没有发生。但是当我升级到cpu 16、io 8、vm 8和vm字节到2G时,在20秒内,它杀死了节点。谢谢。。这件事已记不得了。。任何脱离磁盘压力或PID压力的方法都失败