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引入了控制器的概念,控制器能够根据声明式资源的实际状态和期望状态的差别进行工作,从而使得集群能够趋于理想状态

相关推荐
Benszen6 小时前
Docker容器化技术全解析
运维·docker·容器
馨谙9 小时前
OpenEBS + PV/PVC 解析:命令、文件、作用、后续用法
云原生·容器·kubernetes
再ZzZ10 小时前
Docker快速部署Kafka(内网通用版本)
docker·容器·kafka
亚马逊云开发者10 小时前
告别手动部署:在 Amazon EKS 上用 CodePipeline + Argo CD 搭建 GitOps CI/CD
elasticsearch·ci/cd·kubernetes
@atweiwei10 小时前
深入解析gRPC服务发现机制
微服务·云原生·rpc·go·服务发现·consul
AI精钢12 小时前
什么是面向 Agent 的 LLM?从 Qwen3.6-Plus 看大模型的新分水岭
网络·数据库·人工智能·云原生·aigc
AI精钢13 小时前
从 Prompt Engineering 到 Fine-Tuning:LLM 应用落地的理性决策框架
大数据·人工智能·云原生·prompt·aigc
正经教主14 小时前
安全养虾:[windows]Docker部署OpenClaw详细过程记录
安全·docker·容器
程序员 沐阳14 小时前
Docker 命令完全指南:从入门到实战
docker·容器·eureka
繁星星繁15 小时前
Docker(一)
java·c语言·数据结构·c++·docker·容器·eureka