首页
云原生
Linux
常用bat文件
Maven教程
mongodb
设计模式
Oracle常用知识梳理
更多……
申请加入课程
虚拟IP(VIP)原理
负载均衡
etcd 分布式key-value存储
Helm 规范及应用开发
Kubernetes 探针
Kubernetes 的备份与迁移
caddy 学习纪要
中标麒麟操作系统安装kubesphere问题处理
Kubernetes 启动命令的使用举例
Kubesphere 健康检查器配置说明手册
Docker 镜像打入python环境私有化案例
Kubernetes 部署sftp
HELM 使用入门
yaml 文件语法
NFS 网络文件存储
Docker 基础知识
Docker 常用操作知识
Docker 创建镜像
Docker Machine
Docker 网络
Harbor 主从复制
Centos7 安装Harbor1.10
Jenkins入门介绍
Jenkins 调度kettle
jenkins+docker+ks8流程推动使用
代码质量管理平台SonarQube的安装、配置与使用和jenkins的集成
详解CI、CD相关概念
k8s 云管理方案
CoreDNS
Kubectl 命令行工具
K8S 的pod相关知识
Kubernetes Ingress
K8S 集群服务器提供要求
K8s 集群服务器信息验证
Kubernetes 添加nfs存储
Kubernetes 搭建mysql集群
Kubernetes 部署sqlserver
k8s 错误处理记录
Kubernetes 资源使用优化
Kubernetes 资源抢占策略
Kubesphere中概念梳理
记录一次客户环境安装kubesphere的流程
Kubesphere 离线自动化安装完整过程
kubesphere 安装错误处理记录
Kubesphere 离线自动化安装完整过程
星辰
2019-12-03
0
0
971
人
0
人评论
0
人举报
[TOC] # Kubesphere 离线自动化安装完整过程 内容简介:本文以一次生产环境的离线安装为例来编写离线安装的整体过程,尽量写的通俗易懂,因为文章定位为后续新加入进来的人能根据此文档就可以快速的把云环境搭建起来,文章涵盖内容比较齐全,包含服务器磁盘的分区和nfs服务器搭建的完整过程。 > 备注:由于版主也是最近才接手云的运维工作,linux运维知识是现学现用,有些shell脚本写的不是很到位的欢迎留言指出。博客是N年前花了一个礼拜开发的功能后面没怎么完善,如果不行可以通过QQ留言。 ## 服务器申请注意事项 请查看专题下的《记录一次客户环境安装kubesphere的流程》课程 ## 安装环境介绍 * Centos7.7 * 服务器磁盘未分区需要自行分区 * 服务器台数30台 * 选用的kubesphere版本2.1.1 * 安装环境,所有服务器无网络 * 服务器厂商:华为 * k8s采用3master,使用haproxy+keepalived来做负载 * 文件存储采用nfs网络文件存储,共3台分区存储 * 客户提供的linux根目录没有采用逻辑卷组而是直接使用的分区,感觉有点不专业,无法扩容,所以我们只能选择把自己的文件夹挂载出去,主要涉及`/var/lib/docker`和`/var/lib/kubelet`,其实后者不大,不挂估计也没啥影响。 ## 此次安装不完善的地方记录,请自行完善 * 分区没有使用逻辑卷,一旦磁盘不够时无法扩容,需要进行迁移,请自行完善,后续版主有空觉得有必要的话也会完善脚本,逻辑卷管理昨天刚学,抱歉,暂时无时间完善脚本。 ## 部署安装 ### 离线需要使用到的离线安装包列表 | 工具名 | 工具介绍 | 需要修改的文件 | | ------------ | ------------ | ------------ | | lrzsz | xshell文件上传下载插件 | 无 | | screen | linux后台执行工具,防止窗口关闭后安装停止 | 无 | | sshpass| ssh带密码远程连接 | 无 | | telnet | 端口检测工具,不是必须用curl也行 | 无 | | nfs |nfs网络存储搭建需要的安装包 | 需要修改配置exports,请根据实际情况修改rpcbind.socket该文件版主提供的安装包中已修改,固定值,不随环境变化。 | haproxy | 高可用组件 | 需要修改haproxy.cfg,修改ip即可 | | keepalived|心跳检测 | 修改keepalived.conf文件中的interface为你的网卡名,修改虚拟ip地址virtual_ipaddress | harbor| 镜像仓库 |harbor的安装,请查看专题下《Centos7 离线安装Harbor1.10.1》文档,此处不讲 | kubesphere| k8s的管理平台 | 修改common.yaml、hosts.ini文件,docker-options.conf这个文件是提供给后续通过脚本统一替换所有服务器docker地址用的,如果你第一次安装时就已经在common.yaml里面配置对了就用不到。 ### 安装过程记录 选定master机器作为任务机,所有安装操作均在该机器上执行,任务机命名为task。 * 将下载下来的安装包中的文件根据实际情况进行修改,安装包的修改内容请查看上面安装包列表说明 * 修改sh文件中的执行文件中的参数信息,一般放在头部,此块能需要你根据情况调整参数或者选择性执行,因为你的环境可能和我的不一样,所以你需要根据你的情况做些调整,此处只是提供参考。 * 选定master1作为task机器,根目录创建install目录 `mkdir /install` 上传下载的安装包中的如下几个安装包 ``` telnet sshpass screen lrzsz haproxy keepalived kubesphere sh ``` * task机器工具软件安装 ``` rpm -ivh /install/lrzsz/*.rpm && rpm -ivh /install/screen/*.rpm && rpm -ivh /install/sshpass/*.rpm && rpm -ivh /install/telnet/*.rpm ``` * 服务器信息检查报告输出 `修改/install/sh/check.sh`文件头部的参数,然后执行该服务器配置信息检查程序 ``` chmod +x /install/sh/check.sh sh /install/sh/check.sh > info.txt # 查看info.txt文件检查服务器cpu、内存、磁盘、ssh连接性、scp连通性(需要上其他机器验证文件有没有拷贝过去)等关键因素 ``` * 如果服务器信息都没错的话,开始进行磁盘分区挂载等服务器基础信息配置 因为版主拿到的服务器均有一个磁盘未进行分区,所以需要自行分区并把/var/lib/docker和/var/lib/kubelet进行挂载过去,如果你的根分区足够大,没有多余空闲磁盘需要分区的话,可以删除这部分代码。 修改`/install/sh/task.sh`文件头部参数,disk是空闲的需要分区的磁盘,根据自己的情况修改 修改`/install/sh/baseconfig.sh`中`/var/lib/docker和/var/lib/kubelet`两个分区的大小,版主设置的是160G和50G,如果你的磁盘不够或者你想分配更大的空间,请自行调整参数值。 ``` # 执行前请检查安装包中的所有配置均已按环境修改,此步骤主要涉及下面两个sh文件和haproxy+keepalived安装包的配置修改 chmod +x /install/sh/task.sh sh /install/sh/task.sh # 以上脚本执行会对所有k8s机器,包括task机和所有master和node机器进行分区,挂载/var/lib/docker和/var/lib/kubelet,关闭服务器防火墙,配置所有task机器ssh到其他机器的ssh免密登录,以及配置所有master机器的haproxy+keepalived安装,另外master1会多创建一个分区来存储离线安装镜像存储目录/mnt/registry,这个需要50G存储,离线安装要用到的东西都放在此处。 ``` * nfs 服务搭建 此步骤请查看Linux专题下的《Linux NFS 网络文件系统离线批量搭建》文档,搭建完后我们选择第一个网络文件存储配置到kubepshere安装包文件下的common.yaml文件中作为默认文件存储,版主此次有3个nfs存储服务器。其他两个nfs文件存储服务器如何添加到k8s中,请在本专题下查找对应的文章,该内容不在本安装说明中。 * kubesphere安装 解压kubesphere离线安装包,请找个空间足够大的地方解压,根目录空间不一定够用,加压后的文件会比较大,将你同步下载下来的common.yaml和hosts.ini文件根据实际情况修改,然后替换掉你解压出来的文件中的对应配置,检查无误后执行安装脚本。如果你配置都对的话一般不会出问题,如果报错可以执行多次。执行安装时请先用screen开启一个后台窗口执行,以免中途断掉,整个安装过程大概3~4个小时左右。此步骤可能需要你对在线安装过程有了解,详细细节没有在此处说明。 `./install.sh` * 安装成功后,修改环境变量 由于kubesphere2.1.1之前下载的安装包,没有设置把/usr/local/bin加入环境变量,导致安装后kubectl等指令不能直接使用,所以加了一个批量修改脚本 ``` # 执行前根据环境修改脚本中的参数 chmod +x /install/sh/modify.sh sh /install/sh/modify.sh # 脚本中除了修改环境变量外还做了docker-options.conf文件的替换,因为版主刚开始并没有安装harbor所以,所以利用此程序批量添加了harbor镜像地址。 ``` * 将harbor的ca.crt拷贝到所有节点 以下是部分处理脚本,解决kubesphere创建任务403问题 ``` sshpass -p ${master_pwd_arr[i]} scp -o StrictHostKeyChecking=no /home/data/cert_harbor/ca.crt root@${master_ip_arr[i]}:/etc/pki/ca-trust/source/anchors/harbor.openpitrix.io.ca.crt sshpass -p ${master_pwd_arr[i]} ssh -o StrictHostKeyChecking=no root@${master_ip_arr[i]} "echo ------------------${master_ip_arr[i]} 连接成功;pam_tally2 --user=root --reset;sudo update-ca-trust;sudo systemctl daemon-reload;sudo systemctl restart docker" ```
所有评论列表
点我发表评论