pod
pod 概念:Pod 是可以在 Kubernetes 中创建和管理的、最小的可部署的计算单元。
Pod (就像在鲸鱼荚或者豌豆荚中)是一组(一个或多个) 容器; 这些容器共享存储、网络、以及怎样运行这些容器的声明。
- 自主性pod
- 控制器pod
pod 里边可以封装很多容器;只要有pod生成,就会有 pause 容器启动。
Replicationcontroller & Replicaset & Deployment
Replication Controller 用来确保容器应用的副本数始终保持在用户定义的副本数,即如果有容器异常退出,会自动创建新的 Pod 来替代;而如果异常多出来的容器也会自动回收。在新版本的 Kubernetes 中建议使用 Replicaset 来取代 Replication Controlle
Replicaset 跟 Replication Controller 没有本质的不同,只是名字不一样,并且 Replicaset 支持集合式的 selector
虽然 Replicaset 可以独立使用,但一般还是建议使用 Deployment 来自动管理 Replicaset,这样就无需担心跟其他机制的不兼容问题(比如 Replicaset 不支持 rolling-update 但 Deployment 支持)
HPA (Horizontalpodautoscale)
Horizontal Pod Autoscaling 仅适用于 Deployment 和 Replicaset,在 v1 版本中仅支持根据 Pod 的 CPU 利用率扩所容,在 v1a1pha 版本中,支持根据内存和用户自定义的 metric 扩缩容
Statefulset
Stateful Set 是为了解决有状态服务的问题(对应 Deployments 和 Replicasets 是为无状态服务而设计),其应用场景包括:
- 稳定的持久化存储,即 Pod 重新调度后还是能访问到相同的持久化数据,基于 PVC 来实现
- 稳定的网络标志,即 Pod 重新调度后其 Podname 和 Hostname 不变,基于 Headless Service(即没有 Cluster IP 的 Service)来实现
- 有序部署,有序扩展,即 Pod 是有顺序的,在部署或者扩展的时候要依据定义的顺序依次依次进行(即从 0 到 N1, 在下一个 Pod 运行之前所有之前的 Pod 必须都是 Running 和 Ready 状态),基于 Init containers 来实现
- 有序收缩,有序删除(即从 N1 到 0)
Daemon Set
Daemonset 确保全部(或者一些)Node 上运行一个 Pod 的副本。当有 Node 加入集群时,也会为他们新增一个 Pod。当有 Node 从集群移除时,这些 Pod 也会被回收。删除 Daemon Set 将会删除它创建所有 Pod
使用 Daemonset 的一些典型用法:
- 运行集群存储 daemon,例如在每个 Node 上运行 cluster、ceph
- 在每个 Node 上运行日志收集 daemon,例如 fluentd、logstash
- 在每个 Node 上运行监控 daemon,例如 Prometheus Node Exporter
Job, Cronjob
Job 负责批处理任务,即仅执行一次的任务,它保证批处理任务的一个或多个 Pod 成功结束
Cron Job 管理基于时间的 Job,即:
- 在给定时间点只运行一次
- 周期性地在给定时间点运行
本文来自博客园, 作者:Star-Hitian, 转载请注明原文链接:https://www.cnblogs.com/Star-Haitian/articles/15247502.html

浙公网安备 33010602011771号