使用睿云智合开源 Breeze 工具部署 Kubernetes v1.12.3 高可用集群
一、Breeze简介
Breeze 项目是深圳睿云智合所开源的Kubernetes 图形化部署工具,大大简化了Kubernetes 部署的步骤,其最大亮点在于支持全离线环境的部署,且不需要翻墙获取 Google 的相应资源包,尤其适合某些不便访问互联网的服务器场景。详细资料请阅读官方文档(项目地址https://github.com/wise2c-devops/breeze )
二、环境准备
1.系统环境

#主机名称需要符合DNS命名规则,另外Harbor为必须组件,详细信息请参考官方文档
2.操作前准备
.master与master、master与node、breeze与集群所有主机直接需要ssh互信 #如果机器比较多,ssh互信建议使用脚本来分发秘钥
.开放防火墙或者关闭防火墙
.时间同步,配置时间同步服务
.集群内主机名可解析
5.VIP绑定的网卡名称需要一致
秘钥分发脚本
[root@k8s-deploy ~]# cat fenfa_sshkey.sh
#!/bin/bash
. /etc/init.d/functions
for ip in `cat iplist`
do
/usr/bin/expect fenfa_sshkey.exp ~/.ssh/id_rsa.pub $ip > /dev/null >&
if [ $? -eq ]; then
action "$ip" /bin/true
else
action "$ip" /bin/false
fi
done
fenfa_sshkey.sh-检查证书是否存在
[root@k8s-deploy ~]# cat fenfa_sshkey.exp
#!/usr/bin/expect
if { $argc != } {
send_user "usage: expect send_sshkey.exp file host\n"
exit
}
# define var 定义变量
set file [lindex $argv ]
set host [lindex $argv ]
set password "123\$56" #特殊字符需要转义 spawn ssh-copy-id -i $file $host
expect {
"yes/no" {send "yes\r";exp_continue}
"*password" {send "$password\r"}
}
expect eof exit -onexit {
send_user "good bye...\n"
}
fenfa_sshkey.exp-确认命令是否存在
三、开始部署
1.安装docker-compose命令和docker(deploy上)
[root@k8s-deploy ~]# wget https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m) #注意版本
[root@k8s-deploy ~]# mv docker-compose-Linux-x86_64 docker-compose
[root@k8s-deploy ~]# chmod +x docker-compose
[root@k8s-deploy ~]# mv docker-compose /usr/bin/
[root@k8s-deploy ~]# yum install docker -y
2.下载breeze对应k8s版本的资源文件,并启动部署工具(项目地址 https://github.com/wise2c-devops/breeze)
[root@k8s-deploy ~]# wget https://raw.githubusercontent.com/wise2c-devops/breeze/v1.12.3/docker-compose.yml #注意版本号
[root@k8s-deploy ~]# systemctl start docker
[root@k8s-deploy ~]# systemctl enable docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
[root@k8s-deploy ~]# docker-compose up -d #启动部署工具,大概会下载1GB左右的文件
[root@k8s-deploy ~]# netstat -tnlp #查看88端口是否启动,没有问题就可以访问该端口,登录到web页面
3.访问部署工具的浏览器页面(部署机IP及端口88),开始部署工作

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


点击该集群图标进入添加主机界面
点击右上角“添加主机按钮”

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

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

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


再添加镜像仓库组件


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


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

备注:
这里kubernetes entry point是为了HA场景,比如此次试验我们在每一个k8s master节点同时各部署了haproxy和keepalived组件,其产生的虚IP是172.16.150.:,端口是6444,那么我们在这里应该填写为172.16.150.::,如果您只安装一个master,那么可以填写为master的入口,例如172.16.150.::
接下来是设置高可用组件(haproxy+keepalived):
vip for k8s master 是指三个 k8s master 服务器的高可用虚拟浮动 IP 地址;网卡请填写实际操作系统下的网卡名,注
意请保证 个节点网卡名一致; router id 和 virtual router id 请确保不同 k8s 集群使用不同的值。

设置完成的界面如下:

点击下一步,执行部署流程:,在接下来的部署过程中,屏幕会有日志及图标颜色的动态变化, 耐心等待最后部署界面所有组件颜色变为绿色即可
结束 K8S 高可用集群的部署工作。


四、验证


五、其他
1.各组件yaml文件路径,其中/etc/kubernetes/manifests/下的组件表示将会被创建为static pod

2.influxdb存储问题
[root@k8s-master- kubernetes]# grep volumes: -A ./influxdb.yaml
volumes:
- name: influxdb-storage
emptyDir: {}
---
influxdb默认使用的存储类型为emptyDir,意味着pod被重建之后数据会丢失,如果需要使用influxdb建议使用持久存储
3.Chrome浏览器无法访问dashboard问题
解决方法:https://www.cnblogs.com/panwenbin-logs/p/10052554.html ,此文档中有关于相关问题的解决方法
#本文内容完全抄自官方文档
使用睿云智合开源 Breeze 工具部署 Kubernetes v1.12.3 高可用集群的更多相关文章
- 使用开源Breeze工具部署Kubernetes 1.12.1高可用集群
Breeze项目是深圳睿云智合所开源的Kubernetes图形化部署工具,大大简化了Kubernetes部署的步骤,其最大亮点在于支持全离线环境的部署,且不需要FQ获取Google的相应资源包,尤其适 ...
- Breeze 部署 Kubernetes 1.12.1高可用集群
今天看文章介绍了一个开源部署 K8S 的工具,有空研究下~ Github 地址: https://github.com/wise2c-devops/breeze
- [转帖]Breeze部署kubernetes1.13.2高可用集群
Breeze部署kubernetes1.13.2高可用集群 2019年07月23日 10:51:41 willblog 阅读数 673 标签: kubernetes 更多 个人分类: kubernet ...
- 【工具-Nginx】从入门安装到高可用集群搭建
文章已收录至https://lichong.work,转载请注明原文链接. ps:欢迎关注公众号"Fun肆编程"或添加我的私人微信交流经验 一.Nginx安装配置及常用命令 1.环 ...
- MHA-结合MySQL半同步复制高可用集群(Centos7)
目录 一.理论概述 本案例部署思路 二.环境 三.部署 部署MHA 部署二进制包MySQL及部署主从复制 部署半同步复制 配置MHA MHA测试 部署lvs+keepalived(lvs1,lvs2) ...
- 容器云平台No.2~kubeadm创建高可用集群v1.19.1
通过kubernetes构建容器云平台第二篇,最近刚好官方发布了V1.19.0,本文就以最新版来介绍通过kubeadm安装高可用的kubernetes集群. 市面上安装k8s的工具很多,但是用于学习的 ...
- 阿里云搭建k8s高可用集群(1.17.3)
首先准备5台centos7 ecs实例最低要求2c4G 开启SLB(私网) 这里我们采用堆叠拓扑的方式构建高可用集群,因为k8s 集群etcd采用了raft算法保证集群一致性,所以高可用必须保证至少3 ...
- 云原生 PostgreSQL - CrunchyData PGO 教程:创建、连接、删除 Postgres 集群
入门 作为安装的一部分,请确保您已完成以下操作: 分叉 Postgres Operator 示例存储库并将其克隆到您的主机. https://github.com/CrunchyData/postgr ...
- Kubernetes容器化工具Kind实践部署Kubernetes v1.18.x 版本, 发布WordPress和MySQL
Kind 介绍 Kind是Kubernetes In Docker的缩写,顾名思义是使用Docker容器作为Node并将Kubernetes部署至其中的一个工具.官方文档中也把Kind作为一种本地集群 ...
随机推荐
- js回顾
回顾 js 组成部分 ECMAScript BOM DOM 变量声明~~ var 变量名 = 初始化值: ...
- 基于FPGA的1553B通信模块的设计(转)
reference:http://www.21ic.com/app/eda/201808/798483.htm https://www.milstd1553.com/ [导读] 摘 要: 提出一种将F ...
- 数组的高级API-sort
按升降序排列数组项.本身存在的问题:只能通过第一位排列.解决方法:通过回调函数进行规制设置. a - b 升序. b - a 降续. 其内部运用了冒泡排序 <!DOCTYPE html> ...
- vue学习笔记 - 篇2
1.借助Vue.extend()方法创建组件 注意点 var Aaa = Vue.extend({ template: "<h1>这是标题</h1>" }) ...
- 关于http协议的一些笔记
1.正向代理和反向代理正向代理相当于客户端向代理发送服务器,代理将请求发给服务器,一般代理跟客户端有关系,没有查找的功能:反向代理作用于服务端,客户端向服务器代理发送请求,服务器代理去找需要的资源,然 ...
- 配置mysql主从步骤
在公司开发中,有时候为了缓解数据库压力,会把读写分开为两个数据库来操作,读为一个数据库,写为一个数据库,然后两个数据库做同步,这样能明显降低数据库的压力,下面给大家介绍如何进行mysql主从数据库配置 ...
- C语言笔记变量与数据类型
目录 1.转义字符 2.常量与变量 2.1 什么是常量和变量 2.2 内存 2.3 变量的内存机制 2.4 变量命名规则 2.5 变量的定义 2.6 常量的定义 2.7 计算机内存字节顺序 2.8 局 ...
- C#缓存流的使用浅析
C#缓存流的使用实例:用缓存流复制文件,C#文件处理操作必须先导入命名空间: using System.IO; ///在按钮的Click事件中添加如下代码: private void button1_ ...
- URI,url简介
URI,URL是什么? URI :Uniform Resource Identifier,统一资源标识符: URL:Uniform Resource Locator,统一资源定位符: URN:Unif ...
- robot framework下载文件操作
不同的浏览器点击[下载]按钮之后,需要点击保存,还是确定,或者直接默认直接下载都是不一样的 1.chrome:点击[下载]之后,会自动执行下载操作,直到下载结束 A)点击下载,等待下载结束(sleep ...