集群安装(sealos)"/>
论虚拟机中造作k8s和docker的过程(二)——k8s集群安装(sealos)
ps:安装k8s集群有非常多的方式,像什么二进制啊,kubeadm,kubespray啊。但是都会有各自的缺点。
-
二进制安装方式真的是一般人搞不定,什么东西都要自己去安装,冷不丁少一点就各种问题,难受的要死。
-
kubeadm是谷歌官方推荐的安装工具,安装单节点master的话也很方便,如果需要高可用,搭建多master的话,需要配合KeepAlived和HAProxy实现集群高可用。但是使用这两个东西都会存在以下一些劣势:
- 软件源不一致可能导致容器中安装的软件版本也不一致,进而会引起相应检查脚本不生效等故障。
- 可能因为系统依赖库问题,在某些特定环境下就直接无法完成安装。
- 只依靠检测 HAProxy 进程是否存活是无法保证集群高可用的,正确的检测方式应该是判断ApiServer 是否 healthz 状态。
- Keepalived 可能存在 Cpu 占满的情况。
- 默认证书有效期只有一年
-
kubespray呢,外网使用无碍,但是中国境内,部分镜像需要从gcr.io拉取,部分二进制文件需要从github下载,各种需要翻墙。需要翻墙的东西,都不是好东西(当然这是气话~~)
所以最终采用的是国内大牛开发的Sealos部署工具。
要问原因,最大的一个,那就是不!需!要!翻!墙!
而且:
1. 支持离线安装,工具与部署资源包分离,方便不同版本间快速升级。
2. 证书有效期默认延期至 99 年。
3. 工具使用非常简单。
4. 支持使用自定义配置文件,可灵活完成集群环境定制。
5. 使用内核进行本地负载,稳定性极高,故障排查也极其简单。
部署准备
sealos官网
官网地址:
/ kubernates离线包地址(有几个.0版本是一分钱,但是作者不建议上生产环境!!!,所以意思就是你要正式用的话,买一个吧~):
=cloud_kernel&name=kubernetes
sealos下载
可以下载sealos不同版本的二进制文件
(v3.3.8)
wget -c .3.8/sealos && chmod +x sealos && mv sealos /usr/bin
通过sealos安装的前提条件
安装并启动docker,已经安装了会重启docker. 高版本离线包自带docker,如没安装docker会自动安装.
下载kubernetes 离线安装包.
下载最新版本sealos.
务必同步服务器时间
主机名不可重复
master节点CPU必须2C以上
请使用sealos 3.2.0以上版本
修改主机名
hostnamectl --static set-hostname k8s-master
hostnamectl --static set-hostname k8s-node#操作之后可以看到主机名已改
bash
安装多master集群
sealos init --master 192.168.1.10 \--master 192.168.1.33 \--master 192.168.1.32 \--node 192.168.1.31 \--node 192.168.1.35 \--node 192.168.1.34 \--user root \--passwd your-server-password \--version v1.19.0 \--pkg-url /data/kube1.19.0.tar.gz
安装过程很慢,毕竟各种各样的东西太多了。
这里发生亿个插曲,虚拟机太多运行k8s把电脑卡崩掉好多次~~~~
最终不断镜像重启,删减启动时的节点,终于在一个master一个node时启动成功了(心里一万头草泥马~~)
查看节点信息,
[root@k8s-master-100 data]# kubectl get node
NAME STATUS ROLES AGE VERSION
k8s-master-100 Ready master 4m58s v1.19.0
k8s-node-103 Ready <none> 4m29s v1.19.0
之后就可以通过命令一个个添加master和node,作者添加到第三个master时电脑卡爆,然后添加失败了~~,为了电脑的安全运行,删除节点,只留一个master和一个node做接下来的练习。
其他常用命令
增加master
sealos join --master 192.168.0.6 --master 192.168.0.7
sealos join --master 192.168.0.6-192.168.0.9 # 或者多个连续IP
增加node
sealos join --node 192.168.0.6 --node 192.168.0.7
sealos join --node 192.168.0.6-192.168.0.9 # 或者多个连续IP
删除指定master节点
sealos clean --master 192.168.0.6 --master 192.168.0.7
sealos clean --master 192.168.0.6-192.168.0.9 # 或者多个连续IP
删除指定node节点
sealos clean --node 192.168.0.6 --node 192.168.0.7
sealos clean --node 192.168.0.6-192.168.0.9 # 或者多个连续IP
清理集群
sealos clean --all
备份集群
sealos etcd save
更多推荐
论虚拟机中造作k8s和docker的过程(二)——k8s集群安装(sealos)
发布评论