使用 Sealos 快速部署 Kubernetes 集群

Sealos 是一个开源的 Kubernetes 集群部署工具,支持离线安装、镜像管理以及多集群管理。相比传统的部署方式,Sealos 能够在数分钟内完成 K8s 集群的搭建,适合开发测试或中小型生产环境使用。

在部署之前,需准备至少一台已安装 Linux(推荐 Ubuntu 20.04)的主机,并安装好 Docker。接着下载 Sealos 的发行版:

1. 安装sealos

1
curl -sfL https://raw.githubusercontent.com/labring/sealos/main/scripts/install.sh | sh

安装完成后,使用 sealos version 确认是否成功安装。

Sealos 使用集群镜像(Cluster Image)来快速拉起完整的 K8s 集群。我们可以使用官方预构建的集群镜像,例如:

2. 生成sealos配置文件

1
2
1.生成config.yaml,在此文件修改pod-network以及service-network地址
sealos gen registry.cn-shanghai.aliyuncs.com/labring/kubernetes-docker:v1.28.0 registry.cn-shanghai.aliyuncs.com/labring/helm:v3.9.4 registry.cn-shanghai.aliyuncs.com/labring/cilium:v1.13.4 > config.yaml

这个镜像包含了 Kubernetes 组件以及必要的依赖,例如 containerd 和 CNI 插件。

部署单节点集群非常简单,只需一条命令:

3. 部署单节点集群

1
sealos apply -f config.yaml

4. 生成自签名证书

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
创建openssl.cnf 
[req]
distinguished_name = req_distinguished_name
x509_extensions = v3_req
prompt = no
default_bits = 2048

[req_distinguished_name]
C = CN
ST = Beijing
L = Beijing
O = oslet
OU = oslet
CN = *.oslet.io  # 此处为 Common Name

[v3_req]
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid,issuer
basicConstraints = CA:FALSE              # 非 CA 证书
keyUsage = digitalSignature, keyEncipherment  # 关键权限
extendedKeyUsage = serverAuth, clientAuth     # 扩展用途
subjectAltName = @alt_names

[alt_names]
DNS.1 = *.oslet.io    # 域名形式的 SAN
IP.1 = 172.20.1.200       # IP 形式的 SAN(如需要)

生成证书与私钥

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
生成证书和私钥
# 生成私钥(无密码,生产环境建议使用密码)
openssl genpkey -algorithm RSA -out registry.key

# 生成自签名证书(包含 SAN)
openssl req -x509 -new -key registry.key -out registry.crt -days 3650 -config openssl.cnf 

将证书添加到系统 CA 信任库(以 Ubuntu 为例)
sudo cp registry.crt /usr/local/share/ca-certificates/
sudo update-ca-certificates


搭建nexus的镜像仓库,用于自建的镜像拉取与推送

#### 5. 测试自签名证书
测试https访问
# 使用 curl 测试(忽略证书验证)
curl -k https://registry.oslet.io/v2/_catalog

# 严格验证证书(需将证书添加到系统信任库)
curl --cacert registry.crt https://registry.oslet.io/v2/_catalog

6. 开发环境镜像拉取认证创建

1
2
3
4
5
6
secret:
kubectl -n dev create secret docker-registry imgpull-secret \
  --docker-server=https://dev-repo.oslet.io \
  --docker-username=docker_user_01 \
  --docker-password=repo_passwd_01 \
  --docker-email=docker_user_01@oslet.io

7. 访问

1
2
3
sudo nano /etc/hosts
新增如下配置
118.118.118.118 dev-k8sui.oslet.io dev-repo.oslet.io dev-log.oslet.io dev-ci.oslet.io dev-grafana.oslet.io dev-es.oslet.io dev-repomgt.oslet.io dev-emqx.oslet.io dev-nacos.oslet.io dev-mqmgt.oslet.io dev-pydemo.oslet.io dev-pyroscope.oslet.io dev-sql.oslet.io

若希望部署多节点集群,只需通过参数指定主机 IP 和 SSH 信息即可。Sealos 会自动分发文件并完成配置。

8. 完成部署后,可使用 kubectl 验证集群状态:

1
kubectl get nodes

输出节点信息后,说明集群部署成功。Sealos 还支持集群升级、卸载、节点扩缩容等功能,非常适合 DevOps 场景使用。