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

相关推荐
川石课堂软件测试25 分钟前
性能测试|docker容器下搭建JMeter+Grafana+Influxdb监控可视化平台
运维·javascript·深度学习·jmeter·docker·容器·grafana
昌sit!7 小时前
K8S node节点没有相应的pod镜像运行故障处理办法
云原生·容器·kubernetes
A ?Charis9 小时前
Gitlab-runner running on Kubernetes - hostAliases
容器·kubernetes·gitlab
wclass-zhengge10 小时前
Docker篇(Docker Compose)
运维·docker·容器
茶馆大橘10 小时前
微服务系列五:避免雪崩问题的限流、隔离、熔断措施
java·jmeter·spring cloud·微服务·云原生·架构·sentinel
北漂IT民工_程序员_ZG10 小时前
k8s集群安装(minikube)
云原生·容器·kubernetes
coding侠客10 小时前
揭秘!微服务架构下,Apollo 配置中心凭啥扮演关键角色?
微服务·云原生·架构
梦魇梦狸º13 小时前
腾讯轻量云服务器docker拉取不到镜像的问题:拉取超时
docker·容器·github
南猿北者16 小时前
docker镜像仓库常用命令
运维·docker·容器
2301_8061313617 小时前
Kubernetes的基本构建块和最小可调度单元pod-0
云原生·容器·kubernetes