首页 存档 技术 查看内容

Kubernets on Mesos的高可用实践

2018-3-30 13:00 |来自: 互联网 374 0

摘要: 在介绍Kubernets on Mesos的高可用实践之前,先分别介绍一下Kubernets, Apache Mesos和Kubernets-Mesos。 目前三大主流调度框架:DockerSwarm、Google Kubernetes和Apache Mesos,Kubernetes是docker集群的管理工具 ...

在介绍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

声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部