k8s架构原理以及核心组件

1.pod原理解析

Pod是最小部署单元,一个Pod有一个或多个容器组成,Pod中容器共享存储和网络,在同一台Docker 主机上运行

1)pod基本结构

我们看下在node节点上都会起很多pause容器,和pod是一一对应的。 每个Pod里运行着一个特殊的被称之为Pause的容器,其他容器则为业务容器,这些业务容器共享 Pause容器的网络栈和Volume挂载卷,因此他们之间通信和数据交换更为高效,在设计时我们可以充 分利用这一特性将一组密切相关的服务进程放入同一个Pod中。同一个Pod里的容器之间仅需通过 localhost就能互相通信。

kubernetes中的pause容器主要为每个业务容器提供以下功能:

  • PID 命名空间:Pod中的不同应用程序可以看到其他应用程序的进程ID
  • 网络命名空间:Pod中的多个容器能够访问同一个IP和端口范围
  • IPC命名空间:Pod中的多个容器能够使用SystemV IPC或POSIX消息队列进行通信
  • UTS命名空间:Pod中的多个容器共享一个主机名;
  • UTS命名空间:Pod中的多个容器共享一个主机名;

2.Other组件

3.RC[控制器]和RS[控制器]

ReplicationController 用来确保容器应用的副本数始终保持在用户定义的副本数,即如果有容器异常退出,会自动创建新的 Pod来替代,而如果异常多出的容器也会自动回收。 在新版本的 Kubernetes 中建议使用ReplicaSet 来取代ReplicationController


ReplicaSetReplicaSet跟ReplicationController没有本质的不同,只是名字不一样,并且ReplicaSet支持集合式的 selector


4.Deployment

Deployment为Pod和ReplicaSet 提供了一个 声明式定义方法,用来替代以前的 ReplicationController 来方便的管理应用。 典型的应用场景:

(1)、定义Deployment 来创建 Pod 和 ReplicaSet

(2)、滚动升级和回滚应用

(3)、扩容和索容

(4)、暂停和继续 Deployment Deployment不仅仅可以滚动更新,而且可以进行回滚,如果发现升级到V2版本后,发现服务不可用, 可以回滚到V1版本。

5.HPA

HPA(HorizontalPodAutoScale) Horizontal Pod Autoscaling 仅适用于 Deployment 和 ReplicaSet,在V1版本中仅支持根据Pod的CPU利 用率扩容,在vlalpha版本中,支持根据内存和用户自定义的metric扩缩容。

6.StatefullSet

StatefullSet 是为了解决有状态服务的问题(对应Deployments 和 ReplicaSets 是为无状态服务而设 计),其应用场景包括:

(1) 稳定的持久化存储,即Pod重新调度后还是能访问的相同持久化数据,基于PVC来实现

(2)稳定的网络标志,及Pod重新调度后其 PodName 和 HostName 不变,基于Headlesss Service(即没有 Cluster IP 的 Service)来实现。

(3)有序部署,有序扩展,即Pod是有顺序的,在部署或者扩展的时候要依据定义的顺序依次进行 (即从 0 到 N-1,在下一个Pod运行之前所有之前的Pod必须都是Running 和 Ready 状态),基于 init containers 来实现。

(4)有序收缩,有序删除(即从N-1 到 0)


7.DaemonSet

DaemonSet确保全部(或者一些 [ node打上污点(可以想象成一个标签),pod如果不定义容忍这个污 点,那么pod就不会被调度器分配到这个node ]) Node上运行一个Pod的副本。当有Node加入集群时,也会为他们新增一个Pod。当有Node从集群移除 时,这些Pod也会被回收。删除DaemonSet将会删除他创建的所有Pod,使用DaemonSet 的一些典型用 法:

(1) 运行集群存储daemon,例如在每个Node上运行glustered,ceph

(2)在每个Node上运行日志收集Daemon,例如:fluentd、logstash.

(3)在每个Node上运行监控Daemon,例如:Prometheus Node Exporter Job 负责批处理任务,即仅执行一次的任务,它保证批处理任务的一个或多个Pod成功结束 Cron Job管理基于时间Job,即: 在给定时间点只运行一次 周期性地在给定时间点运行

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值