k8s是什么
1 以容器为中心的应用编排平台
2.面向平台的平台:
强大的扩展能力:构建其它的平台
3 、容器编排
容器生命周期管理
容器创建、运行、监控、终止
为容器运行提供支撑:
存储卷:卷编排
网络:网络编排
容器关系管理
超亲密关系:运行一个整体,Kubernetes抽象出来的新概念Pod
非超亲密关系:各自独立运行
通过Service互相发现和访问
Service需要DNS的支撑
为Service提供一个独立DNS域名格式的名称
制品:交付的结果,
集群架构
scheduler
apiserver
controller-manager
kubelet
kube-proxy
container runtime
节点宕机
kubelet 报告节点和pod的状态
node宕机,kubelet就无法上报
concrolter负责决策,除调度
Master的组件:
API Server:以API形式对外提供服务,服务器程序,监听在某个套接字上;(与其他组件交互)
Scheduler:调度器,负责为那些未能绑定到某节点的Pod,挑选一个最适配的Worker来运行它;只会从API接收指令;
Controller-Manager:Controller的集合,由一组Kubernetes内置的Controller集结而成;
除调度之外的编排决策,几乎都由Controller负责形式
需要进行的决策有很多咱类型:相应的,控制器也存在很多类型
PV/PVC: Volume控制器
Deployment:编排无状态应用
StatefulSet:编排有状态应用
etcd:存储集群状态
Kubernetes所支持的数据模式,由API Server进行定义和抽象
使用json格式
被称为资源类型 --> 实例化之后的结果,称为资源对象,存储在etcd中
Worker组件:
Kubelet:集群代理程序,负责控制平面事关Pod运行的各种决策
kube-proxy:与网络功能中的Service相关
Add-Ons:
有些附件是必选:
ClusterDNS: CoreDNS
Kube-Proxy:
Network Plugin: flannel/calico
容器虚拟网络
label:标签
kv类型的数据项
资源对象可以拥有一到多个标签
label selector:
声明式API
声明式API: 面向对象
命令式API: 面向过程
校区-》天安门
自己开,要一步一步开
自己有车和司机,告诉司机就行, 声明式api
工作负载型控制器:
核心功能:按照用户期望的副本数量,创建并运行Pod
deployment --> nginx
replicas: 3
template:Pod模板
label selector --> label
Kubernetes的二次发行版:
Rancher Kubernetes
Red Hat OpenShift
kubelet只与apiserver打交道(交互)
ubernetes与Docker的兼容关系:
kubelet --> CRI --> Container Runtime
CRI --> dockershim --> Docker Daemon
Docker:4个组件
Docker Daemon
containerd --> CNCF
containerd-shim
runc
Containerd --> Systemd控制运行
专用的客户端程序
podman
cri-o
Docker EE:Maratis收购
Maratis维护了一个cri-docker项目
kubelet:
1、cri-docker --> Docker CE
2、containerd
3、cri-o