论虚拟机中造作k8s和docker的过程(二)——k8s集群安装(sealos)

ps:安装k8s集群有非常多的方式,像什么二进制啊,kubeadm,kubespray啊。但是都会有各自的缺点。
  • 二进制安装方式真的是一般人搞不定,什么东西都要自己去安装,冷不丁少一点就各种问题,难受的要死。

  • kubeadm是谷歌官方推荐的安装工具,安装单节点master的话也很方便,如果需要高可用,搭建多master的话,需要配合KeepAlived和HAProxy实现集群高可用。但是使用这两个东西都会存在以下一些劣势:

    1. 软件源不一致可能导致容器中安装的软件版本也不一致,进而会引起相应检查脚本不生效等故障。
    2. 可能因为系统依赖库问题,在某些特定环境下就直接无法完成安装。
    3. 只依靠检测 HAProxy 进程是否存活是无法保证集群高可用的,正确的检测方式应该是判断ApiServer 是否 healthz 状态。
    4. Keepalived 可能存在 Cpu 占满的情况。
    5. 默认证书有效期只有一年
  • kubespray呢,外网使用无碍,但是中国境内,部分镜像需要从gcr.io拉取,部分二进制文件需要从github下载,各种需要。需要的东西,都不是好东西(当然这是气话~~)

所以最终采用的是国内大牛开发的Sealos部署工具。
要问原因,最大的一个,那就是不!需!要!翻!墙!
而且:

1. 支持离线安装,工具与部署资源包分离,方便不同版本间快速升级。
2. 证书有效期默认延期至 99 年。
3. 工具使用非常简单。
4. 支持使用自定义配置文件,可灵活完成集群环境定制。
5. 使用内核进行本地负载,稳定性极高,故障排查也极其简单。

部署准备

sealos官网
官网地址: 
https://sealyun.com/ 

kubernates离线包地址(有几个.0版本是一分钱,但是作者不建议上生产环境!!!,所以意思就是你要正式用的话,买一个吧~): 
https://www.sealyun.com/goodsDetail?type=cloud_kernel&name=kubernetes
sealos下载
可以下载sealos不同版本的二进制文件 
https://github.com/fanux/sealos/releases

或者用如下命令下载安装(v3.3.8)
wget -c https://github.com/fanux/sealos/releases/download/v3.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时启动成功了(心里一万头草泥马~~)

论虚拟机中造作k8s和docker的过程(二)——k8s集群安装(sealos)_第1张图片
查看节点信息,

[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       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,centos)