Service 可以直接为后方的Deployment配置负载均衡,取代传统Nginx的作用,还可以提供地址代理。
Pod 的生命周期
Pod Life Cycle
ConfigMap
Service
与pod建立连接
Service
Service :与云原生应用中“微服务”概念——对应
Kubernetes集群为每一个Service分配一个集群唯一的IP地址,在service的生命周期内,该IP地址不变﹔在内部DNS的支持下,轻松实现服务发现机制
Service通过label selector关联到实际支撑业务运行的Pod上,并通过集群内置的服务负载均衡将服务请求分发到后端Pod
通过nodeport或设置loadbalancer机制实现集群外部对service的访问
Controllers
Controller是Kubernetes核心对象之一
Controller用于保证集群内一组Pod能始终按照某种期望的状态(desired state)正常运行
状态包括:Pod副本数量、节点选择、资源约束、持久化数据维持等
Kubernetes支持多种Controller,常用的Deployment
、replicaset、statefulset、daemonset等
ReplicaSet
ReplicaSet:确保健康Pod的副本数始终满足用户定义的数量
前身是ReplicationController(rc)
相比rc,增加集合式label selector的支持
支持单独使用,但更多隐藏在Deployment控制器后面,由deployment自动管理
Deployment
Deployment :为Pod和ReplicaSet提供了声明式的定义(declarative)
用户在deployment文件中描述期望状态,Deployment controller就会自动将Pod和Replica Set的实际状态改变到期望状态
Deployment支持Pod的RollingUpdate,并自动管理背后的ReplicaSet
Deployment支持将pod Rollback到之前的任意revision(仅限于pod-template模板改动)
StatefulSet
StatefulSet:提供对有状态的应用的部署和控制的支持,1.9版本GA
适用场景︰稳定的持久化存储、稳定的网络标志、有序部署有序扩展、有序收缩有序删除、有序自动滚动升级等
Pod的存储必须由PersistentVolume Provisioner 根据请求的Storage Class进行配置,或由管理员预先配置好。
考虑数据安全性,伸缩或删除StatefulSet不会删除关联的存储﹔另外StatefulSet目前要求Headless Service负责Pod的网络身份,用户有责任创建此服务
DaemonSet
DaemonSet:保证在每个Node上都运行一个Pod副本
适用场景∶系统Daemon程序、监控跟踪、日志收集等
Kubernetes 1.6之后,可设置更新策略:支持滚动更新
可指定Node: nodeSelector、nodeAffinity.podAffinity
ConfigMap
ConfigMap:常用来向Pod提供非敏感的配置信息
ConfigMap 用于保存配置数据的键值对,可以用来保存单个属性,也可以用来保存配置文件
ConfigMap可以使用命令行基于字面值、文件或目录来创建或通过configmap对象定义文件创建
ConfigMap可以通过三种方式在Pod中使用:环境变量、容器命令行参数或以文件形式通过数据卷插件挂载到Pod中
Secret
Secret解决的是集群内密码、token、密钥等敏感数据的配置问题
常用于与ServiceAccount关联,存储在tmpfs 文件系统中,Pod删除后Secret文件也会对应的删除
支持Opaque , kubernetes.io/Service Account , kubernetes.io/dockerconfigjson三种类型
Secret可以以Volume或者环境变量的方式使用
Service
Pod生命周期
pod生命周期
service
controllers
ReplicaSet
Deployment
StatefulSet
DaemonSet
ConfigMap
Secret
由于Pod有生命周期,他的地址会改变。
这里通过service关联pod,所以不关心Pod的地址是否发生变化。
小结
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生命周期
controller
service介绍
pod生命周期
Config-Secret简单介绍
Config-ConfigMap简单介绍
Controller-DaemonSet简单介绍
Controller-StatefulSet简单介绍
Controller-Deployment简单介绍
Controller-ReplicaSet简单介绍