k8s的基础理论
k8s基础
K8S由google的Borg系统(博格系统,google内部使用的大规模容器编排工具)作为原型,后经GO语言延用Borg的思路重写并捐献给CNCF基金会开源。
云原生基金会(CNCF)于2015年12月成立,隶属于Linux基金会。CNCF孵化的第一个项目就是Kubernetes,随着容器的广泛使用,Kubernetes已经成为容器编排工具的事实标准。
官网:
https://kubernetes.io
k8s的主要功能
● 跨主机编排容器。
● 更充分地利用硬件资源来最大化地满足企业应用的需求。
● 控制与自动化应用的部署与升级。
● 为有状态的应用程序挂载和添加存储器。
● 线上扩展或缩减容器化应用程序与它们的资源。
● 声明式的容器管理,保证所部署的应用按照我们部署的方式运作。
● 通过自动布局、自动重启、自动复制、自动伸缩实现应用的状态检查与自我修复。
● 为多个容器提供服务发现和负载均衡,使得用户无需考虑容器IP问题
k8s的架构和组件
k8s分为master和work node节点
master节点有apiserver controller-manager scheduler etcd
node节点有 kubelet kube-proxy 容器引擎
K8S创建Pod的工作流程
(1)用户通过客户端发送创建pod的请求到master节点上的apiserver
(2)apiserver会先把相关的请求信息写入到etcd中,再找controller-manager
根据预设的资源模板创建pod清单
(3)然后controller-manager会通过apiserver去找scheduler
为新创建的pod选择最适合的Node节点
(4)scheduler会通过调度算法的预选策略和优选策略筛选出最适合的Node节点
(5)然后再通过apiserver找到对应的Node节点上的kubelet去创建和管理pod
(6)kubelet会直接跟容器引擎交互来管理容器的生命周期
(7)用户通过创建承载在kube-proxy上的service资源,写入相关的网络规则,
实现对pod的服务发现和负载均衡
更多推荐
所有评论(0)