热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用开源Breeze工具部署Kubernetes1.12.1高可用集群

Breeze项目是深圳睿云智合所开源的Kubernetes图形化部署工具,大大简化了Kubernet

Breeze项目是深圳睿云智合所开源的Kubernetes图形化部署工具,大大简化了Kubernetes部署的步骤,其最大亮点在于支持全离线环境的部署,且不需要翻墙获取Google的相应资源包,尤其适合某些不便访问互联网的服务器场景。

(项目地址

https://github.com/wise2c-devops/breeze )

使用开源Breeze工具部署Kubernetes 1.12.1高可用集群

作者:Alan

Breeze开源 工具 由以下子项目构成

1. playbook(breeze) 该项目由不同的ansible

playbook构成,分别是 docker 、etcd、registry、kubernetes

2. yum-repo 该项目用于为安装过程中提供离线的yum

repo源,包含了docker、kubelet、kubectl、kubeadm、kubernetes-cni、docker-compose等rpm包库,除此之外我们还包括了可能会用到的ceph及nfs相关rpm

3. deploy-ui 用户前端UI,采用vue.js框架实现

4. pagoda 实现了对ansible脚本调用的API集

5. kubeadm-version 输出kubernetes组件镜像版本信息

6. haproxy 用于安装负载均衡的镜像及启动脚本

7. keepalived 为负载均衡实现统一入口虚IP的组件镜像及启动脚本

Breeze软件架构简图:

使用开源Breeze工具部署Kubernetes 1.12.1高可用集群

用户通过Breeze工具,只需要一台安装有Docker及docker-compose命令的服务器,连接互联网下载一个对应Kubernetes版本的docker-compose.yaml文件即可将部署程序运行出来,对部署机而已,只需能有普通访问互联网的能力即可,无需翻墙,因为我们已经将所有Kubernetes所需要的docker镜像以及rpm包内置于docker image里了。

如果需要离线安装,也是极其容易的,只需要将docker-compose.yaml文件里涉及的docker镜像保存下来,到了无网环境预先使用docker load命令载入,再运行docker-compose up -d命令即可无网运行部署程序。所有被部署的集群角色服务器,完全无需连入互联网。

该项目开源,用户可以很方便的fork到自己的git账号结合travis自动构建出任意Kubernetes版本的安装工具。

在我们的实验环境中准备了六台服务器,配置与角色如下(如果需要增加Minion/Worker节点请自行准备即可):

使用开源Breeze工具部署Kubernetes 1.12.1高可用集群

步骤

一、准备部署主机(deploy / 192.168.9.10)

(1)以标准Minimal方式安装CentOS 7.5 (1804) x64之后,登录 shell 环境,执行以下命令开放防火墙:

setenforce 0



 sed–follow-symlinks -i

“s/SELINUX=enforcing/SELINUX=disabled/g”

 /etc/selinux/config



     firewall-cmd –set-default-zOne=trusted



     firewall-cmd –complete-reload

(2)安装docker-compose命令

Curl -L

https://github.com/docker/compose/releases/download/1.21.2/docker-compose-$(uname-s)-$(uname-m)-o/usr/local/bin/docker-compose chmod  x /usr/local/bin/docker-compose

(3)安装docker

yum install docker

(4)建立部署主机到其它所有服务器的ssh免密登录途径

a) 生成秘钥,执行:

ssh-keygen

b) 针对目标服务器做ssh免密登录,依次执行:

ssh-copy-id 192.168.9.11ssh-copy-id 192.168.9.12ssh-copy-id 192.168.9.13ssh-copy-id 192.168.9.14ssh-copy-id 192.168.9.20

二、获取针对K8S某个具体版本的Breeze资源文件并启动部署工具,例如此次实验针对刚刚发布的K8S v1.12.1

curl-L 

https://raw.githubusercontent.com/wise2ck8s/breeze/v1.12.1/

docker-compose.yml  -o docker-compose.ymldocker-compose up -d

三、访问部署工具的浏览器页面(部署机IP及端口88),开始部署工作

http://192.168.9.10:88

使用开源Breeze工具部署Kubernetes 1.12.1高可用集群

(1)点击开始按钮后,点击 图标开始添加一个集群:

使用开源Breeze工具部署Kubernetes 1.12.1高可用集群

使用开源Breeze工具部署Kubernetes 1.12.1高可用集群

(2)点击该集群图标进入添加主机界面:

点击右上角“添加主机按钮”:

使用开源Breeze工具部署Kubernetes 1.12.1高可用集群

反复依次添加完整个集群的5台服务器:

使用开源Breeze工具部署Kubernetes 1.12.1高可用集群

使用开源Breeze工具部署Kubernetes 1.12.1高可用集群

点击下一步进行服务组件定义

使用开源Breeze工具部署Kubernetes 1.12.1高可用集群

(3)点击右上角“添加组件”按钮添加服务组件,选择docker,因为所有主机都需要安装,因此无需选择服务器:

使用开源Breeze工具部署Kubernetes 1.12.1高可用集群

使用开源Breeze工具部署Kubernetes 1.12.1高可用集群

再添加镜像仓库组件

使用开源Breeze工具部署Kubernetes 1.12.1高可用集群

使用开源Breeze工具部署Kubernetes 1.12.1高可用集群

备注:registry entry point默认就填写Harbor服务器的IP地址,有些环节可能使用域名则填写域名

继续添加etcd组件,这里我们将其合并部署于k8s master节点,也可以挑选单独的主机进行部署:

使用开源Breeze工具部署Kubernetes 1.12.1高可用集群

使用开源Breeze工具部署Kubernetes 1.12.1高可用集群

使用开源Breeze工具部署Kubernetes 1.12.1高可用集群

最后添加k8s组件,这里分为master和minion nodes

使用开源Breeze工具部署Kubernetes 1.12.1高可用集群

备注:这里kubernetes entry point是为了HA场景,比如此次试验我们在每一个k8s master节点同时各部署了haproxy和keepalived组件,其产生的虚IP是192.168.9.30,端口是6444,那么我们在这里应该填写为192.168.9.30:6444,如果您只安装一个master,那么可以填写为master的入口,例如192.168.9.11:6443

设置完成的界面如下:

使用开源Breeze工具部署Kubernetes 1.12.1高可用集群

如果要实现高可用HA架构,请提前在部署机准备好以下资源包,详情请参阅:

https://github.com/wise2ck8s/haproxy-k8s

https://github.com/wise2ck8s/keepalived-k8s

(1)haproxy-k8s镜像与启动脚本

(2)keepalived-k8s镜像与启动脚本

在部署机上下载两个镜像:

docker pull wise2c/haproxy-k8s

    docker pull wise2c/keepalived-k8s

保存镜像包:

docker save wise2c/haproxy-k8s

wise2c/keepalived-k8s -o /root/k8s-ha.tar

拷贝镜像包至所有master节点:

scp /root/k8s-ha.tar 192.168.9.11:/root/

     scp /root/k8s-ha.tar 192.168.9.12:/root/

     scp /root/k8s-ha.tar 192.168.9.13:/root/

下载启动脚本

curl -L /root/start-haproxy.sh 

https://raw.githubusercontent.com/

wise2ck8s/haproxy-k8s/master/start-haproxy.sh

注意修改上述脚本中的IP地址与您实际场景一致:

MasterIP1=192.168.9.11

   MasterIP2=192.168.9.12

   MasterIP3=192.168.9.13

   curl -L /root/start-keepalived.sh

https://raw.githubusercontent.com/

wise2ck8s/keepalived-k8s/master/start-keepalived.sh

注意修改上述脚本中的VIP地址和网卡名与您实际场景一致:

VIRTUAL_IP=192.168.9.30

   INTERFACE=ens33

拷贝脚本至所有master节点:

chmod  x /root/start-haproxy.sh /root/start-keepalived.sh

   scp –p /root/start-haproxy.sh 192.168.9.11:/root/

   scp –p /root/start-haproxy.sh 192.168.9.12:/root/

   scp –p /root/start-haproxy.sh 192.168.9.13:/root/

   scp –p /root/start-keepalived.sh 192.168.9.11:/root/

   scp –p /root/start-keepalived.sh 192.168.9.12:/root/

   scp –p /root/start-keepalived.sh 192.168.9.13:/root/

四、点击下一步,执行部署流程:

使用开源Breeze工具部署Kubernetes 1.12.1高可用集群

在接下来的部署过程中,屏幕会有日志及图标颜色的动态变化:

使用开源Breeze工具部署Kubernetes 1.12.1高可用集群

使用开源Breeze工具部署Kubernetes 1.12.1高可用集群

当你看见Docker图标颜色变为绿色的时候,表示所有节点的docker已经能正常运行,此时可以不等后续部署过程结束,立刻去所有k8s master节点进行HA组件的启用:

docker load -i /root/k8s-ha.tar

   /root/start-haproxy.sh

  /root/start-keepalived.sh

然后耐心等待最后部署界面所有组件颜色变为绿色即可结束K8S高可用集群的部署工作。

使用开源Breeze工具部署Kubernetes 1.12.1高可用集群

验证:

使用开源Breeze工具部署Kubernetes 1.12.1高可用集群

原文链接:

https://mp.weixin.qq.com/s/6BDwHUOcQZkHmO-h3KgF3Q

关于Wise2C睿云智合

深圳睿云智合科技有限公司成立于2012年,总部位于深圳,并分别在成都、深圳设立了研发中心,北京、上海设立了分支机构,核心骨干人员全部为来自金融、科技行业知名企业资深业务专家、技术专家。早期专注于为中国金融保险等大型企业提供创新技术、电子商务、CRM等领域专业咨询服务。

自2016年始,在率先将容器技术引进到中国保险行业客户后,公司组建了专业的容器技术产品研发和实施服务团队,旨在帮助中国金融行业客户将容器创新技术应用于企业信息技术支持业务发展的基础能力改善与提升,成为中国金融保险行业容器技术服务领导品牌。

此外,凭借多年来在呼叫中心领域的业务经验与技术积累,睿云智合率先在业界推出基于开源软交换平台FreeSwitch的微服务架构多媒体数字化业务平台,将语音、视频、webchat、微信、微博等多种客户接触渠道集成,实现客户统一接入、精准识别、智能路由的CRM策略,并以容器化治理来支持平台的全应用生命周期管理,显著提升了数字化业务处理的灵活、高效、弹性、稳定等特性,为帮助传统企业向“以客户为中心”的数字化业务转型提供完美的一站式整体解决方案。


以上所述就是小编给大家介绍的《使用开源Breeze工具部署Kubernetes 1.12.1高可用集群》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 我们 的支持!


推荐阅读
  • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • CentOS7.8下编译muduo库找不到Boost库报错的解决方法
    本文介绍了在CentOS7.8下编译muduo库时出现找不到Boost库报错的问题,并提供了解决方法。文章详细介绍了从Github上下载muduo和muduo-tutorial源代码的步骤,并指导如何编译muduo库。最后,作者提供了陈硕老师的Github链接和muduo库的简介。 ... [详细]
  • 随着我司的应用都开始容器化,相应的ETL流程也需要迁移到容器中。常规的SQL和shell脚本迁移之后执行基本没有问题,主要的问题在于数据接入使用kettle的场景下,kettle启 ... [详细]
  • docker+k8s+git+jenkins
    docker+k8s+git+jenkins,Go语言社区,Golang程序员人脉社 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 本文介绍了Linux Shell中括号和整数扩展的使用方法,包括命令组、命令替换、初始化数组以及算术表达式和逻辑判断的相关内容。括号中的命令将会在新开的子shell中顺序执行,括号中的变量不能被脚本余下的部分使用。命令替换可以用于将命令的标准输出作为另一个命令的输入。括号中的运算符和表达式符合C语言运算规则,可以用在整数扩展中进行算术计算和逻辑判断。 ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • 十大经典排序算法动图演示+Python实现
    本文介绍了十大经典排序算法的原理、演示和Python实现。排序算法分为内部排序和外部排序,常见的内部排序算法有插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。文章还解释了时间复杂度和稳定性的概念,并提供了相关的名词解释。 ... [详细]
  • 本文探讨了容器技术在安全方面面临的挑战,并提出了相应的解决方案。多租户保护、用户访问控制、中毒的镜像、验证和加密、容器守护以及容器监控都是容器技术中需要关注的安全问题。通过在虚拟机中运行容器、限制特权升级、使用受信任的镜像库、进行验证和加密、限制容器守护进程的访问以及监控容器栈,可以提高容器技术的安全性。未来,随着容器技术的发展,还需解决诸如硬件支持、软件定义基础设施集成等挑战。 ... [详细]
  • LINUX学习之centos7营救模式
    今天卸载软件的时候,不小心把GNOME的一些组件给卸了,导致桌面无法正常开启,会卡在启动过程中,而我的开机启动模式又是设置为图形界面,所以一开LINUX就卡住了,进入不了命令行界面 ... [详细]
  • 现在比较流行使用静态网站生成器来搭建网站,博客产品着陆页微信转发页面等。但每次都需要对服务器进行配置,也是一个重复但繁琐的工作。使用DockerWeb,只需5分钟就能搭建一个基于D ... [详细]
  • DockerDataCenter系列(四)-离线安装UCP和DTR,Go语言社区,Golang程序员人脉社 ... [详细]
  • 有意向可以发简历到邮箱内推.简历直达组内Leader.能做同事的话,内推奖励全给你. ... [详细]
  • k8shelm官网:https:helm.sh点击charts:https:artifacthub.iopackagessearch?sortrelevance&page11.1h ... [详细]
author-avatar
loloyoyo555
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有