开源项目 推荐一个工具:使用 kainstall 工具一键部署 kubernetes (k8s) 高可用集群

lework · 2020年11月12日 · 最后由 lework 回复于 2020年12月03日 · 1850 次阅读

介绍

kainstall = kubeadm install kubernetes

使用 shell 脚本,基于 kubeadm 一键部署 kubernetes HA 集群,轻松帮您打造一个可在 生产环境 下使用的健壮集群。

https://github.com/lework/kainstall

为什么?

为什么要搞这个?Ansible PlayBook 不好么?

因为懒,Ansible PlayBook 编排是非常给力的,不过需要安装 Python 和 Ansible, 且需要下载多个 yaml 文件。因为懒,我想要个更简单的方式来快速部署一个分布式的 Kubernetes HA 集群,使用 shell 脚本可以不借助外力直接在服务器上运行,省时省力。并且 shell 脚本只有一个文件,文件大小100 KB 左右,非常小巧,可以实现一条命令安装集群的超快体验,而且配合离线安装包,可以在不联网的环境下安装集群,这体验真的非常爽啊。

功能

  • 服务器初始化。
    • 关闭 selinux
    • 关闭 swap
    • 关闭 firewalld
    • 关闭大内存页
    • 配置 epel
    • 修改 limits
    • 配置内核参数
    • 配置 history 记录
    • 配置 journal 日志
    • 配置 chrony 时间同步
    • 添加 ssh-login-info 信息
    • 配置 audit 审计
    • 安装 ipvs 模块
    • 更新内核
  • 安装docker, kube组件。
  • 初始化kubernetes集群,以及增加或删除节点。
  • 安装ingress组件,可选nginxtraefik
  • 安装network组件,可选flannelcalico,需在初始化时指定。
  • 安装monitor组件,可选prometheus
  • 安装log组件,可选elasticsearch
  • 安装storage组件,可选rooklonghorn
  • 安装web ui组件,可选dashboard, kubesphere
  • 安装addon组件,可选metrics-server, nodelocaldns
  • 升级到kubernetes指定版本。
  • 更新集群证书。
  • 添加运维操作,如备份 etcd 快照。
  • 支持离线部署
  • 支持sudo 特权
  • 支持10 年证书期限
  • 支持v1.15+的 kubernetes。

一键初始化

bash -c "$(curl -sSL https://cdn.jsdelivr.net/gh/lework/kainstall/kainstall.sh)"  \
  - init \
  --master 192.168.77.130,192.168.77.131,192.168.77.132 \
  --worker 192.168.77.133,192.168.77.134 \
  --user root \
  --password 123456 \
  --port 22 \
  --version 1.19.3

更多操作见: kainstall 仓库

离线部署

wget http://kainstall.oss-cn-shanghai.aliyuncs.com/1.19.3/centos7.tgz

bash -c "$(curl -sSL https://cdn.jsdelivr.net/gh/lework/kainstall/kainstall.sh)"  \
  - init \
  --master 192.168.77.130,192.168.77.131,192.168.77.132 \
  --worker 192.168.77.133,192.168.77.134 \
  --user root \
  --password 123456 \
  --port 22 \
  --version 1.19.3 \
  --offline-file centos7.tgz 

更多离线包: kainstall-offline 仓库

联系

创建了一个 QQ 群 467645743 大家有问题的可以加进来。

自己顶个来

我一般 aliyun 一键开个集群

请问支持部署单个 master 玩玩么。k8s 安装新手,想了解像 network 组件,可选 flannel,calico,这两个组件是可以同时安装使用还是只能安装一个,然后指定其中一个使用?上回我默认只装了个 calico

yukihiro_matz 回复

+1 选择出的 Serverless 版更方便了。。。 不过还是支持这个

需要 登录 后方可回复, 如果你还没有账号请 注册新账号