zoukankan      html  css  js  c++  java
  • 使用睿云智合开源 Breeze 工具部署 Kubernetes v1.12.3 高可用集群

    一、Breeze简介

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

    二、环境准备

    1.系统环境

    #主机名称需要符合DNS命名规则,另外Harbor为必须组件,详细信息请参考官方文档

    2.操作前准备

    1.master与master、master与node、breeze与集群所有主机直接需要ssh互信 #如果机器比较多,ssh互信建议使用脚本来分发秘钥
    2.开放防火墙或者关闭防火墙
    3.时间同步,配置时间同步服务
    4.集群内主机名可解析
    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 2>&1
    if [ $? -eq 0 ]; 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 != 2 } {
     send_user "usage: expect send_sshkey.exp file host
    "
     exit
    }
    # define var 定义变量
    set file [lindex $argv 0]
    set host [lindex $argv 1]
    set password "123$56"   #特殊字符需要转义
     
    spawn ssh-copy-id -i $file $host
    expect {
    "yes/no" {send "yes
    ";exp_continue}
    "*password" {send "$password
    "}
    }
    expect eof
     
    exit -onexit {
     send_user "good bye...
    "
    }
    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.156:6444,端口是6444,那么我们在这里应该填写为172.16.150.156:6444:6444,如果您只安装一个master,那么可以填写为master的入口,例如172.16.150.156:6444:6443

    接下来是设置高可用组件(haproxy+keepalived):

    vip for k8s master 是指三个 k8s master 服务器的高可用虚拟浮动 IP 地址;网卡请填写实际操作系统下的网卡名,注
    意请保证 3 个节点网卡名一致; router id 和 virtual router id 请确保不同 k8s 集群使用不同的值。

    设置完成的界面如下:

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

     四、验证

    五、其他

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

    2.influxdb存储问题

    [root@k8s-master-03 kubernetes]# grep volumes: -A  3  ./influxdb.yaml 
          volumes:
          - name: influxdb-storage
            emptyDir: {}
    ---

    influxdb默认使用的存储类型为emptyDir,意味着pod被重建之后数据会丢失,如果需要使用influxdb建议使用持久存储

    3.Chrome浏览器无法访问dashboard问题

    解决方法:https://www.cnblogs.com/panwenbin-logs/p/10052554.html  ,此文档中有关于相关问题的解决方法

    #本文内容完全抄自官方文档 

     




     

  • 相关阅读:
    在HTML中使用JavaScript
    网站发布流程
    React组件
    React渲染和事件处理
    Java IO(三)
    Java IO(二)
    Java IO(一)
    Java常用类库
    Java集合框架(四)
    Java集合框架(三)
  • 原文地址:https://www.cnblogs.com/panwenbin-logs/p/10114658.html
Copyright © 2011-2022 走看看