k8s基础知识-备忘总结
k8s组件介绍
从开发者角度来理解kubernetes,了解数据模型,常用组件,为二次开发做好基础准备。
1 部署架构
1.1 部署单元组件
master节点
kubeapi-server
server-api接口服务
etcd
分布式k-v存储
kube-scheduler
待办pod任务创建、跟踪
kube-controller-manager
node controller 监控node状态
rc 运行时deployment等监控
endpoint(service,pod)等服务监控
RBAC等资源管理
node节点
kubelet
kube-proxy
负责节点deployment创建,调度
container-runtime
典型如docker镜像
2 基础概念模型
namespace
逻辑上的资源分组概念,可以基于namespace设置ResourceQuota: CPU,内存总额大小,pod,deployments数量限制
cluster
master
k8s集群调度的大脑核心,可以基于集群方式保证高可用。
Node
官方文档(https://kubernetes.io/docs/concepts/architecture/nodes/#node-status)
k8s管理的物理机或虚拟机,node的创建管理,不受k8s控制,k8s只是通过health check方式确认节点是否可用
节点通过label,annotations方式和k8s集群建立关联关系。
Pod
k8s管理的最小调度单元,一般情况下一个node会创建一个pod.
一个pod里面可以启动多个紧密关联的deployment
pod网络相关参考这个链接
service
controllers
Deployment
Deployment 是最常用的 Controller,最常用的就是通过创建 Deployment 来部署stateless应用。
Deployment 可以管理 Pod 的多个副本,并确保 Pod 按照期望的状态运行。
ReplicaSet
实现了 Pod 的多副本管理。使用 Deployment 时会自动创建 ReplicaSet,也就是说 Deployment 是通过 ReplicaSet 来管理 Pod 的多个副本,我们通常不需要直接使用 ReplicaSet。
DaemonSet
用于每个 Node 最多只运行一个 Pod 副本的场景。正如其名称所揭示的,DaemonSet 通常用于运行 daemon。
StatefulSet
能够保证 Pod 的每个副本在整个生命周期中名称是不变的。而其他 Controller 不提供这个功能,当某个 Pod 发生故障需要删除并重新启动时,Pod 的名称会发生变化。
同时 StatefulSet 会保证副本按照固定的顺序启动、更新或者删除。
ConfigMap
DaemonSet
上一篇: Java基础--自我总结(1)
下一篇: Js基础总结二