什么是 Sealos ?
Sealos
是一个 Go 语言开发的简单干净且轻量的 Kubernetes
集群部署工具,Sealos
能很好的支持在生产环境中部署高可用的 Kubernetes
集群。
Sealos 优势
99年证书
不依赖ansible haproxy keepalived, 一个二进制工具,0依赖
离线安装,不同kubernetes版本下载对应不同版本的资源包即可,离线包包含所有二进制文件配置文件和镜像
高可用通过ipvs实现的localLB,占用资源少,稳定可靠,类似kube-proxy的实现
几乎可兼容所有支持systemd的x86_64架构的环境
轻松实现集群节点的增加/删除
上千用户在线上环境使用sealos,稳定可靠
资源包放在阿里云oss上,再也不用担心网速
dashboard ingress prometheus等APP 同样离线打包,一键安装
前提
安装并启动docker, 高版本离线包自带docker,如没安装docker会自动安装
下载kubernetes 离线安装包.
下载最新版本sealos.
务必同步服务器时间
主机名不可重复
master节点CPU必须2C以上
请使用sealos 3.2.0以上版本
安装教程
多master HA:
sealos init --master 192.168.0.2 \ --master 192.168.0.3 \ --master 192.168.0.4 \ --node 192.168.0.5 \ --user root \ --passwd your-server-password \ --version v1.14.1 \ --pkg-url /root/kube1.14.1.tar.gz
或者单master多node:
sealos init --master 192.168.0.2 \ --node 192.168.0.5 \ --user root \ --passwd your-server-password \ --version v1.14.1 \ --pkg-url /root/kube1.14.1.tar.gz --pk /root/kubernetes.pem --version v1.15.0
具体详细参数执行 sealos init --help
检查安装是否正常:
[root@iZj6cdqfqw4o4o9tc0q44rZ ~]# kubectl get nodeNAME STATUS ROLES AGE VERSIONizj6cdqfqw4o4o9tc0q44rz Ready master 2m25s v1.14.1izj6cdqfqw4o4o9tc0q44sz Ready master 119s v1.14.1izj6cdqfqw4o4o9tc0q44tz Ready master 63s v1.14.1izj6cdqfqw4o4o9tc0q44uz Ready <none> 38s v1.14.1[root@iZj6cdqfqw4o4o9tc0q44rZ ~]# kubectl get pod --all-namespacesNAMESPACE NAME READY STATUS RESTARTS AGEkube-system calico-kube-controllers-5cbcccc885-9n2p8 1/1 Running 0 3m1skube-system calico-node-656zn 1/1 Running 0 93skube-system calico-node-bv5hn 1/1 Running 0 2m54skube-system calico-node-f2vmd 1/1 Running 0 3m1skube-system calico-node-tbd5l 1/1 Running 0 118skube-system coredns-fb8b8dccf-8bnkv 1/1 Running 0 3m1skube-system coredns-fb8b8dccf-spq7r 1/1 Running 0 3m1skube-system etcd-izj6cdqfqw4o4o9tc0q44rz 1/1 Running 0 2m25skube-system etcd-izj6cdqfqw4o4o9tc0q44sz 1/1 Running 0 2m53skube-system etcd-izj6cdqfqw4o4o9tc0q44tz 1/1 Running 0 118skube-system kube-apiserver-izj6cdqfqw4o4o9tc0q44rz 1/1 Running 0 2m15skube-system kube-apiserver-izj6cdqfqw4o4o9tc0q44sz 1/1 Running 0 2m54skube-system kube-apiserver-izj6cdqfqw4o4o9tc0q44tz 1/1 Running 1 47skube-system kube-controller-manager-izj6cdqfqw4o4o9tc0q44rz 1/1 Running 1 2m43skube-system kube-controller-manager-izj6cdqfqw4o4o9tc0q44sz 1/1 Running 0 2m54skube-system kube-controller-manager-izj6cdqfqw4o4o9tc0q44tz 1/1 Running 0 63skube-system kube-proxy-b9b9z 1/1 Running 0 2m54skube-system kube-proxy-nf66n 1/1 Running 0 3m1skube-system kube-proxy-q2bqp 1/1 Running 0 118skube-system kube-proxy-s5g2k 1/1 Running 0 93skube-system kube-scheduler-izj6cdqfqw4o4o9tc0q44rz 1/1 Running 1 2m43skube-system kube-scheduler-izj6cdqfqw4o4o9tc0q44sz 1/1 Running 0 2m54skube-system kube-scheduler-izj6cdqfqw4o4o9tc0q44tz 1/1 Running 0 61skube-system kube-sealyun-lvscare-izj6cdqfqw4o4o9tc0q44uz 1/1 Running 0 86s
清理
sealos clean all
增加master
sealos join --master 192.168.0.6 --master 192.168.0.7sealos join --master 192.168.0.6-192.168.0.9 # 或者多个连续IP
增加node
sealos join --node 192.168.0.6 --node 192.168.0.7sealos join --node 192.168.0.6-192.168.0.9 # 或者多个连续IP
安装dashboard,kuboard, ingress
诸如dashboard,prometheus,ingress等等都称之为APP
所有APP都可使用类似 sealos install --pkg-url dashboard.tar
的方式安装
为什么不直接kubectl apply? 因为我们把镜像与配置文件和一些脚本都放入tar包中来保障一致性,并可以在没有镜像仓库的情况下帮用户导入镜像
还有就是很多情况下不可避免的要在执行完yaml之后执行一些命令,如安装完dashboard获取token这些
Dashboard
使用上述命令安装完dashboard后日志中会输出token,登录页面时需要使用.https://你的master地址:32000 chrome访问不了就用火狐
或者使用此命令获取token
一直苦于Kubeadm安装k8s的童鞋们,终于有福气了。小编也是趁热刚刚部署了一套单节点的k8s环境,并安装了dashboard与kuboard 全程在 “丝滑”不过了。
Kuboard访问
官方地址:https://sealyun.com/
github:https://github.com/fanux/sealos