多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
## 一、概述 Kubernetes简称 k8s,是Google 2014年创建管理的,是Google大规模容器管理技术Borg的开源版本,它是容器集群管理系统,可以实现**容器集群**的自动化部署、自动扩缩容、维护等功能; ![](https://img.kancloud.cn/cc/06/cc064ac045ae12e8e27445f9d227e228_712x282.png) 典型的 Kubernetes 集群包含一个 master 和多个 node。Master 是控制集群的中心,node 是提供 CPU、内存和存储资源的节点。Master 上运行着很多进程,包括面向用户的 API 服务、负责维护集群状态的 Controller Manager、负责调度任务的 Scheduler 等。每个 node 上运行着维护 node 状态并和 master 通信的 kubelet,以及实现集群网络服务的 kube-proxy; ### **与docker的关系** ![](https://img.kancloud.cn/2d/a8/2da84abbcbd3b4a0b42cf9062a2914ed_824x437.png) Docker是一个开源的应用容器引擎,开发者可以打包他们的应用及依赖到一个可移植的容器中,发布到流行的Linux机器上,也可实现虚拟化;k8s是一个开源的容器集群管理系统,可以实现容器集群的自动化部署、自动扩缩容、维护等功能; Kubernetes部署大多使用Docker作为默认的容器引擎,除此之外还有CoreOS的rkt等; > Docker就像飞机,而Kubernetes就像飞机场; ## 二、核心概念 * Master(主节点):控制 Kubernetes 节点的机器,也是创建作业任务的地方; * Node(节点):这些机器在 Kubernetes 主节点的控制下执行被分配的任务; * Pod:由一个或多个容器构成的集合,作为一个整体被部署到一个单一节点。同一个 pod 中的容器共享 IP 地址、进程间通讯(IPC)、主机名以及其它资源。Pod 将底层容器的网络和存储抽象出来,使得集群内的容器迁移更为便捷; * Replication controller(复制控制器):控制一个 pod 在集群上运行的实例数量; * Service(服务):将服务内容与具体的 pod 分离。Kubernetes 服务代理负责自动将服务请求分发到正确的 pod 处,不管 pod 移动到集群中的什么位置,甚至可以被替换掉; * Kubelet:这个守护进程运行在各个工作节点上,负责获取容器列表,保证被声明的容器已经启动并且正常运行; * kubectl:这是 Kubernetes 的命令行配置工具; ## 三、快速了解 Kubernetes需要安装三样东西,Kubernetes 的命令行客户端 kubctl、一个可以在本地跑起来的 Kubernetes 环境 Minikube、以及给 Minikube 使用的虚拟化引擎 xhyve; ``` $ brew install kubectl $ brew cask install minikube $ brew install docker-machine-driver-xhyve ```