使用 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
验证集群状态:#
输出节点信息后,说明集群部署成功。Sealos 还支持集群升级、卸载、节点扩缩容等功能,非常适合 DevOps 场景使用。