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的服务发现和负载均衡

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐