今天介绍使用 sealos 一键部署 Kubernetes 集群,sealos 是只能用丝滑一词形容的 kubernetes 高可用安装(kubernetes install)工具,一条命令,离线安装,包含所有依赖,内核负载不依赖 haproxy keepalived,纯 golang 开发,99 年证书,支持 v1.20.0 v1.19.5 v1.18.13 v1.17.15!

sealos 支持的环境

Linux 发行版,CPU 架构

  • Debian 9+, x86_64/ arm64
  • Ubuntu 16.04, 18.04, 20.04, x86_64/ arm64
  • Centos/RHEL 7.6+, x86_64/ arm64
  • 其他支持 systemd 的系统环境。x86_64/ arm64
  • Kylin arm64

kubernetes 版本

  • 1.16+
  • 1.17+
  • 1.18+
  • 1.19+
  • 1.20+
  • 1.21+
  • 1.22+

要求和建议

  • 最低资源要求

    • 2 vCpu
    • 4G Ram
    • 40G+ 存储
  • 操作系统要求

    • ssh 可以访问各安装节点
    • 各节点主机名不相同,并满足 kubernetes 的主机名要求。
    • 各节点时间同步
    • 网卡名称如果是不常见的,建议修改成规范的网卡名称,如 (eth.|en.|em.*)
    • kubernetes1.20+ 使用 containerd 作为 cri. 不需要用户安装 docker/containerd. sealos 会安装 1.3.9 版本 containerd。
    • kubernetes1.19 及以下 使用 docker 作为 cri。也不需要用户安装 docker。sealos 会安装 1.19.03 版本 docker
  • 网络和 DNS 要求:

    • 确保 /etc/resolv.conf 中的 DNS 地址可用。否则,可能会导致群集中 coredns 异常。
    • 如果使用阿里云/华为云主机部署。默认的 pod 网段会和阿里云的 dns 网段冲突,建议自定义修改 pod 网段,在 init 的时候指定--podcidr 来修改。
    • sealos 默认会关闭防火墙,如果需要打开防火墙,建议手动放行相关的端口。
  • 内核要求:

    • cni 组件选择 cilium 时要求内核版本不低于 5.4

安装部署

  1. 下载并安装 sealos, sealos 是个 golang 的二进制工具,直接下载拷贝到 bin 目录即可,release 页面也可下载
wget -c https://sealyun.oss-cn-beijing.aliyuncs.com/latest/sealos && \
    chmod +x sealos && mv sealos /usr/bin  
  1. 提前下载好对应 k8s 的离线资源包 kube1.22.1.tar.gz。
  2. 安装一个单 master 三个 node 的 kubernetes 集群
 sealos init --passwd '123456' \
--master 192.168.1.45  \
--node 192.168.1.46 --node 192.168.1.47  --node 192.168.1.48 \
	--pkg-url ~/kube1.22.1.tar.gz \
	--version v1.22.1
  1. 过了一会儿,可以看到如下场景, img.png

  2. 执行 kubectl cluster-info 和 kubectl get nodes ,可以看到如下场景,表示 K8S 顺利部署安装。 img_1.png

    img_2.png

  3. 清理集群 使用 sealos clean –all 可以清理集群

参考