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

相关推荐

  1. K8S 容器声明资源

    2023-12-07 01:54:02       60 阅读
  2. K8S三种发布方式声明资源管理

    2023-12-07 01:54:02       54 阅读
  3. 什么是k8s声明编程?

    2023-12-07 01:54:02       56 阅读
  4. K8s声明APIs

    2023-12-07 01:54:02       62 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-07 01:54:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-07 01:54:02       101 阅读
  3. 在Django里面运行非项目文件

    2023-12-07 01:54:02       82 阅读
  4. Python语言-面向对象

    2023-12-07 01:54:02       91 阅读

热门阅读

  1. 面试遇到的一些问题(二)

    2023-12-07 01:54:02       63 阅读
  2. 使用Plotly同时可视化表格和图表(Python)

    2023-12-07 01:54:02       55 阅读
  3. 1. 小游戏(贪心)

    2023-12-07 01:54:02       64 阅读
  4. C++ 共享内存ShellCode跨进程传输

    2023-12-07 01:54:02       46 阅读
  5. [node]Node.js多线程

    2023-12-07 01:54:02       59 阅读
  6. git的使用:基础配置和命令行

    2023-12-07 01:54:02       61 阅读
  7. 【数据仓库】-- 数据库设计的三个范式

    2023-12-07 01:54:02       64 阅读
  8. 【Linux】统计文件数量:ls -l | grep ^- | wc -l

    2023-12-07 01:54:02       49 阅读
  9. 壹财基金杨振骏:资本如何做好Web3布局?

    2023-12-07 01:54:02       54 阅读
  10. 控制系统设计中的scaled

    2023-12-07 01:54:02       57 阅读
  11. 泛型 (标签)

    2023-12-07 01:54:02       55 阅读
  12. ES6—字符串变化

    2023-12-07 01:54:02       62 阅读