Kubernetes

九、Kubernetes 进阶之控制器篇

2020-05-03  本文已影响0人  Suny____

上一章对Pod的一些配置进行了更深刻的了解,那对于管理Pod的Controller肯定也要进阶一下,

之前我们已经学习过的 Controller 有RC、RS和Deployment,除此之外官方还提供符合其他场景使用的控制器,如:DaemonSet、statefulSet、Job、cron-job这些。

1、DaemonSet

DaemonSet 确保全部(或者某些)节点上运行一个 Pod 的副本。当有节点加入集群时, 也会为他们新增一个 Pod 。当有节点从集群移除时,这些 Pod 也会被回收。删除 DaemonSet 将会删除它创建的所有 Pod。

DaemonSet应用场景

上面的说明应该很容易理解,简单来说就是,使用DaemonSet控制器创建资源,它会让每个Node节点都运行一份Pod,比如日志收集,因为Pod在不同节点运行,那每个节点肯定都要有一个Pod去收集这些日志,那就可以使用DaemonSet。

像K8S kube-system命名空间下的calico-node、kube-proxy组件,这些都是要在每个节点都要保证有一份Pod存在的,它们的资源类型肯定也是DaemonSet的!

image.png image.png

2、StatefulSet

2.1 StatefulSets 与其他控制器的区别:

之前接触的Pod的管理对象比如RC、Deployment、DaemonSet等都是面向无状态的服务,但是现实中有很多服务是有状态的,比如MySQL集群、MongoDB集群、ZK集群等,它们都有以下共同的特点:

而之前的RC/Deployment没办法满足要求,所以从Kubernetes v1.4版本就引入了PetSet资源对象,在v1.5版本时更名为StatefulSet。从本质上说,StatefulSet可以看作是Deployment/RC对象的特殊变种

2.2 使用StatefulSet

image.png

通过观察Pod的创建过程可以发现,StatefulSet类型的资源名称是有序号的了,而且肯定是有序创建的,第一个Pod没创建完成不会创建第二个!

3、Job

3.1 使用Job

3.2 Job类型

4、Cron Job

4.1 使用Cron Job

5、Horizontal Pod Autoscaler

5.1 Horizontal Pod Autoscaler的使用

image.png

修改副本数为 10

5.2 HPA工作机制

HPA实际就是管理RC或Deployment,通过他们来进行动态的扩缩容。它可以根据CPU使用率或应用自定义metrics自动扩展Pod数量(支持replication controller、deployment和replica set)

image.png

6、Resource

6.1 reques 与 limit

6.2 资源的配置项

Pod的每个容器可以指定以下一项或多项:

需求:requests 定义容器运行时至少需要资源
限制:limits 定义容器运行时最多能分配的资源

尽管只能在单个容器上指定请求和限制,但是Pod资源请求和限制很方便。Pod中每个Container的该类型资源请求/限制的会进行加总求和。

6.3 资源单位

6.4 资源的使用

7、Web UI (Dashboard)

image.png

7.1 部署Dashboard

默认情况下,K8S不会安装Dashboard,可以手动下载yaml文件进行安装

我这里通过搜狗浏览器打开

发现需要认证,有两种方式,我们选择Token令牌的方式登录

image.png

Dashboard功能很全面,有了Dashboard我们很多简单操作无需再到宿主机中去敲命令,直接通过界面操作即可。

具体的使用这里不错介绍了,功能很简单,多点点多看看就知道怎么玩了。

上一篇下一篇

猜你喜欢

热点阅读