首先我们先来查询节点的数量和状态,master节点,node节点均运行正常。
然后我们来查看一下系统级别的pod。如果出现STATUS出现不是运行状态的pod,可以从采取重启的方式来解决,如果在重启过程中出现如下问题,有可能是因为内存不足导致的,这个时候就需要扩展内存来解决了。
问题解决以后,我们可以发现所有的系统pod都正常运行:
这时候我们开始真正意义下执行一下k8s集群的功能:
kubectl run tomcat-deployment --image=tomcat:latest --port=80 --replicas=1
为了验证k8s可以保持一定个数的容器运行的功能,我们把replicas修改为3如下图:
kubectl scale --replicas=3 deployment/tomcat-deployment
这个时候我们发现事情好像不是和我们的预期一直,目前的运行中的pod数量还是两个,另外两个 的状态为ContainerCreating,也就是容器正在构建中,这个过程是十分漫长的,为什么?
因为这个过程需要到官网去下载然而官网是要在外网上的,因此下载速度有限,这里我们可以布置阿里云镜像加速器,只要注册阿里云账号都可以免费领取。只需要在daemon.json文件中写入即可。
当然pod还有可能出现其他的状态,比如ImagePullBackOff,也就是镜像下载失败,一般也是因为网络的原因。另外一个是ErrImagePull,也就是镜像的下载或者是安装出了问题,还有就是Terminating,是停止的意思,一般也是故障引发的容器停止。
配置完成之后,会自动产生三个tomcat-deployment容器(pod),他们分别产生了不同的IP和pod名。
在这里我们尝试删除一个正在运行中的pod:
继续获取所有运行中的pod,我们可以看到之前的IP为10.244.2.8的pod已经被删除,取而代之的是一个新产生的运行在node03里面的10.244.1.5。说明k8s功能正常。
在这里我们就可以之间建立连接到我们的pod上。
接下来我们作如下操作,多登陆几次该IP及端口。
使用ipvsadm -Ln
发现确实在k8s集群下,我们会 进行轮询,也就是负载均衡。