sealos部署2-集群部署

官网文档:https://www.sealyun.com/zh-Hans/docs/getting-started/customize-cluster
官网版本:https://github.com/labring/sealos/releases/tag/v4.1.7

1 前置准备

以下是一些基本的安装要求:

  • 每个集群节点应该有不同的主机名。 主机名不要带下划线。
  • 所有节点的时间同步。
  • 在 Kubernetes 集群的第一个节点上运行sealos run命令,目前集群外的节点不支持集群安装。
  • 建议使用干净的操作系统来创建集群。不要自己装 Docker。
  • 支持大多数 Linux 发行版,例如:Ubuntu CentOS Rocky linux。
  • 支持 DockerHub 中支持的 Kubernetes 版本。
  • 支持使用 containerd 作为容器运行时。
  • 在公有云上请使用私有 IP。

1.1 服务器配置

3台2C4G 50G硬盘
hostname名称:master01 master02 master03

1.2 服务器名称+时区同步

##hostnamectl 
hostnamectl set-hostname master02
hostname
timedatectl set-timezone Asia/Shanghai &&  ntpdate ntp1.aliyun.com
yum install -y ntpdate
ntpdate ntp1.aliyun.com

2 部署过程

2.1 sealos工具部署amd64下载安装包(国内可能下载较慢)

$ wget https://github.com/labring/sealos/releases/download/v4.1.7/sealos_4.1.7_linux_amd64.tar.gz \
   && tar zxvf sealos_4.1.7_linux_amd64.tar.gz sealos && chmod +x sealos && mv sealos /usr/bin

2.2 编辑clusterfile文件安装集群(2种方式)

第一种输出为 Clusterfile
如果ssh端口非22就在IP后面跟:端口号

sealos gen labring/kubernetes:v1.25.0 labring/helm:v3.8.2 labring/calico:v3.24.1 \
   --masters IP1:22222,IP2:22222,IP3:22222 \
   --nodes IP4:22222,IP5:22222,IP6:22222 --passwd  我是服务器密码 > Clusterfile

第二种直接编辑文件

cat > Clusterfile <<'EOF'
apiVersion: apps.sealos.io/v1beta1
kind: Cluster
metadata:
  creationTimestamp: null
  name: default
spec:
  hosts:
    - ips:
        - 192.168.0.2:22
        - 192.168.0.3:22
        - 192.168.0.4:22
      roles:
        - master
        - amd64
    - ips:
        - 192.168.0.5:22
        - 192.168.0.6:22
        - 192.168.0.7:22
      roles:
        - node
        - amd64
  image:
    - labring/kubernetes:v1.25.0
    - labring/helm:v3.8.2
    - labring/calico:v3.24.1
  ssh:
    passwd: fHmQoY1w81C7no8t
    pk: /root/.ssh/id_rsa
    port: 22
    user: root
status: {}
---
apiVersion: kubeadm.k8s.io/v1beta2
kind: ClusterConfiguration
networking:
  podSubnet: 10.160.0.0/12
---
apiVersion: apps.sealos.io/v1beta1
kind: Config
metadata:
  name: calico
spec:
  path: charts/calico/values.yaml
  strategy: merge
  data: |
    installation:
      enabled: true
      kubernetesProvider: ""
      calicoNetwork:
        ipPools:
        - blockSize: 26
          cidr: 10.160.0.0/12
          encapsulation: IPIP
          natOutgoing: Enabled
          nodeSelector: all()
        nodeAddressAutodetectionV4:
          interface: "eth.*|en.*"
EOF

3 运行

sealos apply -f Clusterfile 

启动集群。集群运行成功后会把 Clusterfile 保存到 .sealos/default/Clusterfile 文件中,可以修改其中字段来重新 apply 对集群进行变更。

kubeadm config print init-defaults 

命令来打印 kubeadm 配置。

4 sealos常用命令

4.1 增加 node 节点:

sealos add --nodes 192.168.64.21,192.168.64.19 

4.2 增加 master 节点:

sealos add --masters 192.168.64.21,192.168.64.19 

删除节点

4.3 删除 node 节点:

sealos delete --nodes 192.168.64.21,192.168.64.19 

4.4 删除 master 节点:

sealos delete --masters 192.168.64.21,192.168.64.19 

4.5 清理集群

sealos reset