在介绍Kubernets on Mesos的高可用实践之前,先分别介绍一下Kubernets, Apache Mesos和Kubernets-Mesos。 目前三大主流调度框架:DockerSwarm、Google Kubernetes和Apache Mesos,Kubernetes是docker集群的管理工具,主要实现资源管理,部署运行,服务发现,扩容缩容等功能,帮助用户把所有的应用都部署在Docker Container中。其官方网站为:http://kubernetes.io Apache Mesos是一款开源集群管理软件,由加州大学伯克利分校的AMPLab首先开发;支持Hadoop、ElasticSearch、Spark、Storm 和Kafka等架构。 Mesos 未找到图形项目表。为上层的应用框架提供了资源共享,资源监控,动态扩容等集群管理功能。国外有一些有名的公司如:Twitter、Facebook、Apple等都在生产环境中有使用Mesos进行集群管理。Apache Mesos的官方网站为:http://mesos.apache.org/ Kubernets-Mesos将Kubernetes作为原生Mesos的Framework运行在DCOS之上。Kubernetes-Mesos 能够通过DCOS命令行软件包管理器轻松完成安装,且可以同任意数量的其它Mesos Framwork包括Marathon、Spark、Kafka以及Jenkins等等作为不同的Fraework,从而共享来自同一集群中的资源。 集成的原理如图: Mesos的Framwork可以包括Marathon、Spark、Kafka以及Jenkins等,它的使用场景也比较丰富,如下图是一种在电信行业的使用场景: 基本原理如下,实现两层调度。把大数据和容器应用放在不同的framework上。 不同的业务使用同一个cluster, 实现了资源的高度共享与灵活扩容。那其中的高可用性可以让业务不会因为Master节点的单点故障而中断。 下面介绍如果实现KM的高可性,参考文档:http://kubernetes.io/docs/getting-started-guides/mesos/#deploy-kubernetes-mesos 部署环境及架构 部署的架构如下: 6个节点的环境信息如下: 在6个节点上分别安装gcc,python,git,go工具 yum -y install python git go gcc 在6个节点上分别安装 docker a、Docker docker.repo配置;copy 下述命令到shell命令行这行: b、 Docker yum install: yum -y install docker-engine docker-engine-selinux c、 使用私有仓库: 修改docker.service,将ExecStart=/usr/bin/docker daemon -H fd:// 后加--insecure-registry registry:5000 即:ExecStart=/usr/bin/docker daemon -H fd:// --insecure-registry registry:5000 启动docker服务 查看docker是否激活 d、 谷歌镜像下载 K8S运行需要如下镜像: pause:2.0, pause-amd64:3.0, kube-cross:1.4.2, kube-cross:1.6.2, podmaster:1.1 pull 镜像: Mesos部署 a、mesos,zookeeper安装在三个节点 mesosm1,mesosm2,mesosm3上yum y install mesos mesosphere-zookeeper b、所有节点上配置hostname c、Zoopkeeper配置 1、在节点mesosm1上配置mesos-master的id为 1 cat /var/lib/zookeeper/myid 1 在节点mesosm2 上配置mesos-master的id 为 2 cat /var/lib/zookeeper/myid 2 在节点mesosm3 上配置mesos-master的id 为 3 cat /var/lib/zookeeper/myid 3 2、 在三个节点 mesosm1,mesosm2,mesosm3上配置 /etc/mesos/zk 如下: zk://mesosm1:2181,mesosm2:2181,mesosm3:2181/mesos 3、在三个节点 mesosm1,mesosm2,mesosm3上配置quorum cat /etc/mesos-master/quorum 2 4、 在三个节点 mesosm1,mesosm2,mesosm3上配置zoo.cfg 5、启动服务 d、mesos-slave节点配置 1、在节点mesoss1,mesoss2,mesoss3上启动mesos-slave服务 systemctl start mesos-slave.service 2、关联docker 在节点mesoss1,mesoss2,mesoss3上上运行 所有mesos-slave节点执行上述操作。 3、zk配置 用于mesos与zookeeper关联,在节点mesoss1,mesoss2,mesoss3上上运行 然后重启mesos-slave服务。 Kubernets容器镜像制作 a、 etcd安装在三个节点 mesosm1,mesosm2,mesosm3上yum -y install etcd b、配置etcd文件etcd.conf: 上述IP地址为k8sm master节点IP。 然后启动etcd服务 systemctl start etcd.service c、kubernetes版本下载与docker镜像制作 下载路径: https://github.com/kubernetes/kubernetes/releases/ 测试使用kubernetes-1.3.6.tar.gz以上版本。 Dockfile |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|