Kubernetes,简称K8s,是用8代替8个字符“ubernete”而成的缩写,是一个开源的云原生的容器集群管理工具,容器编排工具,也是一个自动化的容器操作平台。其作为云原生应用的基础调度平台,相当于云原生的操作系统
Kubernetes的目标是简单高效的部署容器化的应用,简化应用管理的复杂度,提供了应用部署,规划,更新,维护的一种机制。
Kubernetes作为一个容器管理与调度编排领域的首选平台和事实标准,最终使命是成为新一代应用上云的首选平台,为广大开发者开启云原生应用的大门。
传统的应用部署方式是通过插件或脚本来安装应用。这样做的缺点是应用的所有生存周期(运行、配置、管理)将与当前操作系统绑定,这样做并不利于应用的升级更新/回滚等操作。
新的方式是通过部署容器方式实现,每个容器之间互相隔离,每个容器都有自己的文件系统 ,容器之间的进程不会相互影响。相对于虚拟机,容器能快速部署,由于容器与底层设施、机器文件系统是解耦的,所以它能在不同云、不同版本操作系统间进行迁移。
容器占用资源少、部署快,每个应用可以被打包成一个容器镜像,每个应用与容器间形成一对一的关系,使用容器可以在 build 或 release 的阶段,为应用创建容器镜像,因为每个应用不需要与其余的应用堆栈组合,也不依赖于生产环境基础结构,这使得从研发到测试、生产能提供一致环境。
Namespace
用于将物理集群划分为多个虚拟集群,本身也是一个object。Namespace间完全隔离,因此也常被用来隔离不同的用户及权限。内置有三个Namespace,分别是:default,kube-system(平台组件),kube-public。
Annotations(注解)
可以将任意非标识性元数据附加到对象上。将数据作为Annotations附着在对象上,有利于创建一些用于部署、管理和做内部检查的共享工具和客户端。
Label(标签)
label可以附着在任意对象上,每个对象也