kubernete架构体系介绍

简介: kubernete架构体系介绍

我们用docker制作了一个容器镜像,使用docker命令就可以跑起来。但是当容器成千上万时,用docker命令来管理肯定是不够的。而且生产上的自动发布、容器监控、接口鉴权等工作,传统的工具已经不能支持。这时kubernete的作用就突显出来。

kubernete架构体系如下图:

微信图片_20221212101546.png从上面这张图可以看出,kubernete分为master节点和node节点。master节点是空值节点,而node节点是计算节点。

master节点有3个重要的组件组成,controller manager、api server、scheduler组成。其中controller manager负责容器编排,api server提供api服务,scheduler负责任务调度。整个集群的状态保存在etcd中。

在node节点中,最重要的组件是kubelete,负责跟容器运行时进行交互,这个交互通过CRI(Container Runtime Interface)远程调用接口,这个接口定义了容器启动时的各种参数。而真正容器在运行时,是通过OCI(容器运行时规范)跟底层操作系统交互。如下图。可以看出,只要容器能够通过CRI接入kubernete,不管是不是docker容器,都是可以被kubernete集群管理的。

微信图片_20221212101613.png

kubelete还可以用来管理宿主机、网络设备、存储设备,具体如下图:

使用gRPC跟devidevice plugin交互,device plugin是kubernete管理宿主机物理设备的主要组件,使用CNI(Container Networking Interface)跟网络插件进行交互,使用CSI(Container Storage Interface)跟存储插件进行交互。

在kubernete中,最小的调度单位是pod,关联密切的容器可以被调度在一个pod中,共享network namespace、数据卷,从而可以高效进行通信。kubernete为每一个pod绑定一个service服务,service服务作为pod的代理访问入口,配置的IP等地址信息是固定不变的,这样即使pod重启后IP地址发生了变化,调用方也可以通过service服务直接访问pod。

在有些情况下,访问pod需要授权,比如访问数据库pod,这时kubernete提供了secret对象,这个对象是保存在etcd里面的键值对,存储了被访问pod的授权信息。当应用pod需要访问数据库时,只需要在pod启动时把secret对象挂载在pod里,就可以访问授权pod了。

总之,kubernete通过编排对象来管理应用,比如通过pod来管理应用容器,通过job来管理一次性运行任务,通过daemonset来管理宿主机上唯一的守护进程,通过cronjob来管理定时任务。除此之外,kubernete还定义了一些服务对象,比如service、secret等。

顺便提一下,kubeadm是部署kubernete的重要工具,使用kubeadm,只需要kubeadmin init;kuberadm join两个命令就可以部署和qido启动kubernete集群了。上面讲到kubelet是跟容器运行时交互的重要组件,所以kubeadm的部署方式选择把kubelet部署在宿主机上,而kubernete的其他组件部署在容器里,这样更方便kubelet跟宿主机打交道。

微信图片_20221212101645.png

master组件的yaml文件放在/etc/kubernetes/manifests目录下,kubernete启动时,kubelet会检查到这些yaml文件,为master节点创建对应的pod。

相关文章
|
存储 Oracle 关系型数据库
PostgreSQL体系架构介绍
PostgreSQL体系架构介绍
908 0
PostgreSQL体系架构介绍
|
存储 安全 大数据
谈谈如何构建现代数据体系架构(数据湖+数据仓库)
如何构建当前企业数据体系架构呢?其实与许多其他技术一样,它实际上取决于企业要实现目标。
谈谈如何构建现代数据体系架构(数据湖+数据仓库)
|
分布式数据库 Hbase
《阿里云HBase产品体系架构及特性解析》电子版地址
阿里云HBase产品体系架构及特性解析
91 0
《阿里云HBase产品体系架构及特性解析》电子版地址
|
存储 SQL 缓存
MySQL体系架构
MySQL体系架构
139 0
|
运维 搜索推荐 Oracle
分布式数据库系统的分类及体系架构 | 学习笔记
快速学习 分布式数据库系统的分类及体系架构
377 0
分布式数据库系统的分类及体系架构 | 学习笔记
|
SQL 存储 缓存
一图搞定MySQL体系架构
要了解mysql的运行机制,那么首先要对mysql的体系结构有一定的了解。
809 0
一图搞定MySQL体系架构
|
运维
《云架构下的运维体系构建 -于龙水》电子版地址
云架构下的运维体系构建 -于龙水
91 0
《云架构下的运维体系构建 -于龙水》电子版地址
|
架构师 Linux Anolis
本周预告:资深架构师解读多架构体系下的内核与系统开发等技术演讲 | 第47-48期
今天下午4点,讲师带我们了解多架构体系下的内核完善与系统底层适配实践。
本周预告:资深架构师解读多架构体系下的内核与系统开发等技术演讲 | 第47-48期
|
存储 Kubernetes Cloud Native
云原生时代下,微服务体系与 Serverless 架构的发展、治理与融合
7 月 22、23 日为期两天的 2022 稀土开发者大会召开在即,此次阿里云 Serverless 研发负责人杨皓然(不瞋)作为大会出品人,带来《微服务与 Serverless》专场演讲,邀请到字节、阿里等各大厂的核心业务负责人,为各位开发者分享微服务与 Serverless 方向的探索实践和经验心得,带你探究 Serverless 前沿动态。
云原生时代下,微服务体系与 Serverless 架构的发展、治理与融合