前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Kubernetes 笔记 07 豌豆荚之旅(二)

Kubernetes 笔记 07 豌豆荚之旅(二)

作者头像
Linux云计算网络
发布2019-05-25 16:27:51
7400
发布2019-05-25 16:27:51
举报
文章被收录于专栏:Linux云计算网络

Hi,大家好,我是 CloudDeveloper,欢迎大家和我一起学习 K8S,这是系列第 8 篇。

上篇我们简单学习了 Pod 的基础知识,本篇开始讲述一些 Pod 的高阶知识(本文只做理论的简单阐述,后面会针对每个点进行实践)。

Pod 的生命周期管理

豌豆荚自诞生之日起,便注定要经历生老病死的一生。Pod 是由容器组成的,Pod 生命周期实际上是由容器的生命周期决定的。

在整个生命周期过程中,Pod 会被定义为各种状态,如下:

这些状态包括正常状态和异常状态,当出现异常状态时,K8S 的监控机制会检测到这种异常,并执行相应的异常处理。

Pod 的监控机制

Pod 的监控主要是监控 Pod 内容器的健康状况,并进行相关的异常处理和容错管理。

当监控到某个容器异常退出或健康检查失败时,Pod 会执行重启策略,使得 Pod 内的容器健康运转。

如下记录了 Pod 的重启策略和健康检查机制:

Pod 的调度管理

K8S Master 上的 Scheduler 服务负责实现 Pod 的调度管理,Pod 是静态的,只有真正被调度到具体的节点上才能发挥它的作用。K8S 根据不同的应用场景,定义了多种不同的调度策略。这些策略可以是根据算法自动完成的,也可以是人为指定的。具体可以看下面这张导图:

笼统来看,有时候为了权衡应用场景和集群资源的需求,需要对 Pod 进行扩容和缩容,这同样属于 Pod 调度管理的范畴。

Pod 的存储管理

Pod 和容器的数据存储使用 Volume,K8S Volume 和 Docker 的 Volume 是一样的原理,都是文件系统上的一个目录,只不过在 K8S 中实现了更多的 backend driver。包括 emptyDir、hostPath、GCE Persistent Disk、NFS、Ceph 等。

Volume 提供了对各种 driver 的抽象,容器在使用 Volume 读写数据的时候不需要关心底层具体存储方式的实现,对它来说,所有类型的 Volume 都是一个目录。

当 Volume 被挂载到 Pod 中时,这个 Pod 中的容器都会共享这个 Volume,当其中的容器销毁时,Volume 中的数据也不会丢失,当 Pod 销毁时,根据不同的 driver 实现,数据也可以保存下来。

Volume 提高了 Pod 内数据的持久化管理,延长了 Pod 和容器的生命周期。

Pod 的网络管理

在 K8S 中,定义了多种资源对象,很多对象本身就是一个通信的实体,比如容器、Pod、Service、Node。

K8S 维护这多种对象之间的通信关系,比如:Pod 内容器之间的通信、Pod 与容器之间的通信、Pod 之间的通信、Pod 与 Service 之间的通信,以及外部的访问。

这些通信机制的建立离不开 K8S 建立的完善的网络模型。K8S 使用了 CNI(容器网络规范)来标准化、归一化网络模型。

第三方的厂商或开发者可以根据自身网络需求,遵从 CNI 的规范,实现各种网络方案,并以插件的形式提供给 K8S 使用。目前比较知名的网络方案有:flannel、calico、weave、canal 等。

这些网络方案各有千秋、虽然实现方式各有区别,但殊途同归,最终都是满足 K8S 中各种实体间的通信需求。

OK,本文就到这里,我们通过两篇文章大致梳理了豌豆荚从出生到死亡要面临的多种人生的关卡。跨过去了,就成熟了,希望我们都能跨过自己人生的关卡。

下文我们开始进入实践的部分。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-03-20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Pod 的生命周期管理
  • Pod 的监控机制
  • Pod 的调度管理
  • Pod 的存储管理
  • Pod 的网络管理
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档