Skip to content

Latest commit

 

History

History
160 lines (117 loc) · 6.71 KB

README_en.md

File metadata and controls

160 lines (117 loc) · 6.71 KB

Awesome Build Status

Introduction

Build a production kubernetes HA cluster.

  • Every node config a ipvs proxy for masters LB, so we needn't haproxy or keepalived any more.
  • Then run a lvscare as a staic pod to check apiserver is aviliable. /etc/kubernetes/manifests/sealyun-lvscare.yaml
  • If any master is down, lvscare will remove the ipvs realserver, when master recover it will add it back.
  • Sealos will send package and apply install commands, so we needn't ansible.

✨ Supported Environment

Linux Distributions, CPU Architecture

  • Debian 9+, x86_64/ arm64
  • Ubuntu 16.04, 18.04, 20.04 , x86_64/ arm64
  • Centos/RHEL 7.6+, x86_64/ arm64
  • 99% systemd manage linux system, x86_64/ arm64
  • Kylin arm64

kubernetes Versions

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

Looking for more supported versions, sealyun.com. sealos is currently supported the latest k8s 1.22+

Requirements and Recommendations

  • Minimum resource requirements

    • 2 vCpu
    • 4G RAM
    • 40G+ Storage
  • OS requirements

    • SSH can access to all nodes.
    • hostname is unique, and satisfied kubernetes requirements.
    • Time synchronization for all nodes.
    • if network card has a stranger name, change it to (eth.|en.|em.*).
    • kubernetes1.20+, use containerd for default cri. user should not to install containerd or docker-ce. sealos will do it.
    • kubernetes1.19-, use docker for default cri. user should not to install docker-ce. sealos will do it for you.
  • Networking and DNS requirements:

    • Make sure the DNS address in /etc/resolv.conf is available. Otherwise, it may cause some issues of DNS in cluster.
    • if you use aliyun/huawei cloud to deploy kubernetes. default pod cidr is conflict with dns cidr, we recommend you install kubernetes init flag to add --podcidr to avoid this problem.
    • sealos default to disable firewalld, It's recommended that you turn off the firewall. if you want to use firewalld , remember to allow kubernetes port traffic.
  • Kernel requirements:

    • When cni components choose cilium, the kernel version must not be lower than 5.4

🚀 Quick Start

Environmental information

Hostname IP Address
master0 192.168.0.2
master1 192.168.0.3
master2 192.168.0.4
node0 192.168.0.5

Server password:123456

kubernetes .0, the version is not recommended for production environment!!!

Just prepare the server and execute the following command on any server

# download and install sealos, sealos is a binary tool of golang, just download and copy directly to the bin directory, the release page can also be downloaded
$ wget -c https://sealyun-home.oss-cn-beijing.aliyuncs.com/sealos/latest/sealos && \
    chmod +x sealos && mv sealos /usr/bin

# download offline resource pack
$ wget -c https://sealyun.oss-cn-beijing.aliyuncs.com/05a3db657821277f5f3b92d834bbaf98-v1.22.0/kube1.22.0.tar.gz

# Install a three-master kubernetes cluster
$ sealos init --passwd '123456' \
	--master 192.168.0.2  --master 192.168.0.3  --master 192.168.0.4  \
	--node 192.168.0.5 \
	--pkg-url /root/kube1.22.0.tar.gz \
	--version v1.22.0

Parameter meaning

parameter meaning example
passwd server password 123456
master k8s master IP Address 192.168.0.2
node k8s node IP Address 192.168.0.3
pkg-url offline resource package address, support downloading to local or a remote address /root/kube1.22.0.tar.gz
version Resource pack Corresponding version v1.22.0

add 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 IPs

add 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 IPs

delete the specified master

🐳 → sealos clean --master 192.168.0.6 --master 192.168.0.7
🐳 → sealos clean --master 192.168.0.6-192.168.0.9  # or multiple consecutive IPs

Delete the specified node

🐳 → sealos clean --node 192.168.0.6 --node 192.168.0.7
🐳 → sealos clean --node 192.168.0.6-192.168.0.9  # or multiple consecutive IPs

clean up the cluster

🐳 → sealos clean --all

✅ Feature

  • Support ARM version offline package, v1.20 version offline package supports containerd integration, completely abandon docker
  • 99 years certificate, support cluster backup and upgrade
  • Does not rely on ansible haproxy keepalived, a binary tool, 0 dependencies
  • Offline installation, different versions of kubernetes download corresponding to different versions Resource pack, Offline package contains all binary files configuration files and images
  • High-availability local LIB implemented through ipvs, which 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 and 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
  • dashboard ingress prometheus apps offline packaging, a key installation

📊 Stats

Alt

Star History

Star History Chart

简体中文

More offline packages