【K8S 系列】认识k8s、k8s架构

一、什么是k8s?

Kubernetes 简称 k8s,是支持云原生部署的一个平台,k8s 本质上就是用来简化微服务的开发和部署的,用于自动化部署、扩展和管理容器化应用的开源容器编排技术。对于传统的docker其实也提供了容器编排的技术docker-compose,但是docker-compose只能管理一台主机上的容器,而对于k8s来讲可以管理多主机上的容器。

二、应用部署方式的转变

2.1.传统部署(资源不隔离):

优点:简单,不需要其它技术的参与

缺点:不能为应用程序定义资源使用边界,很难合理地分配计算资源,而且程序之间容易产生影响,当某一进程用户访问量大就会造成服务器资源分配不均,争抢资源。

2.2.虚拟化部署(在一台物理机上运行多个虚拟机,虚拟化过重):

优点:程序环境不会相互产生影响,提供了一定程度的安全性

缺点:增加了操作系统,浪费了部分资源

2.3.容器化部署(与虚拟化类似,但是共享了操作系统):

优点:可以保证每个容器拥有自己的文件系统、CPU、内存、进程空间等,运行应用程序所需要的资源都被容器包装,并和底层基础架构解耦。

三、k8s的特点

(1)自我修复:一旦某一个容器崩溃,能够在1秒中左右迅速启动新的容器

(2)弹性伸缩:可以根据需要,自动对集群中正在运行的容器数量进行调整

(3)服务发现:服务可以通过自动发现的形式找到它所依赖的服务

(4)负载均衡:如果一个服务启动了多个容器,能够自动实现请求的负载均衡

(5)版本回退:如果发现新发布的程序版本有问题,可以立即回退到原来的版本

(6)存储编排:可以根据容器自身的需求自动创建存储卷

四、容器管理架构升级

4.1.Borg架构
4.2.kubernet 架构

五、K8S架构解读

5.1.master节点:集群的控制平面,负责集群的决策 ( 管理 )

(1) ApiServer : 资源操作的唯一入口,接收用户输入的命令,提供认证、授权、API注册和发现等机制。

(2)Scheduler : 负责集群资源调度,按照预定的调度策略将Pod调度到相应的node节点上。

(3)ControllerManager : 负责维护集群的状态,比如程序部署安排、故障检测、自动扩展、滚动更新等。

(4)Etcd :负责存储集群中各种资源对象的信息。

5.2.node节点:集群的数据平面,负责为容器提供运行环境 ( 干活 )

(1)Kubelet : 负责维护容器的生命周期,存储、网络。

(2)KubeProxy : 负责提供集群内部的服务发现和负载均衡。

(3)Docker : 负责节点上容器的各种操作,作为容器的运行时环境。

(4)Pod:一个节点上可以部署多个Pod,一个Pod可以部署多个容器。

相关推荐
aherhuo5 小时前
kubevirt网络
linux·云原生·容器·kubernetes
陌北v16 小时前
Docker Compose 配置指南
运维·docker·容器·docker-compose
catoop6 小时前
K8s 无头服务(Headless Service)
云原生·容器·kubernetes
阿里嘎多学长6 小时前
docker怎么部署高斯数据库
运维·数据库·docker·容器
小峰编程7 小时前
独一无二,万字详谈——Linux之文件管理
linux·运维·服务器·云原生·云计算·ai原生
小马爱打代码7 小时前
云原生服务网格Istio实战
云原生
liuxuzxx7 小时前
1.24.1-Istio安装
kubernetes·istio·service mesh
G_whang8 小时前
windos 安装docker
运维·docker·容器
道一云黑板报8 小时前
Flink集群批作业实践:七析BI批作业执行
大数据·分布式·数据分析·flink·kubernetes
运维小文8 小时前
K8S中的PV、PVC介绍和使用
docker·云原生·容器·kubernetes·存储