![1.png](http://static.itsharecircle.com/240228/f43c6042a70f06bc5593b9d5a6622071.png)
Kubernetes,简称K8s,是一个开源系统,用于自动化部署、扩展和管理容器化应用程序。它提供了基本机制来部署、维护和扩展应用程序,支持跨多个主机的容器应用。K8s是Go语言开发的,建立在Docker之上,可以看作是Docker的上层架构。它的主要功能包括应用部署、维护、扩展,集群管理、安全防护、准入机制、多应用支撑、服务注册与发现、智能负载均衡、故障发现与自我修复、服务滚动升级、在线扩容、资源配额管理等。K8s通过容器的方式来管理应用程序,使得容器集群能够运行在用户期望的状态,并解决容器跨机器通信的问题。
DevOps(Development和Operations的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。
容器技术是k8s中最关键的技术,通过容器技术可以将一台实体服务器资源虚拟化为多个隔离的容器,容器之间有较高的隔离级别,可像一台独立的服务器般部署程序并对外提供服务。简单来说,可以把容器简单视为一个特殊的进程,该进程与其他进程相隔离,在自己的命名空间下使用网络接口和文件,并且该进程只能使用硬件的部分资源。容器技术的基础是linux命令空间和cgroups,其中:
(1)容器的隔离是基于linux命令空间来实现的,命名空间提供了一种内核级别隔离系统资源的方法,通过将系统的全局资源放在不同的命名空间中,来实现资源隔离的目的。不同命名空间的进程,可以享有一份独立的系统资源。
(2)硬件资源的限制是通过cgroups实现的,cgroups是一个linux内核功能,它被用来限制一个进程或者一组进程的资源(cpu、内存、带宽等)使用,被限制的进程不能过分使用为其他进程保留的资源。
容器技术与微服务概念相得映彰,微服务概念强调将一个大的系统拆分为若干微服务,每个微服务实现系统的特定功能,通过这个方式来减少系统的耦合。一般而言,一个微服务所需的系统资源并不需要很多,使用一个容器来部署一个微服务便成了一件很合适的事情,毕竟容器创建简单、资源可控,隔离性好、扩容方便。
Kubernetes中的CRD(Custom Resource Definition,自定义资源定义)允许用户扩展API服务器以支持新的自定义资源。使用CRD,用户可以定义自己的Kubernetes API资源类型,并在Kubernetes集群中创建、管理和操作这些自定义资源。
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。
0 回复
- 请尽量让自己的回复能够对别人有帮助
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码`
- 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
- 图片支持拖拽、截图粘贴等方式上传