Linux企业运维——KubernetesPod管理

Posted 是大姚呀

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux企业运维——KubernetesPod管理相关的知识,希望对你有一定的参考价值。

Linux企业运维——Kubernetes(二)Pod管理

1、Pod简介

Pod是可以创建和管理Kubernetes计算的最小可部署单元,一个Pod代表着集群中运行的一个进程,每个pod都有一个唯一的ip。
一个pod类似一个豌豆荚,包含一个或多个容器(通常是docker),多个容器间共享IPC、Network和UTC namespace。

2、Pod管理

一个pod有唯一的ip,pod中的副本共享这一个ip,共享一个ip不冲突,但不能在一个pod里启动同一容器的多个副本
(以下所有操作都是在集群的master端server2做)

2.1、Pod创建与使用

1、启动之前创建的k8s集群,这里注意一定要先启动仓库,因为集群创建pod时需要从私有仓库中拉取镜像,检查server1的harbor仓库是否启动

2、server2集群Master端查看集群内各节点均处于就绪状态

3、启动容器创建Pod应用,(当前版本的k8s)使用这种方式不可以指定Pod内副本个数,只能生成一个容器,使用describe参数可以查看指定Pod中容器的详细属性信息

4、查看Pod资源的额外信息如容器分配到的ip、调度到集群中的哪一台主机上, curl访问查询到的ip可以看到生成容器所使用的镜像的默认发布页面

5、删除Pod,创建deployment控制器,这种方式可以使用–replicas参数指定创建副本的个数,集群会自动创建Pod,此时查看pod信息可以看到pod中有两个随机调度生成的容器副本


查看pod中容器的标签

6、删除pod中的某个容器副本后,RS副本控制器自动检测到容器副本数量不足,会重新拉起一个容器副本

7、暴露deployment控制器创建service,设定暴露端口,此时k8s集群会为pod自动分配一个仅集群内部可以访问的虚拟IP即vip,访问这一vip会轮询pod中的两个容器副本,实现自动负载均衡
(service是一个抽象概念,定义了一个服务的多个pod逻辑合集和访问pod的策略,一般把service称为微服务。)


查看service的详细属性信息可以看到其包含了两个访问后端

8、删除pod中的某个容器副本,RS副本控制器重新拉起一个容器副本,可以看到新建容器分配到的ip改变,此时再次查看service的详细属性信息可以看到其包含的两个访问后端的ip也自动进行了更新,我们可以将其理解为另一种形式的健康检测

2.2、Pod扩容缩容

1、使用scale参数将已有pod中的容器副本数目扩容到指定数量

2、查看service的详细属性信息可以看到service的虚拟vip及其所包含的6个访问后端

3、访问service的虚拟vip会轮询pod中的多个容器副本,实现自动负载均衡

4、使用scale参数将已有pod中的容器副本数目缩容到指定数量,缩容时是把最新创建的容器副本删掉,保留运行时间最长的容器副本

2.3、Pod中镜像的滚动更新

1、使用deployment控制器更新pod中容器副本的镜像版本,可以看到原来的容器副本被删掉,创建了新镜像版本的容器副本

2、查看Pod资源的额外信息得到容器分配到的ip, curl访问查询到的ip,从镜像默认发布页面可以看出生成容器所使用的镜像版本成功更新

3、查看集群中所有已存在的资源可以发现,原来的RS副本控制器不会删掉,会创建新的RS控制器,这样便于镜像版本回滚,当pod中镜像回滚到原来的版本时,原来的控制器又会再次运行

4、使用deployment控制器回滚pod中容器副本的镜像版本,查看Pod资源的额外信息得到容器分配到的ip, curl访问查询到的ip可以看到生成容器所使用的镜像版本已回滚,这里也可以通过访问service的虚拟vip看到生成容器所使用的镜像版本已回滚,原来的RS控制器再次运行,同理新的RS控制器不会删掉

以上是关于Linux企业运维——KubernetesPod管理的主要内容,如果未能解决你的问题,请参考以下文章

Linux企业运维——KubernetesPod管理

云网管—云上构建网络自动化体系

“云网管” ---云上构建网络自动化体系

阿里云发布多款云管工具,任何角色都可以轻松完成云上运维

TStack运维笔记(01)- 概述

自动化运维设计难点:如何将“监”“管”“控”有效的结合在一起?