k8s集群启动了上万个容器(一个pod里放上百个容器,起百个pod就模拟出上万个容器)服务器超时,无法操作的解决办法

问题说明:

一个POD里放了百个容器,然后让K8S集群部署上百个POD,得到可运行上万个容器的实验目的。

实验环境:3台DELL裸机服务器,16核+64G,硬盘容量忽略吧,上T了,肯定够。

1.一开始运行5000多个容器的时候(也就50个POD),集群部署后,10几分钟就起来了,感觉还不错。

2.增加压力,把50个POD增加到100个POD,感觉也不会很长时间,都等到下班后又过了半个小时,还是没有起来,集群链接缓慢,使用kubect里面的命令,好久都出不来信息,UI界面显示服务器超时。

心想,完了,起不来了,把服务器撑死了。让其晚上慢慢启动吧,明天早上查看。

当当当,早上来上班了

打开服务器,使用SSH连接 master 节点,挺好,连接挺快,使用kubectl命令获取pods 信息,居然报服务器错误了,基本都是服务器超时的错误。……

然后用ssh连接 node 节点,直接连不上,本地一致在转圈圈,去机房接显示屏连接,直接也没有反应。

这下子坏了,难道要重新装服务器了,键盘鼠标 CPU都给他分配资源了。这不坏了嘛。。

敲重点……还好,master节点很好,可以连接。这一点Kubernetes做的比较好(我三台服务器的配置一样),有Master节点在就不用担心。

解决方案,上网,问大神,给的方法是 用etcd ,进入集群的专用数据库etcd,删除其POD,然后让服务器转起来

又呵呵了,对与我这样的小白,压根都不会ETCD数据库,K8S集群才刚搭建起来玩玩,怎么会那么高深的操作。

这下会不会被炒鱿鱼!!!!!!!!

突然想到了一个绝招 ,用Docker 呀,看看Docker 是否好用,这也是本次实验的杀手锏了。。下面开始着重讲述了

1.连接master节点,然后输入docker images 和docker ps  和docker ps -a 命令也就会这三个,下了一跳 ,上万个容器僵死在那里,怪不得服务器起不来,上图

2.先把所有的容器 stop掉 ,或者把你认为想stop掉的容器都可以停掉,看下 面我的操作

1 docker stop $(docker ps -q -f name=k8s_hello-ros-10*) //就是停止掉前缀名字为 k8s_hello-ros-10 的容器

3.把停到的容器 删除掉,容器太多,这一步运行的有点慢(上面的代码和这次代码做了一个合并)

1 docker stop $(docker ps -q -f name=k8s_hello-ros-10*) & docker rm $(docker ps -aq -f name=k8s_hello-ros-10*)

4.处理完之后,迅速回到Master节点的kubectl命令下,此时K8S集群有反应了,先把你的创建的pod时用的yaml 文件删除,输入命令

1 kubuetc delete -f XXX.yaml

5. 删除你的部署名,因为我是创建POD时,使用Deployments 部署的,所以删除部署,省的根据副本控制器自己又创建POD,那又陷入死循环了

1 1. kubeclt get deployments -n namespace名字 2 2.找到命令空间,删除 3 kubectl delete deployemtns XXX -n XXX命名空间

6.准备关机重启吧

先关闭NODE节点机,再关闭MASTER机器,重启看看吧

顺利成功,K8S集群启动后,原先的POD已全部删除,剩下了系统要用的POD,集群正常运转。

一次危机就这么化解了……

然后又部署了5000个容器,不敢玩大了,下面图

原文地址:https://www.cnblogs.com/yytlmm/p/9890485.html

时间: 2024-10-26 23:53:43

k8s集群启动了上万个容器(一个pod里放上百个容器,起百个pod就模拟出上万个容器)服务器超时,无法操作的解决办法的相关文章

Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之部署master/node节点组件(四)

0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 1.部署master组件 master 服务器的组件有:kube-apiserver.kube-controller-manager.kube-scheduler 因此需要下载k8s master,下载地址:https://github.com/kubernetes/kubernetes/blob/master/CHANGE

k8s 集群容器中集成arthas、netstat即时诊断分析工具

背景:k8s 集群中,java应用容器中添加即时工具分析诊断arthas.netstat 1.预先下载好arthas-packaging-3.1.1-bin.zip文件,在Dockerfile同目录下,并且重命名为arthas.zipwget http://repo1.maven.org/maven2/com/taobao/arthas/arthas-packaging/3.1.1/arthas-packaging-3.1.1-bin.zip mv arthas-packaging-3.1.1-

k8s集群应用例如jenkins启动问题排查思路

k8s集群应用例如jenkins启动问题排查思路 待办 rancher上的事件报告>pods日志>pods内容器日志(现获取容器id再查看容器日志,获取容器id 使用的是相应问题pod的名来抓取,docker ps | grep "podname" 原文地址:https://www.cnblogs.com/lishikai/p/12315008.html

【K8S学习笔记】Part2:获取K8S集群中运行的所有容器镜像

本文将介绍如何使用kubectl列举K8S集群中运行的Pod内的容器镜像. 注意:本文针对K8S的版本号为v1.9,其他版本可能会有少许不同. 0x00 准备工作 需要有一个K8S集群,并且配置好了kubectl命令行工具来与集群通信.如果未准备好集群,那么你可以使用Minikube创建一个K8S集群,或者你也可以使用下面K8S环境二者之一: Katacoda Play with Kubernetes 如果需要查看K8S版本信息,可以输入指令kubectl version. 在本练习中,我们将使

kubernetes生态--交付prometheus监控及grafana炫酷dashboard到k8s集群

由于docker容器的特殊性,传统的zabbix无法对k8s集群内的docker状态进行监控,所以需要使用prometheus来进行监控: 什么是Prometheus? Prometheus是由SoundCloud开发的开源监控报警系统和时序列数据库(TSDB).Prometheus使用Go语言开发,是Google BorgMon监控系统的开源版本. 2016年由Google发起Linux基金会旗下的原生云基金会(Cloud Native Computing Foundation), 将Prom

k8s集群之日志收集EFK架构

参考文档 http://tonybai.com/2017/03/03/implement-kubernetes-cluster-level-logging-with-fluentd-and-elasticsearch-stack/ https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/fluentd-elasticsearch https://t.goodrain.com/t/k8s/242 http://logz

基于prometheus监控k8s集群

本文建立在你已经会安装prometheus服务的基础之上,如果你还不会安装,请参考:prometheus多维度监控容器 如果你还没有安装库k8s集群,情参考: 从零开始搭建基于calico的kubenetes 前言 kubernetes显然已成为各大公司亲睐的容器编排工具,各种私有云公有云平台基于它构建,那么,我们怎么监控集群中的所有容器呢?目前有三套方案: heapster+influxDB heapster为k8s而生,它从apiserver获取节点信息,每个节点kubelet内含了cAdv

再探使用kubeadm部署高可用的k8s集群-01引言

再探使用kubeadm部署高可用的k8s集群-01引言 2018/1/26 提示 仅供测试用途前言:高可用一直是重要的话题,需要持续研究.最近关注到 k8s 官网文档有更新,其中一篇部署高可用集群的文章思路不错,简洁给力,希望能分享给有需要的小伙伴一起研究下. 资源 k8s node master0, 10.222.0.100 master1, 10.222.0.101 master2, 10.222.0.102 LB, 10.222.0.88 master0, master1, master2

centos7 k8s集群部署

安装k8s集群前期准备:网络环境:节点 主机名 ipMaster k8s_master 192.168.3.216Node1 k8s_node1 192.168.3.217Node2 k8s_node2 192.168.3.219 centos7版本:[[email protected]_master ~]# cat /etc/redhat-releaseCentOS Linux release 7.4.1708 (Core) 关闭firewalld:systemctl stop firewal