1. 与rancher对比
1.1 功能体验
1.1.1 rancher 2.6.2 && kubernets 1.2.1
劣势 : 过时了流水线,改用fleet进行devops尝试,暂不是很成熟
优点 : rancher更偏向运维使用,多集群管理和基于web UI 半自动快速建立集群相当的方便,便于大规模集群使用.
1.1.2 kubesphere 3.1.1 && kubernets 1.2.0
劣势 : 部署完全基于shell自动,没有webUI,部署,另外部署过程中还有些小坑,小规模使用还是勉强可以
优点 : kubesphere比较均衡,[集群管理]模块偏向运维使用 , [项目管理] 研发使用,运维配合即可,整体UI风格也要优于rancher.
上一篇记录了部署rancher和初体验,本篇记录kubesphere的搭建.
1.2 环境准备
1.2.1 实验虚拟机 centos7.9 (基于proxmox-debian金属机)
name: node1, address: 192.168.0.123, cpu: 4,memory: 4G,disk: 50G
name: node2, address: 192.168.0.124, cpu: 4,memory: 4G,disk: 50G
name: node3, address: 192.168.0.125, cpu: 4,memory: 4G,disk: 50G
name: node4, address: 192.168.0.126, cpu: 4,memory: 4G,disk: 50G
name: node5, address: 192.168.0.127, cpu: 4,memory: 4G,disk: 50G
name: node6, address: 192.168.0.128, cpu: 4,memory: 4G,disk: 50G
1.2.2 网络
虚拟机虚拟网卡桥接宿主机物理网卡,访问公网.
1.2.3 初始化
脚本/命令 与rancher前期准备相同,见 : https://www.buukle.top/archives/si-you-yun-4-rancherk8s
另外执行:
yum install -y openssl openssl-devel
1.2.4 节点免密
① 设置host
vi /etc/hosts
完成后 :
192.168.0.123 node1
192.168.0.124 node2
192.168.0.125 node3
192.168.0.126 node4
192.168.0.127 node5
192.168.0.128 node6
② 生成公私证书
mkdir .ssh
cd .ssh
ssh-keygen -t rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub node1
③ 推送证书
在6台节点分别执行
ssh-copy-id -i ~/.ssh/id_rsa.pub node1 ## 输入密码
ssh-copy-id -i ~/.ssh/id_rsa.pub node2 ## 输入密码
ssh-copy-id -i ~/.ssh/id_rsa.pub node3 ## 输入密码
ssh-copy-id -i ~/.ssh/id_rsa.pub node4 ## 输入密码
ssh-copy-id -i ~/.ssh/id_rsa.pub node5 ## 输入密码
ssh-copy-id -i ~/.ssh/id_rsa.pub node6 ## 输入密码
1.2.5 检查resolv.conf文件,清除其中当前网络不能识别的记录
vim /etc/resolv.conf
示例 :
2. 下载脚本准备配置
参照官方文档 : https://kubesphere.io/docs/installing-on-linux/introduction/multioverview/
# 下载执行脚本
curl -sfL https://get-kk.kubesphere.io | VERSION=v1.1.1 sh -
# 生成配置文件
./kk delete cluster -f ./config-kubesphere.yaml
# 修改配置文件
vim config-kubesphere.yaml
局部示例 :
3. 部署
./kk create cluster -f ./config-kubesphere.yaml
观察日志,直到部署成功;
4. 卸载
4.1 卸载集群
./kk delete cluster -f ./config-kubesphere.yaml
4.2 清理
docker stop $(docker ps -a -q)
docker rm $(docker ps -a -q)
docker rmi $(docker images -q)
#删除/var/etcd目录
sudo rm -rf /var/etcd
#删除/var/lib/kubelet/目录,删除前先卸载
for m in $(sudo tac /proc/mounts | sudo awk '{print $2}'|sudo grep /var/lib/kubelet);do sudo umount $m||true; done
sudo rm -rf /var/lib/kubelet/
#删除/var/lib/rancher/目录,删除前先卸载
for m in $(sudo tac /proc/mounts | sudo awk '{print $2}'|sudo grep /var/lib/rancher);do sudo umount $m||true; done
sudo rm -rf /var/lib/rancher/
#删除/run/kubernetes/ 目录
sudo rm -rf /run/kubernetes/
#删除所有的数据卷
sudo docker volume rm $(sudo docker volume ls -q)
#再次显示所有的容器和数据卷,确保没有残留
sudo docker ps -a
sudo docker volume ls
5. 效果