-
物理单机(~2000)
2000 年:IBM、Sun 公司
在商用服务计算领域几乎都是以单机为基础计算单元对计算资源进行管理和协调控制的
部署新程序的前提往往是购买一台新的物理机器或一组机器
程序直接在物理机上构建、部署和运行
查看全部 -
一、应用部署运行模式变迁
从物理单机、虚拟化(容器化)到云原生
查看全部 -
小结
Kubernetes 概念:
Kubernetes Object 模型
重点:Pod 与各种 Controller
查看全部 -
ConfigMap
查看全部 -
ConfigMap
ConfigMap:常用来向 Pod 提供非敏感的配置信息
ConfigMap 用于保存配置数据的键值对,可以用来保存单个属性,也可以用来保存配置文件
ConfigMap 可以使用命令行基于字面值、文件或目录来创建或通过 configmap 对象定义文件创建
ConfigMap 可以通过三种方式在 Pod 中使用:环境变量、容器命令行参数或以文件形式通过数据卷插件挂载到 Pod 中
查看全部 -
DaemonSet
DaemonSet:保证在每个 Node 上都运行一个 Pod 副本
适用场景:系统 Daemon 程序、监控跟踪、日志收集等
Kubernetes 1.6 之后,可设置更新策略:支持滚动更新
可指定 Node:nodeSelector、nodeAffinity、podAffinity
查看全部 -
StatefulSet
StatefulSet:提供对有状态的应用的部署和控制的支持,1.9 版本 GA
适用场景:稳定的持久化存储、稳定的网络标志、有序部署、有序扩展、有序收缩有序删除、有序自动滚动升级等
Pod 的存储必须由 PersistentVolume Provisioner 根据请求的 Storage Class 进行配置,或由管理员预先配置好。
考虑数据安全性,伸缩或删除 StatefulSet 不会删除关联的存储;另外 StatefulSet 目前要求 Headless Service 负责 Pod 的网络身份,用户有责任创建此服务
查看全部 -
Deployment
Deployment:为 Pod 和 ReplicaSet 提供了声明式的定义(declarative)
用户在 deployment 文件中描述期望状态,Deployment controller 就会自动将 Pod 和 Replica Set 的实际状态改变到期望状态
Deployment 支持 Pod 的 RollingUpdate,并自动管理背后的 ReplicaSet
Deployment 支持将 pod Rollback 到之前的任意 revision (仅限于 pod-template 模板改动)
查看全部 -
ReplicaSet
ReplicaSet:确保健康 Pod 的副本数始终满足用户定义的数量
前身是 ReplicationController(rc)
相比 rc,增加集合式 label selector 的支持
支持单独使用,但更多隐藏在 Deployment 控制器后面,由 deployment 自动管理
查看全部 -
Controllers
Controller 是 Kubernetes 核心对象之一
Controller 用于保证集群内一组 Pod 能始终按照某种期望的状态(desired state)正常运行
状态包括:Pod 副本数量、节点选择、资源约束、持久化数据维持等
Kubernetes 支持多种 Controller,常用的 Deployment、replicaset、statefulset、daemonset 等
查看全部 -
Service
Service:与云原生应用中“微服务”概念一一对应
Kubernetes 集群为每一个 Service 分配一个集群唯一的 IP 地址,在 service 的生命周期内,该 IP 地址不变;在内部 DNS 的支持下,轻松实现服务发现机制
Service 通过 label selector 关联到实际支撑业务运行的 Pod 上,并通过集群内置的服务负载均衡将服务请求分发到后端 Pod
通过 nodeport 或设置 loadbalancer 机制实现集群外部对 service 的访问
查看全部 -
Pod生命周期
Pod:一个非持久性实体
查看全部 -
Pod生命周期
Pod:一个非持久性实体
查看全部
举报