Kubernetes简要介绍

1、Kubernetes体系架构
Kubernetes是Google开源的容器集群管理系统,其提供应用部署、维护、 扩展机制等功能,利用Kubernetes能方便地管理跨机器运行容器化的应用,其主要功能以下:
1) 使用Docker对应用程序包装(package)、实例化(instantiate)、运行(run)。
2) 以集群的方式运行、管理跨机器的容器。
3) 解决Docker跨机器容器之间的通信问题。
4) Kubernetes的自我修复机制使得容器集群老是运行在用户指望的状态。
Kubernetes简要介绍前端

Kubernetes Master节点的组成
一、etcd
全部的持久性状态都保存在etcd中。Etcd同时支持watch,这样组件很容易获得系统状态的变化,从而快速响应和协调工做。node

二、Kubernetes API Server
这个组件提供对API的支持,响应REST操做,验证API模型和更新etcd中的相应对象。web

三、Scheduler
经过访问Kubernetes中/binding API, Scheduler负责Pods在各个节点上的分配。Scheduler是插件式的,Kubernetes未来能够支持用户自定义的scheduler。docker

四、Kubernetes Controller Manager Server
Controller Manager Server负责全部其它的功能,好比endpoints控制器负责Endpoints对象的建立,更新。node控制器负责节点的发现,管理和监控。未来可能会把这些控制器拆分而且提供插件式的实现。数据库

Kubernetes slave节点的组成
一、Kubelet
Kubelet组件管理Pods和它们的容器,镜像和卷等信息。后端

二、Kube-Proxy
Kube-proxy是一个简单的网络代理和负载均衡器。它具体实现Service模型,每一个Service都会在全部的Kube-proxy节点上体现。根据Service的selector所覆盖的Pods, Kube-proxy会对这些Pods作负载均衡来服务于Service的访问者。
Kubernetes简要介绍centos

2、Kubernetes组件
Kubernetes以RESTFul形式开放接口,用户可操做的REST对象有三个:
一、pod:是Kubernetes最基本的部署调度单元,能够包含container,逻辑上表示某种应用的一个实例。好比一个web站点应用由前端、后端及数据库构建而成,这三个组件将运行在各自的容器中,那么咱们能够建立包含三个container的pod。api

二、service:是pod的路由代理抽象,用于解决pod之间的服务发现问题。由于pod的运行状态可动态变化(好比切换机器了、缩容过程当中被终止了等),因此访问端不能以写死IP的方式去访问该pod提供的服务。service的引入旨在保证pod的动态变化对访问端透明,访问端只须要知道service的地址,由service来提供代理。网络

三、replicationController:是pod的复制抽象,用于解决pod的扩容缩容问题。一般,分布式应用为了性能或高可用性的考虑,须要复制多份资源,而且根据负载状况动态伸缩。经过replicationController,咱们能够指定一个应用须要几份复制,Kubernetes将为每份复制建立一个pod,而且保证明际运行pod数量老是与该复制数量相等(例如,当前某个pod宕机时,自动建立新的pod来替换)。架构

能够看到,service和replicationController只是创建在pod之上的抽象,最终是要做用于pod的,那么它们如何跟pod联系起来呢?这就要引入label的概念:label其实很好理解,就是为pod加上可用于搜索或关联的一组key/value标签,而service和replicationController正是经过label来与pod关联的。以下图所示,有三个pod都有label为"app=backend",建立service和replicationController时能够指定一样的label:"app=backend",再经过label selector机制,就将它们与这三个pod关联起来了。例如,当有其余frontend pod访问该service时,自动会转发到其中的一个backend pod。

3、软件包安装
centos7系统经过yum方式安装便可。当前kubernetes的最新版本为1.9,目前尚不建议在生产环境使用1.9版本,官网推荐使用kubeadm部署,为了更简单也更系统的学习kubernetes集群的组件,本系列文章采用rpm方式安装kubernetes 1.5.2 版本,后续会介绍如何本地离线安装1.9版本。

# yum -y install etcd kubernetes
Kubernetes简要介绍
一、通用配置文件
/etc/kubernetes/config

二、Apiserver服务配置文件
/etc/kubernetes/apiserver
启动脚本:/lib/systemd/system/kube-apiserver.service

三、kube-controller-manager 服务配置文件
/etc/kubernetes/controller-manager
启动脚本:/lib/systemd/system/kube-controller-manager.service

四、kube-scheduler服务配置文件
/etc/kubernetes/scheduler
启动脚本: /lib/systemd/system/kube-scheduler.service

五、kubernet服务配置文件
/etc/kubernetes/kubelet
启动脚本:/lib/systemd/system/kubelet.service

六、Kube-proxy服务
/etc/kubernetes/proxy
启动脚本:/lib/systemd/system/kube-proxy.service

5、服务启动
一、master节点

# systemctl start etcd
# systemctl start kube-apiserver*
# systemctl start kube-controller-manager*
# systemctl start kube-scheduler*

二、slave节点

# systemctl start docker*
# systemctl start kubelet*
# systemctl start kube-proxy*

6、注意事项在kubernetes系统中,对容器的要求是,须要一直在前台执行。

相关文章
相关标签/搜索