category
tags
type
status
slug
date
summary
icon
password
前言
这里将借用KubeKey 和KubeSphere官方提供的安装脚本,快速搭建一个带KubeSphere平台的K8s集群。KubeSphere的面板相比Kubernetes的DashBoard更加直观并且实用。
![KubeSphere面板](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F5c418ff5-113b-4221-ad20-4989817c5ceb%2FUntitled.png?table=block&id=b1e16a3c-e7e7-4145-88e8-83ed437878fa)
![Kubernetes Dashboard](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F3b8bfb6a-3364-48ba-92d4-3a8f77dd3c00%2FUntitled.png?table=block&id=0cbf20cc-3f1c-4ca8-9614-9b441ca37a21)
准备服务器
- 虚拟机要开启时间同步
- 提前修改pip的conf ,否则KubeSphere安装脚本中的默认清华源会提示警告错误,耽误时间
- 偶尔会出现packagekit服务阻塞yum服务的正常安装,推荐关闭此服务。
- 建议安装过程打几个快照,尤其是在纯净系统的时候打快照,以便于重新安装或测试。(用空间换取时间)
一、使用kubekey (kk)安装 (推荐)
为什么选择 KubeKey
- 以前基于 ansible 的安装程序依赖于许多软件,例如 Python。KubeKey 由 Go 语言开发,可以消除在多种环境中出现的问题,确保成功安装。
- KubeKey 支持多种安装选项,例如 All-in-One、多节点安装以及离线安装。
- KubeKey 使用 Kubeadm 在节点上尽可能多地并行安装 Kubernetes 集群,使安装更简便,提高效率。与旧版的安装程序相比,它极大地节省了安装时间。
- KubeKey 提供内置高可用模式,支持一键安装高可用 Kubernetes 集群。
- KubeKey 旨在将集群作为对象来进行安装,即 CaaO。
All-in-One 脚本示例
以下是我从一个纯净的CentOS系统,一步步执行成功安装AllinOne的KubeSphere+K8s环境的脚本。
- 配置基础网络环境
- 安装 必备组件 socat conntrack
- 安装kk工具
- 如果您的服务器能正常访问Github/Googleapis
- 如果您的服务器访问Github/Googleapis受限
开始创建环境
安装完成
根据你的网络情况,安装过程可能需要几十分钟,不要着急。安装完成后控制台会显示出你的额KubeSphere访问面板地址。
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F15df9720-8786-4fe0-9e0a-87656b66b766%2FUntitled.png?table=block&id=72697d19-8775-4219-a92e-725f1cea5778)
检验安装结果
你可以随时输入以下指令,查看KubeSphere平台 安装、更新的结果:
单节点扩展为多结点
参照文档编辑你的节点配置文件
- 创建一个实例脚本
- 编辑脚本:在脚本中添加你的节点配置
vim ~/sample.yml
然后执行以下命令即可
二、ks-installer安装器安装
三、可插拔组件的安装
- 你可以随时用命令行修改ks的ConfigMap文件,从而实现更新ks-installer。
修改完成后用以下命令检查更新结果
- 更可以在kubesphere控制台中直接修改 ks.installer 的配置文件
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F7c5f23ce-a563-4a57-b275-c82527448dfe%2FUntitled.png?table=block&id=beb52578-a365-490f-ad6d-b4e9924614f3)
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Fd89f6b24-6e26-4b72-ad79-6dd8ddb82d80%2FUntitled.png?table=block&id=506ff512-b7c0-45b2-86e2-fb43f0773c99)
示例-KubeSpereh增加ES日志查询
示例 - KubeSphere增加NFS卷类型
默认安装的KuberSphere只有 一个Local文件类型,这里可以安装一个NFS卷类型:
1. 系统安装NFS服务
- 执行以下脚本,安装NFS服务,并准备将/data目录作为服务目录:
- 执行
vi /etc/exports
修改NFS的目录配置 /data
: 共享目录位置。192.168.31.0/24
: 客户端 IP 范围,*
代表所有,即没有限制。rw
: 权限设置,可读可写。sync
: 同步共享目录。no_root_squash
: 可以使用 root 授权。no_all_squash
: 可以使用普通用户授权。
文本内容:
/data/ 192.168.31.0/24(rw,sync,no_root_squash,no_all_squash)
说明:
- 修改后重启NFS
systemctl restart nfs
- 执行
showmount -e
localhost
可以查看当前被作为NFS服务的目录文件夹
2. 客户端 配置
- 开启rpc服务
systemctl enable rpcbind && systemctl start rpcbind
- 读取NFS服务器可挂载的文件夹列表
showmount -e 192.168.31.39
- 注意master需要关闭防火墙
- 客户端创建相同目录
mkdir /data
- 挂载
mount -t nfs 192.168.31.39:/data /data
3.更新KubeSphere环境
- 理想情况下,首次使用一键脚本安装配置
如果你在首次执行
./install.sh
安装器部署带有KubeSphere环境前,已经安装好NFS环境,并按照以下配置修改 conf/common.yaml
, 这时你安装的k8s是默认具有NFS卷类型支持的,并且NFS被设置为是默认的卷类型。- 但如果你已经安装好kubesphere+k8s环境,且没有使用一键安装脚本、而是使用kuberkey等方式,需要安装NFS-client的方式进行:
- 若你是用installer脚本一键安装可以使用修改
ConfigMap
的方式来更新集群 - 或在控制后台编辑
执行以下命令,并参照以上的common.yaml内容配置ks-installer的内容。修改后自动生效并重新配置KubeSphere
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F22e3d076-863e-4dd0-bbad-58114c0a1a02%2FUntitled.png?table=block&id=fe22b856-623b-4583-9dca-0c32c7311936)
示例- 安装devops
官方推荐,在muti-node模式下,需要一台主机节点大于8G,才可以安装,否则可能效果并不理想,开启DevOps参考以下文档,此处不再赘述。
参考文档
KubeSphere文档
Kubekey文档
在 Kubernetes集群中 安装 KubeSphere2.1
一些QA
- 安装过程可能出现pip源的警告。这是由于ks-installer安装器默认的清华源有问题,需要按照文章上面的方法修改为默认使用阿里源。
- 可能出现安装失败
使用ks-installer安装器或KubeKey都要求系统是完全纯净的,如果装了其他库依赖例如自己安装了Docker的其他版本,都会导致安装错误,这时候利用你的服务器快照回滚到最初的版本,重新安装试一下。
- 作者:NotionNext
- 链接:https://tangly1024.com/kuberkey-kubesphere-k8s
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。