What is Sealos?
Sealos
It is a simple, clean and lightweight Kubernetes
cluster deployment tool developed by the Go language , which Sealos
can well support the deployment of highly available Kubernetes
clusters in a production environment .
Sealos advantage
99 years certificate
Does not rely on ansible haproxy keepalived, a binary tool, 0 dependencies
Offline installation, different versions of kubernetes can download the resource packages corresponding to different versions. The offline package contains all the binary file configuration files and mirrors.
High-availability localLB implemented through ipvs, takes up less resources, is stable and reliable, and is similar to the implementation of kube-proxy
Almost compatible with all environments that support systemd x86_64 architecture
Easily add/delete cluster nodes
Thousands of users use sealos in the online environment, which is stable and reliable
The resource pack is placed on Alibaba Cloud OSS, so you don’t have to worry about network speed anymore
APPs such as dashboard ingress prometheus are also packaged offline and installed with one click
premise
Install and start docker, high version offline package comes with docker, if docker is not installed, it will be installed automatically
Download the kubernetes offline installation package.
Download the latest version of sealos.
Be sure to synchronize the server time
The host name cannot be repeated
The master node CPU must be 2C or more
Please use sealos 3.2.0 or above
Installation tutorial
Multi-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
Or single master and multiple nodes:
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
Specific detailed parameters execute sealos init --help
Check if the installation is normal:
[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
Clean up
sealos clean all
Increase master
sealos join --master 192.168.0.6 --master 192.168.0.7 sealos join --master 192.168.0.6-192.168.0.9 # or multiple consecutive IP
Increase node
sealos join --node 192.168.0.6 --node 192.168.0.7 sealos join --node 192.168.0.6-192.168.0.9 # or multiple consecutive IP
Cheap dashboard, kuboard, ingress
Such as dashboard, prometheus, ingress, etc. are called APP
All apps can be sealos install --pkg-url dashboard.tar
installed in a similar way
Why not apply kubectl directly? Because we put the image, configuration files and some scripts into the tar package to ensure consistency, and can help users import the image without a mirror warehouse
Also, in many cases, it is inevitable to execute some commands after executing yaml, such as obtaining token after installing dashboard.
Dashboard
After installing the dashboard using the above command, the token will be output in the log, which needs to be used when logging in to the page. https://your master address: 32000 chrome can’t access it, use Firefox
Or use this command to get token
The children's shoes who have been suffering from installing k8s on Kubeadm are finally blessed. The editor also just deployed a single-node k8s environment while it was hot, and installed the dashboard and kuboard. The whole process was "silky".
Kuboard access
Official address: https://sealyun.com/
github:https://github.com/fanux/sealos