K8S 容器和声明式资源

简介

kubernetes简称k8s,是一种云平台应用部署,管理的解决方案。本文将简单说明从一个初学者来看,k8s。

容器技术

容器 Container

容器(Container)技术是K8s的底层支撑,K8s基于容器技术构建云应用。容器是一种虚拟化技术,核心思想是实现在os层之上的部分逻辑设备的虚拟化,这是容器和虚拟机的本质区别,因此容器相对于虚拟机会轻量很多,也只能和逻辑主机(物理机或者是虚拟机)的os使用相同的os。因此容器提供的虚拟化在于os之上的某些资源的虚拟化,例如虚拟化的cpu,gpu,卷等等,这些虚拟化的资源都叫做逻辑资源,因为对于应用来说,他不知道自己运行在容器之中,而只是普通的调用自己需要的资源,而外面包着的容器层会将对这些逻辑资源的调用转换成对os层资源的调用。

镜像 Image

容器中可以运行镜像(Image),目前镜像主要用途是打包应用和应用运行时的环境,例如运行时库,环境变量等等。

容器运行时 Container Runtime

容器运行时是一种容器实现的技术方案,例如docker就是最著名的container runtime。容器运行时基于容器的技术思想做出具体的实现,从而提供了一些增强的包装和功能,从而使得容器运行时具有差异化的竞争能力,例如容器命令行,ssh,虚拟化设备种类,个性化配置等等的差别。容器实例则是容器运行时基于若干配置产生的某个容器实例,包含了容器运行需要的所有资源,例如挂载的镜像, 卷(Volumn)等等。

K8S

负载均衡

K8s提供了集群级别的应用部署和管理方案,底层就是容器技术。因此很好理解,在单个应用的部署阶段,K8s只要将应用的镜像实例化到容器中就可以完成应用的部署。但是当场景来到集群中时,K8s要管理的是多个资源有限(主要是cpu和内存)的主机,因此如何将应用调用到合适的主机上,从而更好的利用集群的资源就成了一个学问,这也叫做负载均衡。

声明式资源

对于用户来说,对集群的底层管理是繁琐的,因此K8s提供了一类声明式的api,用户只需要声明自己需要部署什么样的应用,K8s就会自动的提供负载均衡的能力。为了给声明式api提供能力支持,K8s提供了许多声明式的资源 ,最典型的就是Node,Pod,Deployment,这些声明式资源是一类由K8s管理和解析的文本,用户通过对这类资源进行编辑,K8s会认识到这类资源发生的变化,从而认识到用户声明的集群理想状态发生了改变,从而自动的将集群的状态调整到理想状态。

Controller

K8s整体的设计哲学是包容开放的,能够拓展自定义逻辑,声明式能力。因此K8s引入了控制器的概念,控制器能够根据声明式资源的实际状态和期望状态的差别进行工作,从而使得集群能够趋于理想状态。

相关推荐
说实话起个名字真难啊15 分钟前
实战docker部署dify及注意点
运维·docker·容器
闲云自留地1 小时前
K8s Service 全解:服务发现、四种类型、会话保持、金丝雀发布一篇通
容器·kubernetes·服务发现
分布式存储与RustFS1 小时前
GPU 在空转等数据?PyTorch 训练集进 RustFS 的三种接法
云原生·开源·对象存储·分布式存储·s3·rustfs·性能基准
choumin2 小时前
C++ 标准容器为什么不能存引用
c++·容器·引用类型
时间售卖铺4 小时前
MySQL 备份
运维·数据库·mysql·云原生
对象存储与RustFS4 小时前
GPU 在空转等数据?PyTorch 训练集进 RustFS 的三种接法
后端·docker·云原生
fb_123457 小时前
K8s 网络通关手册:Ingress-Nginx 生产级路由 + Calico 三种隧道模式 + NetworkPolicy 白名单实战
网络·nginx·kubernetes
KIDULT°7 小时前
K8s 网络进阶实战:Ingress-Nginx、Calico 与 NetworkPolicy 实验 + 排坑记录
网络·nginx·云原生·kubernetes
fengkai45458 小时前
7、Kubernetes的Ingress&Network&Scheduler
运维·kubernetes·k8s·ingress·network·scheduler
孔令飞1 天前
知己知彼,百战不殆:AI SKILL 实现原理剖析
云原生·go·ai编程