Kubernetes核心概念
Kubernetes架构
Pod调度过程
Kubernetes核心概念
Pod
Volume
Deployment
Service
NameSpace
KubernetesAPI
Label 可被查询
Pod和容器设计模式
为什么需要Pod
容器的基本概念
Kubernetes = 操作系统
容器 = 进程
pod = 进程组
进程组(Pod)
- PID=1的进程挂了,其它进程无法被回收。
- 无法知道容器的生命周期。
Kubernetes 使得在Pod里有4个容器。共享里面的资源。(Pod只是资源分配单位)
为什么Pod一定要是原子调度单位
Pod超亲密关系
Pod的实现机制
Pod中多个容器之间最高效的共享某些资源和数据?
容器之间本来被Linux Namespace 与 Cgroups隔离。
1. 共享网络
2. 共享存储 挂在一个volumes
容器设计模式-解耦和重用
Sidecar 设计模式
- 通过在Pod里定义专门的容器,来执行业务容器需要执行的辅助功能。(需要SSH执行的脚本,日志收集、debug应用,应用监控)
- 优势:将辅助功能与业务解耦,实现独立发布和能力重用。
InitContainer 编排方式
应用与日志收集
代理容器
适配器容器
应用编排和管理:原理
资源元信息
K&S 资源对象
- Spec 期望的状态
- Status 观测到的状态
- Metadata 【1. labels 标签 2. Annotations 描述资源 3.OwnerReference 多个资源的相互关系】
labels 标签
Annotations 描述资源
OwnerReference 多个资源的相互关系
控制器模式
Pod 从2改为3
总结
声明式API允许了: 自定义控制器
应用编排和管理Deployment
可以直接管理pod吗?
Deployment能做什么
Deployment语法
查看Deployment状态
所有Pod的owner实际上是ReplicaSet创建出来的
更新pod镜像
架构设计
每次修改template都会有一个版本出现,这个版本就是ReplicaSet。