最丝滑的k8s部署工具Sealos,你说香不香?

什么是 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




猜你喜欢

转载自blog.51cto.com/15127513/2657970