80/TCP 5m36s
+
+$ curl 10.64.204.173
+
+
+
+Welcome to nginx!
+
+
+
+Welcome to nginx!
+If you see this page, the nginx web server is successfully installed and
+working. Further configuration is required.
+
+For online documentation and support please refer to
+nginx.org.
+Commercial support is available at
+nginx.com.
+
+Thank you for using nginx.
+
+
+```
+
+④ 如果你想把 Nginx 暴露到外网,并通过外网域名进行访问,还需要创建一个 Ingress 资源。先创建一个部署清单:
+
+```yaml
+# ingress.yaml
+apiVersion: networking.k8s.io/v1
+kind: Ingress
+metadata:
+ annotations:
+ kubernetes.io/ingress.class: nginx
+ nginx.ingress.kubernetes.io/backend-protocol: HTTP
+ nginx.ingress.kubernetes.io/client-body-buffer-size: 64k
+ nginx.ingress.kubernetes.io/proxy-body-size: 32m
+ nginx.ingress.kubernetes.io/proxy-buffer-size: 64k
+ nginx.ingress.kubernetes.io/server-snippet: |
+ client_header_buffer_size 64k;
+ large_client_header_buffers 4 128k;
+ nginx.ingress.kubernetes.io/ssl-redirect: "false"
+ name: nginx
+spec:
+ rules:
+ - host: nginx.cloud.sealos.run
+ http:
+ paths:
+ - backend:
+ service:
+ name: nginx
+ port:
+ number: 80
+ path: /
+ pathType: Prefix
+ tls:
+ - hosts:
+ - nginx.cloud.sealos.run
+ secretName: wildcard-cloud-sealos-io-cert
+```
+
+⑤ 再执行以下命令通过部署清单创建 Ingress 资源:
+
+```bash
+$ kubectl apply -f ingress.yaml
+```
+
+⑥ 测试是否能通过外网域名正常访问 Nginx:
+
+![](./images/nginx.png)
\ No newline at end of file
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/QA.md b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/QA.md
new file mode 100644
index 00000000000..97aab794c1b
--- /dev/null
+++ b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/QA.md
@@ -0,0 +1,224 @@
+---
+sidebar_position: 1
+---
+
+# 常见问题
+
+使用Sealos时,您可能会遇到一些问题。以下是一些常见问题的答案和解决方法。
+
+## 镜像构建问题
+
+### Q1: 在构建阶段如何设置代理服务?
+
+在执行构建命令时,可以通过设置HTTP_PROXY环境变量来配置代理服务。
+
+```shell
+HTTP_PROXY=socket5://127.0.0.1:7890 sealos build xxxxx
+```
+
+### Q2:如何启用buildah的调试日志?
+
+若需要查看buildah的调试日志,可以通过设定`BUILDAH_LOG_LEVEL`环境变量实现。
+
+```shell
+BUILDAH_LOG_LEVEL=debug sealos images
+```
+
+### Q3:如何在Pod中执行Sealos构建?
+
+若在Pod中执行Sealos构建,请按以下步骤操作:
+
+1. 在Pod中构建镜像,可用以下YAML配置创建Deployment。
+
+```yaml
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ labels:
+ app: sealoscli
+ name: sealoscli
+spec:
+ replicas: 1
+ selector:
+ matchLabels:
+ app: sealoscli
+ strategy: {}
+ template:
+ metadata:
+ labels:
+ app: sealoscli
+ spec:
+ containers:
+ - image: #用你的sealos镜像替换
+ name: sealoscli
+ stdin: true
+ stdinOnce: true
+ securityContext:
+ privileged: true
+```
+
+2. 创建Dockerfile。以下是一个例子,根据需要进行修改。
+
+```dockerfile
+FROM bitnami/minideb:buster
+
+ARG TARGETOS
+ARG TARGETARCH
+
+LABEL from=bitnami/minideb:buster platform=rootcloud team=oam tag=buster name=base
+
+RUN sed -i "s@http://deb.debian.org@http://mirrors.aliyun.com@g" /etc/apt/sources.list && sed -i "s@http://security.debian.org@http://mirrors.aliyun.com/debian-security@g" /etc/apt/sources.list
+RUN install_packages curl iputils-ping net-tools telnet procps vim wget jq
+
+ENV LANG=C.UTF-8
+ENV LANGUAGE=C.UTF-8
+ENV LC_ALL=C.UTF-8
+ENV TZ=Asia/Shanghai
+```
+
+3. 在Pod中执行构建命令。
+
+```shell
+sealos build --arch arm64 --build-arg TARGETOS=linux --build-arg TARGETARCH=arm64 -t test -f Dockerfile .
+```
+
+### Q4:如何使用其他构建工具构建集群镜像?
+
+如果您想使用 Docker 或 Podman 等其他容器工具来构建集群镜像,您可以借助 [sreg](https://github.com/labring/sreg) 来缓存镜像。
+
+以下是操作步骤:
+
+1. 安装 sreg:
+ ```shell
+ wget https://github.com/labring/sreg/releases/download/v0.1.1/sreg_0.1.1_linux_amd64.tar.gz
+ tar -xzf sreg_0.1.1_linux_amd64.tar.gz sreg
+ mv sreg /usr/bin/
+ ```
+2. 缓存镜像:
+ ```shell
+ sreg save --registry-dir=registry .
+ ```
+3. 构建集群镜像:
+ ```shell
+ docker build -t xxxx -f Sealfile .
+ ```
+
+### Q5:执行Sealos构建时遇到“lgetxattr /var/lib/containers/storage/overlay/0c2afe770ec7870ad4639f18a1b50b3a84718f95c8907f3d54e14dbf0a01d50d/merged/dev/ptmx: no such device”错误?
+
+这个问题可能与`fuse-overlayfs`的版本有关。建议您从[这里](https://github.com/containers/fuse-overlayfs/releases)下载最新版本下载并替换`/bin/fuse-overlayfs`。
+
+## 运行时选择问题
+
+### Q1:如何选择Kubernetes运行时?
+
+Sealos会根据您选择的镜像决定使用哪种运行时。如果选择了kubernetes-docker镜像,Sealos将使用Docker作为运行时;如果选择了kubernetes-crio镜像,Sealos将使用CRI-O作为运行时。
+
+## 版本兼容性问题
+
+### Q1:报错:"Applied to cluster error: failed to init exec auth.sh failed exit status 127"?
+
+此问题常因您使用的sealos版本和镜像版本不匹配造成。请确认您的镜像版本和sealos的版本是匹配的。
+例如,若您正使用形如kubernetes:v1.xx.x的版本,可能需要升级sealos,特别是在使用较老版本的sealos,而sealos集群镜像则使用了最新版时。
+另一种解决方法是选择对应版本的sealos镜像。比如,如果您的sealos版本是4.1.3,那么集群镜像应选择形如kuberntes:v1.24.0-4.1.3的版本。
+确保镜像版本和sealos版本的匹配,可以帮助避免此类问题。
+
+### Q2: 如果您在集群中新增了其他域名,或者修改了 service 的 CIDR,并且在添加 master 时出现了错误
+
+为了解决这个问题,Sealos 团队在 4.2.0 版本进行了相应的修复。具体的修复内容和讨论可以在这个 pull request 中查看:https://github.com/labring/sealos/pull/2943 。
+
+所以,如果您遇到了这个问题,我们建议您升级到 Sealos 4.2.0 版本。更新后的版本应该能够正确处理这些变更,并且在添加 master 时不会出现错误。
+
+## 文件和目录位置问题
+
+### Q1:如何修改`/root/.sealos`默认目录的存储位置?
+
+若需修改默认的存储位置,可以设置SEALOS_RUNTIME_ROOT环境变量,然后运行sealos命令。建议您将这个环境变量设置为全局的,这样在其他命令或场景中也可以方便使用。
+
+```shell
+export SEALOS_RUNTIME_ROOT=/data/.sealos
+sealos run labring/kubernetes:v1.24.0
+```
+
+### Q2:如何修改`/var/lib/sealos`默认目录的存储位置?
+
+若需修改默认的存储位置,可以设置SEALOS_DATA_ROOT环境变量,然后运行sealos命令。同样,建议您将这个环境变量设置为全局的。
+
+```shell
+export SEALOS_DATA_ROOT=/data/sealos
+sealos run labring/kubernetes:v1.24.0
+```
+
+### Q3: 如何修改 Sealos 镜像数据和状态的存储路径?
+
+> 在使用 Sealos 集群时,可能需要改变默认的镜像数据存储路径和状态数据的存储路径。默认情况下,这些数据被存储在 `/etc/containers/storage.conf` 文件定义的位置。
+
+1. **查看当前存储配置**
+ 首先,我们可以使用下面的命令来查看当前的镜像存储配置:
+ ```
+ sealos images --debug
+ ```
+ 这个命令会打印出包含当前存储配置的文件,例如:
+ ```
+ 2023-06-07T16:27:02 debug using file /etc/containers/storage.conf as container storage config
+ REPOSITORY TAG IMAGE ID CREATED SIZE
+ ```
+2. **修改镜像数据存储路径**
+ 如果你希望更改镜像数据的存储路径,你可以编辑 `/etc/containers/storage.conf` 文件。在这个文件中,找到并修改 `graphroot` 字段设置为新的路径。例如:
+ ```
+ vim /etc/containers/storage.conf
+ ```
+ 在编辑器中,将 `graphroot` 字段的值修改为你希望的新路径。
+3. **修改状态数据存储路径**
+ 参考 Buildah 的设计,Sealos 同样提供了状态数据存储路径的设置。在同样的配置文件 `/etc/containers/storage.conf` 中,找到并修改 `runroot` 字段为新的路径。
+
+通过以上步骤,你可以将 Sealos 集群的镜像数据和状态数据保存到新的地址。每次运行 Sealos 命令时,它都将使用你在 `graphroot` 和 `runroot` 中设置的新路径来分别存储镜像数据和状态数据。
+
+### Q4:ssh传输文件时,如何禁止检查文件的md5?
+
+在网络环境良好时,禁用md5检查可以极大提升传输速度。若不想在ssh传输文件时检查文件的md5,可将SEALOS_SCP_CHECKSUM环境变量设置为false以禁用此功能。建议将此环境变量设为全局,以便在多场景下使用。
+
+```shell
+export SEALOS_SCP_CHECKSUM=false
+sealos run labring/kubernetes:v1.24.0
+```
+
+
+## 其他问题
+
+### Q1:image-cri-shim导致端口大量占用,耗尽服务器socket资源?
+
+出现此问题时,可通过以下命令解决:
+
+```shell
+wget https://github.com/labring/sealos/releases/download/v4.2.0/sealos_4.2.0_linux_amd64.tar.gz && tar xvf sealos_4.2.0_linux_amd64.tar.gz image-cri-shim
+sealos exec -r master,node "systemctl stop image-cri-shim"
+sealos scp "./image-cri-shim" "/usr/bin/image-cri-shim"
+sealos exec -r master,node "systemctl start image-cri-shim"
+sealos exec -r master,node "image-cri-shim -v"
+```
+
+### Q2:报错"[ERROR FileAvailable--etc-kubernetes-kubelet.conf]: /etc/kubernetes/kubelet.conf already exists"
+
+此问题可通过升级至Sealos 4.1.7+来解决。
+
+### Q3:报错:"function "semverCompare" not defined"
+
+此问题可通过升级至Sealos 4.1.4+来解决。
+
+我们希望这些解答能帮助您解决在使用Sealos过程中遇到的问题。如果还有其他问题,欢迎随时提问。
+
+## 使用技巧
+
+### Q1: 如何清理 Sealos 集群的缓存文件
+
+> 在使用 Sealos 集群时,安装过程中可能会在本地存储一些缓存文件,这些文件会重复占用磁盘空间。那么,如何清理这些缓存文件以释放磁盘空间呢?
+
+我们提供了一个非常简单的解决方案,只需要执行以下命令:
+
+```shell
+sealos unmount --all && sealos rm --all
+```
+这个命令的作用是移除所有缓存的 Sealos 集群镜像文件,以及所有的相关挂载点。--all 选项表示处理所有相关文件和挂载点。
+执行这个命令后,所有 Sealos 集群的缓存文件就会被清理掉,从而释放出被它们占用的磁盘空间。
+这是一个非常有用的技巧,特别是对于在磁盘空间有限的环境中运行 Sealos 集群的用户来说。在你感觉磁盘空间被占用过多时,不妨尝试执行这个命令来释放一些空间。
+请注意,这个命令只会删除缓存文件,不会影响已经运行的集群。也就是说,执行这个命令后,你的集群仍然可以正常运行。
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/advanced-guide/build-image-using-registry-sync.md b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/advanced-guide/build-image-using-registry-sync.md
new file mode 100644
index 00000000000..12d630e1834
--- /dev/null
+++ b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/advanced-guide/build-image-using-registry-sync.md
@@ -0,0 +1,85 @@
+---
+sidebar_position: 2
+---
+
+# 镜像构建改进指南
+
+## 深入理解Sealos镜像构建
+
+为了了解Sealos镜像构建的背后所做的工作,我们将首先揭示它在底层究竟进行了哪些操作。以下是一个直观的架构图:
+
+![](images/build.png)
+
+Sealos在构建镜像过程中涵盖了以下几个核心步骤:
+
+- **缓存镜像**:解析构建执行时的工作目录(在这里我们称之为"context"目录),将缓存镜像保存到registry结构并存储在./registry目录下。
+- **构建镜像**:在context目录中进行镜像构建,生成新的镜像。(请注意,构建镜像时需要将./registry目录进行复制。)
+
+## 提升镜像构建效率
+
+当前项目中,我们借用了`github.com/distribution/distribution`的源代码,在执行缓存镜像的过程中直接调用了registry的sdk并启动了registry-proxy功能。借助于镜像仓库的缓存能力,我们将镜像缓存并存入context/registry目录。
+
+这个过程的关键就在于调用了distribution仓库的方法进行保存镜像:
+
+- 启动 registry-proxy 功能。
+- 保存镜像摘要及索引相关数据(通过调用saveManifestAndGetDigest方法)。
+- 保存镜像文件数据(通过调用saveBlobs方法)。
+
+这种方法确实具有一些显著的优点:
+
+- 轻量化:无需依赖其他组件即可保存镜像。
+- 自由控制:可以自由控制保存逻辑,无需依赖第三方组件。
+
+然而,我们也注意到了一些潜在的问题:
+
+- 对新手来说,代码理解难度较高,不易清晰了解这里的逻辑。
+- 无法缓存使用token认证的方式。
+- 需要依赖一些临时存储空间,对空间有要求。
+
+考虑到这些问题,我们决定尝试一种新的模式:在本地启动一个轻量的registry,使用`skopeo copy`的sdk进行代码复用。这一改变直接解决了之前所有的问题。
+
+![](images/registry-build.png)
+
+**所以,新的构建方式 ✨镜像仓库同步✨ 优雅登场 🎉🎉**
+
+官方仓库中的[#3154](https://github.com/labring/sealos/pull/3154)这个PR已经完成了这个功能的实现。目前,Sealos支持这两种方式进行镜像构建。接下来,我会介绍如何启动新功能(如果新功能表现稳定,我们可能会废弃旧的构建方式)。
+
+## 如何启动新功能
+
+> Sealos v4.3.0 以上版本默认支持此功能。
+
+启动新功能非常简单,只需在你构建镜像之前添加一个环境变量即可。这个功能同时支持build和merge两个命令。
+
+```shell
+SEALOS_REGISTRY_SYNC_EXPERIMENTAL=true sealos build -t test .
+```
+
+以下是执行上述命令后的预期输出:
+
+```tex
+SEALOS_REGISTRY_SYNC_EXPERIMENTAL=true sealos build -t test .
+Getting image source signatures
+Copying blob fee740108510 done
+Copying config f92f3ea6e4 done
+Writing manifest to image destination
+Storing signatures
+Getting image source signatures
+Copying blob 08409d417260 done
+Copying config 44dd6f2230 done
+Writing manifest to image destination
+Storing signatures
+2023-06-01T13:16:07 info saving images busybox, alpine
+STEP 1/2: FROM scratch
+STEP 2/2: COPY registry ./registry
+COMMIT test
+Getting image source signatures
+Copying blob 13ab73c881c8 done
+Copying config 4e22d16b36 done
+Writing manifest to image destination
+Storing signatures
+--> 4e22d16b366
+Successfully tagged localhost/test:latest
+4e22d16b366e9fec25641522a74cbd73a7db67dc0516b8f8e00200c4d0551592
+```
+
+希望以上内容可以帮助您更好地理解并使用Sealos的新镜像构建方式。
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/advanced-guide/dual-stack-cluster.md b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/advanced-guide/dual-stack-cluster.md
new file mode 100644
index 00000000000..1b4f1b3d016
--- /dev/null
+++ b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/advanced-guide/dual-stack-cluster.md
@@ -0,0 +1,792 @@
+---
+sidebar_position: 5
+
+---
+
+# 使用calico安装双栈集群
+
+1. 前置条件
+ - sealos 版本 >=4.3.0
+ - 每个主机都有一个IPv4主机和IPv6地址,并且可以互通通过IPv4和IPv6地址
+ - calico采用vxlan模式, 内核版本必须大于 3.12。 可以参考[官方文档](https://github.com/cyclinder/kubespray/blob/042c960c6617f8a360a8281464ff63f99ee2471c/docs/calico.md)
+2. 运行 `sealos gen` 生成一个 Clusterfile,例如:
+
+```shell
+$ sealos gen labring/kubernetes:v1.26.1 labring/helm:v3.10.3 labring/calico:v3.25.0 --masters 192.168.0.10 --nodes 192.168.0.11 --passwd "xxx" >Clusterfile
+```
+
+注意:labring/helm 应当在 labring/calico 之前。
+
+生成的 Clusterfile 如下:
+
+
+Clusterfile
+
+
+```yaml
+apiVersion: apps.sealos.io/v1beta1
+kind: Cluster
+metadata:
+ creationTimestamp: null
+ name: default
+spec:
+ hosts:
+ - ips:
+ - 192.168.0.10:22
+ roles:
+ - master
+ - amd64
+ - ips:
+ - 192.168.0.11:22
+ roles:
+ - node
+ - amd64
+ image:
+ - labring/kubernetes:v1.26.1
+ - labring/helm:v3.10.3
+ - labring/calico:v3.25.0
+ ssh:
+ passwd: xxx
+ pk: /root/.ssh/id_rsa
+ port: 22
+status: {}
+
+---
+BootstrapTokens: null
+CertificateKey: ""
+LocalAPIEndpoint:
+ AdvertiseAddress: 192.168.0.10
+ BindPort: 6443
+NodeRegistration:
+ CRISocket: /run/containerd/containerd.sock
+ IgnorePreflightErrors: null
+ KubeletExtraArgs: null
+ Name: ""
+ Taints: null
+Patches: null
+SkipPhases: null
+apiVersion: kubeadm.k8s.io/v1beta3
+kind: InitConfiguration
+
+---
+APIServer:
+ CertSANs:
+ - 127.0.0.1
+ - apiserver.cluster.local
+ - 10.103.97.2
+ - 192.168.0.10
+ ExtraArgs:
+ audit-log-format: json
+ audit-log-maxage: "7"
+ audit-log-maxbackup: "10"
+ audit-log-maxsize: "100"
+ audit-log-path: /var/log/kubernetes/audit.log
+ audit-policy-file: /etc/kubernetes/audit-policy.yml
+ enable-aggregator-routing: "true"
+ feature-gates: ""
+ ExtraVolumes:
+ - HostPath: /etc/kubernetes
+ MountPath: /etc/kubernetes
+ Name: audit
+ PathType: DirectoryOrCreate
+ ReadOnly: false
+ - HostPath: /var/log/kubernetes
+ MountPath: /var/log/kubernetes
+ Name: audit-log
+ PathType: DirectoryOrCreate
+ ReadOnly: false
+ - HostPath: /etc/localtime
+ MountPath: /etc/localtime
+ Name: localtime
+ PathType: File
+ ReadOnly: true
+ - HostPath: /etc/kubernetes
+ MountPath: /etc/kubernetes
+ Name: audit
+ PathType: DirectoryOrCreate
+ ReadOnly: false
+ - HostPath: /var/log/kubernetes
+ MountPath: /var/log/kubernetes
+ Name: audit-log
+ PathType: DirectoryOrCreate
+ ReadOnly: false
+ - HostPath: /etc/localtime
+ MountPath: /etc/localtime
+ Name: localtime
+ PathType: File
+ ReadOnly: true
+ TimeoutForControlPlane: null
+CIImageRepository: ""
+CIKubernetesVersion: ""
+CertificatesDir: ""
+ClusterName: ""
+ComponentConfigs: null
+ControlPlaneEndpoint: apiserver.cluster.local:6443
+ControllerManager:
+ ExtraArgs:
+ bind-address: 0.0.0.0
+ cluster-signing-duration: 876000h
+ feature-gates: ""
+ ExtraVolumes:
+ - HostPath: /etc/localtime
+ MountPath: /etc/localtime
+ Name: localtime
+ PathType: File
+ ReadOnly: true
+ - HostPath: /etc/localtime
+ MountPath: /etc/localtime
+ Name: localtime
+ PathType: File
+ ReadOnly: true
+DNS:
+ ImageRepository: ""
+ ImageTag: ""
+ Type: ""
+Etcd:
+ External: null
+ Local:
+ DataDir: ""
+ ExtraArgs:
+ listen-metrics-urls: http://0.0.0.0:2381
+ ImageRepository: ""
+ ImageTag: ""
+ PeerCertSANs: null
+ ServerCertSANs: null
+FeatureGates: null
+ImageRepository: ""
+KubernetesVersion: v1.26.1
+Networking:
+ DNSDomain: ""
+ PodSubnet: 100.64.0.0/10
+ ServiceSubnet: 10.96.0.0/22
+Scheduler:
+ ExtraArgs:
+ bind-address: 0.0.0.0
+ feature-gates: ""
+ ExtraVolumes:
+ - HostPath: /etc/localtime
+ MountPath: /etc/localtime
+ Name: localtime
+ PathType: File
+ ReadOnly: true
+ - HostPath: /etc/localtime
+ MountPath: /etc/localtime
+ Name: localtime
+ PathType: File
+ ReadOnly: true
+apiVersion: kubeadm.k8s.io/v1beta3
+kind: ClusterConfiguration
+
+---
+CACertPath: /etc/kubernetes/pki/ca.crt
+ControlPlane:
+ CertificateKey: ""
+ LocalAPIEndpoint:
+ AdvertiseAddress: ""
+ BindPort: 6443
+Discovery:
+ BootstrapToken: null
+ File: null
+ TLSBootstrapToken: ""
+ Timeout: 5m0s
+NodeRegistration:
+ CRISocket: /run/containerd/containerd.sock
+ IgnorePreflightErrors: null
+ KubeletExtraArgs: null
+ Name: ""
+ Taints: null
+Patches: null
+SkipPhases: null
+apiVersion: kubeadm.k8s.io/v1beta3
+kind: JoinConfiguration
+
+---
+apiVersion: kubeproxy.config.k8s.io/v1alpha1
+bindAddress: 0.0.0.0
+bindAddressHardFail: false
+clientConnection:
+ acceptContentTypes: ""
+ burst: 10
+ contentType: application/vnd.kubernetes.protobuf
+ kubeconfig: ""
+ qps: 5
+clusterCIDR: ""
+configSyncPeriod: 15m0s
+conntrack:
+ maxPerCore: 32768
+ min: 131072
+ tcpCloseWaitTimeout: 1h0m0s
+ tcpEstablishedTimeout: 24h0m0s
+detectLocal:
+ bridgeInterface: ""
+ interfaceNamePrefix: ""
+detectLocalMode: ""
+enableProfiling: false
+healthzBindAddress: 0.0.0.0:10256
+hostnameOverride: ""
+iptables:
+ masqueradeAll: false
+ masqueradeBit: 14
+ minSyncPeriod: 1s
+ syncPeriod: 30s
+ipvs:
+ excludeCIDRs:
+ - 10.103.97.2/32
+ minSyncPeriod: 0s
+ scheduler: ""
+ strictARP: false
+ syncPeriod: 30s
+ tcpFinTimeout: 0s
+ tcpTimeout: 0s
+ udpTimeout: 0s
+kind: KubeProxyConfiguration
+metricsBindAddress: 0.0.0.0:10249
+mode: ipvs
+nodePortAddresses: null
+oomScoreAdj: -999
+portRange: ""
+showHiddenMetricsForVersion: ""
+udpIdleTimeout: 250ms
+winkernel:
+ enableDSR: false
+ forwardHealthCheckVip: false
+ networkName: ""
+ rootHnsEndpointName: ""
+ sourceVip: ""
+
+---
+address: 0.0.0.0
+apiVersion: kubelet.config.k8s.io/v1beta1
+authentication:
+ anonymous:
+ enabled: false
+ webhook:
+ cacheTTL: 2m0s
+ enabled: true
+ x509:
+ clientCAFile: /etc/kubernetes/pki/ca.crt
+authorization:
+ mode: Webhook
+ webhook:
+ cacheAuthorizedTTL: 5m0s
+ cacheUnauthorizedTTL: 30s
+cgroupDriver: cgroupfs
+cgroupsPerQOS: true
+clusterDomain: cluster.local
+configMapAndSecretChangeDetectionStrategy: Watch
+containerLogMaxFiles: 5
+containerLogMaxSize: 10Mi
+contentType: application/vnd.kubernetes.protobuf
+cpuCFSQuota: true
+cpuCFSQuotaPeriod: 100ms
+cpuManagerPolicy: none
+cpuManagerReconcilePeriod: 10s
+enableControllerAttachDetach: true
+enableDebugFlagsHandler: true
+enableDebuggingHandlers: true
+enableProfilingHandler: true
+enableServer: true
+enableSystemLogHandler: true
+enforceNodeAllocatable:
+- pods
+- pods
+eventBurst: 10
+eventRecordQPS: 5
+evictionHard:
+ imagefs.available: 15%
+ memory.available: 100Mi
+ nodefs.available: 10%
+ nodefs.inodesFree: 5%
+evictionPressureTransitionPeriod: 5m0s
+failSwapOn: true
+fileCheckFrequency: 20s
+hairpinMode: promiscuous-bridge
+healthzBindAddress: 0.0.0.0
+healthzPort: 10248
+httpCheckFrequency: 20s
+imageGCHighThresholdPercent: 85
+imageGCLowThresholdPercent: 80
+imageMinimumGCAge: 2m0s
+iptablesDropBit: 15
+iptablesMasqueradeBit: 14
+kind: KubeletConfiguration
+kubeAPIBurst: 10
+kubeAPIQPS: 5
+localStorageCapacityIsolation: true
+logging:
+ flushFrequency: 5000000000
+ format: text
+ options:
+ json:
+ infoBufferSize: "0"
+ verbosity: 0
+makeIPTablesUtilChains: true
+maxOpenFiles: 1000000
+maxPods: 110
+memoryManagerPolicy: None
+memorySwap: {}
+memoryThrottlingFactor: 0.8
+nodeLeaseDurationSeconds: 40
+nodeStatusMaxImages: 50
+nodeStatusReportFrequency: 10s
+nodeStatusUpdateFrequency: 10s
+oomScoreAdj: -999
+podPidsLimit: -1
+port: 10250
+registerNode: true
+registryBurst: 10
+registryPullQPS: 5
+rotateCertificates: true
+runtimeRequestTimeout: 2m0s
+seccompDefault: false
+serializeImagePulls: true
+shutdownGracePeriod: 0s
+shutdownGracePeriodCriticalPods: 0s
+staticPodPath: /etc/kubernetes/manifests
+streamingConnectionIdleTimeout: 4h0m0s
+syncFrequency: 1m0s
+topologyManagerPolicy: none
+topologyManagerScope: container
+volumePluginDir: /usr/libexec/kubernetes/kubelet-plugins/volume/exec/
+volumeStatsAggPeriod: 1m0s
+```
+
+
+
+3. 生成 Clusterfile 后,编辑Clusterfile,然后添加IPv6 的 pod 和svc 的 CIDR 范围。这里使用fd85:ee78:d8a6:8607::1:0000/112、fd85:ee78:d8a6:8607::1000/116作为参考示例。主要修改以下信息。
+
+
+Clusterfile
+
+
+```yaml
+apiVersion: kubeadm.k8s.io/v1beta3
+kind: ClusterConfiguration
+Networking:
+ DNSDomain: ""
+ PodSubnet: 100.64.0.0/10,fd85:ee78:d8a6:8607::1:0000/112 #增加pod IPv6地址段
+ ServiceSubnet: 10.96.0.0/22,fd85:ee78:d8a6:8607::1000/116 #增加svc IPv6地址段
+APIServer:
+ CertSANs:
+ - 127.0.0.1
+ - apiserver.cluster.local
+ - 10.103.97.2
+ - 192.168.0.10
+ - 2001:db8::f816:3eff:fe8c:910a #增加控制节点的ipv6地址,如果你需要使用此IP访问apiserver
+ ExtraArgs:
+ service-cluster-ip-range: 10.96.0.0/22,fd85:ee78:d8a6:8607::1000/116 #增加svc IPv6地址段
+ControllerManager:
+ ExtraArgs:
+ node-cidr-mask-size-ipv6: 120 #默认为64
+ node-cidr-mask-size-ipv4: 24 #默认为24
+---
+apiVersion: kubeproxy.config.k8s.io/v1alpha1
+kind: KubeProxyConfiguration
+clusterCIDR: "100.64.0.0/10,fd85:ee78:d8a6:8607::1:0000/112" #增加pod IPv6地址段
+---
+# 添加Calico双栈配置
+apiVersion: apps.sealos.io/v1beta1
+kind: Config
+metadata:
+ name: calico
+spec:
+ path: charts/calico/values.yaml
+ strategy: merge
+ data: |
+ installation:
+ enabled: true
+ kubernetesProvider: ""
+ calicoNetwork:
+ bgp: Disabled
+ ipPools:
+ - blockSize: 22
+ cidr: 100.64.0.0/10
+ encapsulation: VXLAN
+ natOutgoing: Enabled
+ nodeSelector: all()
+ - blockSize: 122
+ cidr: fd85:ee78:d8a6:8607::1:0000/112 #增加pod IPv6地址段
+ encapsulation: VXLAN
+ natOutgoing: Enabled
+ nodeSelector: all()
+ nodeAddressAutodetectionV4:
+ interface: "eth.*|en.*|em.*"
+ nodeAddressAutodetectionV6:
+ interface: "eth.*|en.*|em.*"
+```
+
+
+
+最终的Clusterfile会是这样。
+
+
+Clusterfile
+
+
+```yaml
+apiVersion: apps.sealos.io/v1beta1
+kind: Cluster
+metadata:
+ creationTimestamp: null
+ name: default
+spec:
+ hosts:
+ - ips:
+ - 192.168.0.10:22
+ roles:
+ - master
+ - amd64
+ - ips:
+ - 192.168.0.11:22
+ roles:
+ - node
+ - amd64
+ image:
+ - labring/kubernetes:v1.26.1
+ - labring/helm:v3.10.3
+ - labring/calico:v3.25.0
+ ssh:
+ passwd: xxx
+ pk: /root/.ssh/id_rsa
+ port: 22
+status: {}
+
+---
+BootstrapTokens: null
+CertificateKey: ""
+LocalAPIEndpoint:
+ AdvertiseAddress: 192.168.0.10
+ BindPort: 6443
+NodeRegistration:
+ CRISocket: /run/containerd/containerd.sock
+ IgnorePreflightErrors: null
+ KubeletExtraArgs: null
+ Name: ""
+ Taints: null
+Patches: null
+SkipPhases: null
+apiVersion: kubeadm.k8s.io/v1beta3
+kind: InitConfiguration
+
+---
+APIServer:
+ CertSANs:
+ - 127.0.0.1
+ - apiserver.cluster.local
+ - 10.103.97.2
+ - 192.168.0.10
+ - 2001:db8::f816:3eff:fe8c:910a
+ ExtraArgs:
+ service-cluster-ip-range: 10.96.0.0/22,fd85:ee78:d8a6:8607::1000/116
+ audit-log-format: json
+ audit-log-maxage: "7"
+ audit-log-maxbackup: "10"
+ audit-log-maxsize: "100"
+ audit-log-path: /var/log/kubernetes/audit.log
+ audit-policy-file: /etc/kubernetes/audit-policy.yml
+ enable-aggregator-routing: "true"
+ feature-gates: ""
+ ExtraVolumes:
+ - HostPath: /etc/kubernetes
+ MountPath: /etc/kubernetes
+ Name: audit
+ PathType: DirectoryOrCreate
+ ReadOnly: false
+ - HostPath: /var/log/kubernetes
+ MountPath: /var/log/kubernetes
+ Name: audit-log
+ PathType: DirectoryOrCreate
+ ReadOnly: false
+ - HostPath: /etc/localtime
+ MountPath: /etc/localtime
+ Name: localtime
+ PathType: File
+ ReadOnly: true
+ - HostPath: /etc/kubernetes
+ MountPath: /etc/kubernetes
+ Name: audit
+ PathType: DirectoryOrCreate
+ ReadOnly: false
+ - HostPath: /var/log/kubernetes
+ MountPath: /var/log/kubernetes
+ Name: audit-log
+ PathType: DirectoryOrCreate
+ ReadOnly: false
+ - HostPath: /etc/localtime
+ MountPath: /etc/localtime
+ Name: localtime
+ PathType: File
+ ReadOnly: true
+ TimeoutForControlPlane: null
+CIImageRepository: ""
+CIKubernetesVersion: ""
+CertificatesDir: ""
+ClusterName: ""
+ComponentConfigs: null
+ControlPlaneEndpoint: apiserver.cluster.local:6443
+ControllerManager:
+ ExtraArgs:
+ node-cidr-mask-size-ipv6: 120
+ node-cidr-mask-size-ipv4: 24
+ bind-address: 0.0.0.0
+ cluster-signing-duration: 876000h
+ feature-gates: ""
+ ExtraVolumes:
+ - HostPath: /etc/localtime
+ MountPath: /etc/localtime
+ Name: localtime
+ PathType: File
+ ReadOnly: true
+ - HostPath: /etc/localtime
+ MountPath: /etc/localtime
+ Name: localtime
+ PathType: File
+ ReadOnly: true
+DNS:
+ ImageRepository: ""
+ ImageTag: ""
+ Type: ""
+Etcd:
+ External: null
+ Local:
+ DataDir: ""
+ ExtraArgs:
+ listen-metrics-urls: http://0.0.0.0:2381
+ ImageRepository: ""
+ ImageTag: ""
+ PeerCertSANs: null
+ ServerCertSANs: null
+FeatureGates: null
+ImageRepository: ""
+KubernetesVersion: v1.26.1
+Networking:
+ DNSDomain: ""
+ PodSubnet: 100.64.0.0/10,fd85:ee78:d8a6:8607::1:0000/112
+ ServiceSubnet: 10.96.0.0/22,fd85:ee78:d8a6:8607::1000/116
+Scheduler:
+ ExtraArgs:
+ bind-address: 0.0.0.0
+ feature-gates: ""
+ ExtraVolumes:
+ - HostPath: /etc/localtime
+ MountPath: /etc/localtime
+ Name: localtime
+ PathType: File
+ ReadOnly: true
+ - HostPath: /etc/localtime
+ MountPath: /etc/localtime
+ Name: localtime
+ PathType: File
+ ReadOnly: true
+apiVersion: kubeadm.k8s.io/v1beta3
+kind: ClusterConfiguration
+
+---
+CACertPath: /etc/kubernetes/pki/ca.crt
+ControlPlane:
+ CertificateKey: ""
+ LocalAPIEndpoint:
+ AdvertiseAddress: ""
+ BindPort: 6443
+Discovery:
+ BootstrapToken: null
+ File: null
+ TLSBootstrapToken: ""
+ Timeout: 5m0s
+NodeRegistration:
+ CRISocket: /run/containerd/containerd.sock
+ IgnorePreflightErrors: null
+ KubeletExtraArgs: null
+ Name: ""
+ Taints: null
+Patches: null
+SkipPhases: null
+apiVersion: kubeadm.k8s.io/v1beta3
+kind: JoinConfiguration
+
+---
+apiVersion: kubeproxy.config.k8s.io/v1alpha1
+bindAddress: 0.0.0.0
+bindAddressHardFail: false
+clientConnection:
+ acceptContentTypes: ""
+ burst: 10
+ contentType: application/vnd.kubernetes.protobuf
+ kubeconfig: ""
+ qps: 5
+clusterCIDR: ""
+configSyncPeriod: 15m0s
+conntrack:
+ maxPerCore: 32768
+ min: 131072
+ tcpCloseWaitTimeout: 1h0m0s
+ tcpEstablishedTimeout: 24h0m0s
+detectLocal:
+ bridgeInterface: ""
+ interfaceNamePrefix: ""
+detectLocalMode: ""
+enableProfiling: false
+healthzBindAddress: 0.0.0.0:10256
+hostnameOverride: ""
+iptables:
+ masqueradeAll: false
+ masqueradeBit: 14
+ minSyncPeriod: 1s
+ syncPeriod: 30s
+ipvs:
+ excludeCIDRs:
+ - 10.103.97.2/32
+ minSyncPeriod: 0s
+ scheduler: ""
+ strictARP: false
+ syncPeriod: 30s
+ tcpFinTimeout: 0s
+ tcpTimeout: 0s
+ udpTimeout: 0s
+kind: KubeProxyConfiguration
+clusterCIDR: "100.64.0.0/10,fd85:ee78:d8a6:8607::1:0000/112"
+metricsBindAddress: 0.0.0.0:10249
+mode: ipvs
+nodePortAddresses: null
+oomScoreAdj: -999
+portRange: ""
+showHiddenMetricsForVersion: ""
+udpIdleTimeout: 250ms
+winkernel:
+ enableDSR: false
+ forwardHealthCheckVip: false
+ networkName: ""
+ rootHnsEndpointName: ""
+ sourceVip: ""
+
+---
+address: 0.0.0.0
+apiVersion: kubelet.config.k8s.io/v1beta1
+authentication:
+ anonymous:
+ enabled: false
+ webhook:
+ cacheTTL: 2m0s
+ enabled: true
+ x509:
+ clientCAFile: /etc/kubernetes/pki/ca.crt
+authorization:
+ mode: Webhook
+ webhook:
+ cacheAuthorizedTTL: 5m0s
+ cacheUnauthorizedTTL: 30s
+cgroupDriver: cgroupfs
+cgroupsPerQOS: true
+clusterDomain: cluster.local
+configMapAndSecretChangeDetectionStrategy: Watch
+containerLogMaxFiles: 5
+containerLogMaxSize: 10Mi
+contentType: application/vnd.kubernetes.protobuf
+cpuCFSQuota: true
+cpuCFSQuotaPeriod: 100ms
+cpuManagerPolicy: none
+cpuManagerReconcilePeriod: 10s
+enableControllerAttachDetach: true
+enableDebugFlagsHandler: true
+enableDebuggingHandlers: true
+enableProfilingHandler: true
+enableServer: true
+enableSystemLogHandler: true
+enforceNodeAllocatable:
+- pods
+- pods
+eventBurst: 10
+eventRecordQPS: 5
+evictionHard:
+ imagefs.available: 15%
+ memory.available: 100Mi
+ nodefs.available: 10%
+ nodefs.inodesFree: 5%
+evictionPressureTransitionPeriod: 5m0s
+failSwapOn: true
+fileCheckFrequency: 20s
+hairpinMode: promiscuous-bridge
+healthzBindAddress: 0.0.0.0
+healthzPort: 10248
+httpCheckFrequency: 20s
+imageGCHighThresholdPercent: 85
+imageGCLowThresholdPercent: 80
+imageMinimumGCAge: 2m0s
+iptablesDropBit: 15
+iptablesMasqueradeBit: 14
+kind: KubeletConfiguration
+kubeAPIBurst: 10
+kubeAPIQPS: 5
+localStorageCapacityIsolation: true
+logging:
+ flushFrequency: 5000000000
+ format: text
+ options:
+ json:
+ infoBufferSize: "0"
+ verbosity: 0
+makeIPTablesUtilChains: true
+maxOpenFiles: 1000000
+maxPods: 110
+memoryManagerPolicy: None
+memorySwap: {}
+memoryThrottlingFactor: 0.8
+nodeLeaseDurationSeconds: 40
+nodeStatusMaxImages: 50
+nodeStatusReportFrequency: 10s
+nodeStatusUpdateFrequency: 10s
+oomScoreAdj: -999
+podPidsLimit: -1
+port: 10250
+registerNode: true
+registryBurst: 10
+registryPullQPS: 5
+rotateCertificates: true
+runtimeRequestTimeout: 2m0s
+seccompDefault: false
+serializeImagePulls: true
+shutdownGracePeriod: 0s
+shutdownGracePeriodCriticalPods: 0s
+staticPodPath: /etc/kubernetes/manifests
+streamingConnectionIdleTimeout: 4h0m0s
+syncFrequency: 1m0s
+topologyManagerPolicy: none
+topologyManagerScope: container
+volumePluginDir: /usr/libexec/kubernetes/kubelet-plugins/volume/exec/
+volumeStatsAggPeriod: 1m0s
+---
+apiVersion: apps.sealos.io/v1beta1
+kind: Config
+metadata:
+ name: calico
+spec:
+ path: charts/calico/values.yaml
+ strategy: merge
+ data: |
+ installation:
+ enabled: true
+ kubernetesProvider: ""
+ calicoNetwork:
+ bgp: Disabled
+ ipPools:
+ - blockSize: 22
+ cidr: 100.64.0.0/10
+ encapsulation: VXLAN
+ natOutgoing: Enabled
+ nodeSelector: all()
+ - blockSize: 122
+ cidr: fd85:ee78:d8a6:8607::1:0000/112
+ encapsulation: VXLAN
+ natOutgoing: Enabled
+ nodeSelector: all()
+ nodeAddressAutodetectionV4:
+ interface: "eth.*|en.*|em.*"
+ nodeAddressAutodetectionV6:
+ interface: "eth.*|en.*|em.*"
+```
+
+
+
+4. 运行 `sealos apply -f Clusterfile` 部署集群。
+
+5. 更多参考[Calico官网](https://docs.tigera.io/calico/latest/networking/ipam/ipv6) 和 [k8s官方文档](https://kubernetes.io/zh-cn/docs/setup/production-environment/tools/kubeadm/dual-stack-support/)
\ No newline at end of file
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/advanced-guide/image-build-standardized.md b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/advanced-guide/image-build-standardized.md
new file mode 100644
index 00000000000..aa61c9270a1
--- /dev/null
+++ b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/advanced-guide/image-build-standardized.md
@@ -0,0 +1,106 @@
+---
+sidebar_position: 1
+---
+
+# 镜像构建与标准化目录配置
+
+在开展 Sealos 镜像构建任务前,我们建议先构建一个符合规范的目录结构。这样能够使构建过程更加规范,易于管理,同时也能降低出错率。这篇文章将详细指导你如何创建这样一个目录结构,并解释每个目录的用途。
+
+## 目录结构示例
+
+一个完整的、符合规范的目录结构示例如下:
+
+```shell
+.
+├── charts
+│ └── nginx
+│ ├── Chart.lock
+│ ├── charts
+│ ├── Chart.yaml
+│ ├── README.md
+│ ├── templates
+│ ├── values.schema.json
+│ └── values.yaml
+├── images
+│ └── shim
+│ └── nginxImages
+├── init.sh
+├── Kubefile
+├── manifests
+│ └── nginx
+│ ├── deployment.yaml
+│ ├── ingress.yaml
+│ └── service.yaml
+├── opt
+│ └── helm
+└── registry
+```
+
+## 目录描述
+
+每个目录在构建过程中都扮演着特定的角色,以下是他们的详细描述:
+
+- `Kubefile` (必需):这个文件类似于 Dockerfile,是构建镜像的核心文件。它定义了构建过程中的各个步骤,如基础镜像选择、环境变量设置、文件复制等。
+- `manifests`:这个目录用于存放 Kubernetes 的 yaml 文件,这些文件描述了你的应用的配置信息,如 Pod、Service、Deployment 的配置。
+- `charts`:这个目录用于存放 Helm chart 文件,Helm chart 是 Kubernetes 的一个包管理工具,可以简化 Kubernetes 应用的部署和管理。
+- `images/shim`:这个目录用于存放无法从 yaml 文件或 Helm chart 中自动提取的镜像。在构建过程中,sealos 将自动拉取这些镜像。
+- `opt`:二进制文件存储在这里。
+- `registry`:这个目录用于存放构建过程中拉取到本地的镜像。在构建过程中,该目录将自动生成,无需手动创建。
+- `init.sh`:这个脚本在构建过程中由 GitHub Action 自动运行,你可以在这个脚本中编写一些自动化的工作,如初始化环境、预处理数据等。([cluster-image](https://github.com/labring-actions/cluster-image)的规则)
+
+## Kubefile 参数
+
+`Kubefile` 文件是镜像构建的核心,它支持多种参数,以下是这些参数的详细解析:
+
+```shell
+FROM labring/kubernetes:v1.24.0
+ENV version v1.1.0
+COPY manifests ./manifests
+COPY registry ./registry
+ENTRYPOINT ["kubectl apply -f manifests/tigera-operator.yaml"]
+CMD ["kubectl apply -f manifests/custom-resources.yaml"]
+```
+
+各个参数的描述:
+
+- `FROM`:这个指令用于设置构建的基础镜像,所有的构建步骤都基于这个镜像进行。
+- `LABEL`: `LABEL`定义一些sealos集群镜像的内部配置。
+
+ - `check` 集群镜像运行前的一些检查脚本操作
+ - `clean` 集群reset或者节点删除的清理脚本
+ - `clean-registry` 集群reset时候的清理镜像仓库的脚本
+ - `image` 集群的lvscare镜像地址(sealos的IPVS镜像)
+ - `init` 集群初始化的脚本
+ - `init-registry` 集群初始化时启动容器镜像仓库的脚本
+ - `sealos.io.type` 集群镜像类型,目前主要是rootfs、application和patch。
+ - rootfs 是运行集群的基础镜像,比如kubernetes、kubernetes-docker这种包含镜像、二进制等集群所需的。(**每个节点都需要存在**)
+ - application 是应用镜像,比如calico、helm、istio等应用服务的镜像。(**只存储到master0节点**)
+ - patch是在rootfs镜像后需要调整的,是另一种修改rootfs镜像的方式(**还有一种方式是Config方式**),它会覆盖默认的集群运行的第一个镜像。
+
+ - `sealos.io.version` 镜像的版本号,目前开启的是v1beta1
+ - `version` 集群的版本号,当前是kubernetes的版本号
+ - `vip` 是VIP的地址,为修改IPVS的虚IP使用
+
+- `ENV`:`ENV`指令将环境变量``设置为值``。(rootfs中默认会有一些默认的环境变量,可以修改rootfs中一些默认参数,比如镜像仓库的账号密码、docker、containerd的存储目录等等)
+
+ 具体的集群镜像需要具体查看,`sealos inspect`镜像看一下对应的环境变量,不同版本的镜像略有不同。
+
+ - SEALOS_SYS_CRI_ENDPOINT: 当前集群镜像的criSocket (不同类型集群镜像可能不同)
+ - criData: cri的数据目录
+ - defaultVIP: 默认的VIP地址
+ - disableApparmor: 是否禁用apparmor (containerd有这个问题)
+ - registryConfig: 容器镜像仓库的配置目录
+ - registryData: 容器镜像仓库的数据目录(因为是目录进行了挂载,其实这个配置没有实际意义,它实际还是存储在/var/lib/sealos下面)
+ - registryDomain: 默认镜像仓库的域名
+ - registryPassword: 默认镜像仓库的密码
+ - registryPort: 默认镜像仓库的密码
+ - registryUsername: 默认镜像仓库的账户
+ - sandboxImage: 默认cri启动的sandbox_image。(无需写repo只需要写镜像名称,eg: pasue:3.7)
+- `COPY`:`COPY`指令从``复制新的文件或目录,并将它们添加到容器的文件系统路径``上。(**注意,需要把registry目录进行拷贝,否则集群没有容器镜像**)
+- `ENTRYPOINT`:这个指令用于设置镜像的启动命令,当镜像启动时,这条命令会被执行。
+- `CMD`:这个指令也用于设置镜像的启动命令,但它与 ENTRYPOINT 指令的区别在于,如果用户在运行镜像时(`sealos run --cmd`)提供了启动命令,CMD 指令中的命令将会被覆盖。
+
+在构建过程中,Sealos 还会自动设置一些内置的环境变量,包括(前缀为'SEALOS_SYS'的环境变量无法被修改):
+
+- SEALOS_SYS_KUBE_VERSION:Kubernetes的版本号,例如 v1.26.0
+- SEALOS_SYS_SEALOS_VERSION:Sealos的版本号,例如 4.1.3
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/advanced-guide/images/build.png b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/advanced-guide/images/build.png
new file mode 100644
index 00000000000..d1ae7d6aead
Binary files /dev/null and b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/advanced-guide/images/build.png differ
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/advanced-guide/images/registry-build.png b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/advanced-guide/images/registry-build.png
new file mode 100644
index 00000000000..485b531d28f
Binary files /dev/null and b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/advanced-guide/images/registry-build.png differ
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/advanced-guide/images/sealos-run.png b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/advanced-guide/images/sealos-run.png
new file mode 100644
index 00000000000..70ef65ffa13
Binary files /dev/null and b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/advanced-guide/images/sealos-run.png differ
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/advanced-guide/sealos-run.md b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/advanced-guide/sealos-run.md
new file mode 100644
index 00000000000..6946a3bbc93
--- /dev/null
+++ b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/advanced-guide/sealos-run.md
@@ -0,0 +1,136 @@
+---
+sidebar_position: 2
+---
+
+# Sealos Run 的工作原理
+
+以下是 `sealos run` 命令的详细工作原理。为了帮助您更好地理解,我们将其分解为九个主要步骤。
+
+## 1. 执行命令
+
+首先,用户通过执行以下命令启动 Sealos:
+
+```bash
+sealos run kubernetes:v1.23.8
+```
+
+## 2. 执行 Pipeline
+
+命令执行后,Sealos 开始执行一系列相关的操作步骤,我们称之为 "Pipeline"。这个过程包括以下几个子步骤:
+
+### 2.1 节点检查
+
+Sealos 会对所有节点进行检查,以确保它们都是可用的。例如,检查是否存在重复的主机名,以及所有节点的时间是否已经同步。
+
+### 2.2 拉取镜像
+
+接着,Sealos 从远程仓库拉取 Kubernetes 的镜像,并将其加载到本地存储。
+
+### 2.3 渲染配置
+
+然后,Sealos 会对拉取到的镜像的 rootfs(文件系统)进行配置渲染,这是为了准备后续的节点分发。
+
+### 2.4 分发镜像文件
+
+配置渲染完成后,Sealos 会将渲染后的 rootfs 文件分发到各个节点。
+
+### 2.5 分发 Registry 目录
+
+此外,Sealos 也会将镜像中的 registry 目录分发到对应的 registry 角色节点。Sealos 支持两种模式:
+
+- **scp模式**:直接通过 scp 将目录复制到每个节点,这种方式会占用大量的网络带宽。
+- **镜像同步模式**:使用 skopeo sdk 的镜像同步机制,能够实现增量镜像同步,从而节省网络带宽。该功能可通过环境变量 `SEALOS_REGISTRY_SYNC_EXPERIMENTAL=true` 来开启。
+
+### 2.6 执行 Bootstrap
+
+Bootstrap 是关键步骤,包括以下操作:
+
+#### 2.6.1 添加 Host 解析
+
+Sealos 会在每个节点上添加 registry 的 host 解析。
+
+#### 2.6.2 执行 Registry-Init 脚本
+
+在添加完 host 解析后,Sealos 会执行 registry-init 脚本。
+
+#### 2.6.3 执行 Init 脚本
+
+最后,Sealos 会执行 init 脚本,启动 Kubernetes 服务。
+
+## 3. 执行 InitMaster0
+
+Pipeline 执行完成后,Sealos 进入 InitMaster0 阶段。在此阶段,Sealos 会执行以下操作:
+
+### 3.1 生成 Kubeadm 配置
+
+首先,Sealos 生成 Kubeadm 的初始化配置文件。
+
+### 3.2 生成并分发证书文件
+
+然后,Sealos 生成集群的所有
+
+证书文件,并将它们分发到各个节点。
+
+### 3.3 初始化 Master0
+
+最后,Sealos 执行`kubeadm init`初始化 Master0 节点。
+
+## 4. 执行 JoinMaster
+
+初始化完 Master0 节点后,Sealos 进入 JoinMaster 阶段。在此阶段,Sealos 会执行以下操作:
+
+### 4.1 同步 Kubeconfig
+
+首先,Sealos 将 Kubeconfig 文件同步到各个节点。
+
+### 4.2 同步证书文件
+
+接下来,Sealos 同步证书文件到各个节点。
+
+### 4.3 生成 Join 配置
+
+然后,Sealos 生成 JoinMaster 配置文件。
+
+### 4.4 生成 Join 令牌
+
+接着,Sealos 生成 Join 令牌。
+
+### 4.5 执行 Join Master 流程
+
+最后,Sealos 执行`kubeadm join`流程,让其他 Master 节点加入集群。
+
+## 5. 执行 JoinNode
+
+所有 Master 节点加入集群后,Sealos 进入 JoinNode 阶段,执行以下操作:
+
+### 5.1 生成 Join 令牌
+
+首先,Sealos 再次生成 Join 令牌。
+
+### 5.2 生成 IPVS 规则
+
+然后,Sealos 生成 IPVS 规则。
+
+### 5.3 生成 Join 配置
+
+接下来,Sealos 再次生成 JoinNode 配置。
+
+### 5.4 执行 Join Node 流程
+
+最后,Sealos 执行 Join Node 流程,让 Worker 节点加入集群。
+
+## 6. 同步 IPVS
+
+所有节点加入集群后,Sealos 将 Master 的 IPVS 规则同步到所有节点。这里主要是通过 lvscare 的静态 pod,根据 Master 节点的数量同步静态 pod 的配置。
+
+## 7. 执行 Guest 阶段
+
+IPVS 规则同步完成后,Sealos 执行 Guest 阶段。这是执行集群镜像命令的阶段。
+
+## 8. 写入 Clusterfile
+
+最后,Sealos 将最终的执行结果写入 Clusterfile。
+
+这就是 `sealos run` 命令的工作原理。希望通过这篇文章,您能对 `sealos run` 命令有更深入的理解。以下是我们提到的全景图,以帮助您更好地理解整个流程。
+
+![](images/sealos-run.png)
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/advanced-guide/template-function.md b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/advanced-guide/template-function.md
new file mode 100644
index 00000000000..8cf77555612
--- /dev/null
+++ b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/advanced-guide/template-function.md
@@ -0,0 +1,57 @@
+---
+sidebar_position: 9
+---
+
+# 模板引入与函数增强
+
+在 Sealos 的镜像构建过程中,"tmpl" 后缀的文件在 "etc"、"scripts" 和 "manifests" 这三个目录下的文件会被特殊处理。
+
+1. "etc" 目录:这个目录通常用于存放配置文件。在构建过程中,Sealos 会对该目录下的 "tmpl" 后缀的文件进行模板渲染,渲染完成后的文件将被拷贝到集群镜像的相应目录下。
+
+2. "scripts" 目录:这个目录通常用于存放执行脚本。Sealos 会对该目录下的 "tmpl" 后缀的文件进行模板渲染,生成的脚本将在集群镜像构建过程中被执行。
+
+3. "manifests" 目录:这个目录通常用于存放 Kubernetes 资源清单文件。Sealos 会对该目录下的 "tmpl" 后缀的文件进行模板渲染,生成的清单文件将在集群镜像构建过程中被应用到 Kubernetes 集群中。
+
+总的来说,这三个目录下的 "tmpl" 后缀文件在 Sealos 的镜像构建过程中都会被视为模板文件进行处理。这种处理方式提供了更多的灵活性,让我们可以在构建过程中动态生成配置、脚本或者 Kubernetes 资源清单。
+
+在构建镜像时,我们支持 `template` 来让维护者完全控制生成的配置文件(模块渲染)。例如:
+
+```yaml
+service:
+ name: {{ .serviceName }}
+ port:
+ {{- if typeIs "string" .servicePort }}
+ name: {{ .servicePort }}
+ {{- else if or (typeIs "int" .servicePort) (typeIs "float64" .servicePort) }}
+ number: {{ .servicePort | int }}
+ {{- end }}
+```
+
+请参考 Golang 的 [text/template](https://pkg.go.dev/text/template) 了解基础介绍和更多细节。
+
+## 模板函数增强
+
+此外,我们支持 `templateFunc` 来增强模板函数。例如:
+
+```yaml
+shim: /var/run/image-cri-shim.sock
+cri: /run/containerd/containerd.sock
+address: http://{{ .registryDomain }}:{{ .registryPort }}
+force: true
+debug: false
+image: /var/lib/image-cri-shim
+{{ if and (ne .SEALOS_SYS_KUBE_VERSION "") (semverCompare "^1.26.0" .SEALOS_SYS_KUBE_VERSION) }}version: v1{{ else }}version: v1alpha2{{ end }}
+timeout: 15m
+auth: {{ .registryUsername }}:{{ .registryPassword }}
+```
+
+在这里我们使用 `semverCompare` 来检查用户是否运行在 k8s 版本 v1.26.0 或以上,如果是,生成 `version: v1`,否则生成 `version: v1alpha2`。
+有了这个支持,我们可以很轻松地用一个集群镜像文件管理多版本的 Kubernetes 支持。
+
+### 一些最常用的模板函数
+
+* [semverCompare](http://masterminds.github.io/sprig/semver.html) 比较语义版本,而不是字符串比较。
+* [default](http://masterminds.github.io/sprig/defaults.html) default 可以在值为空或未定义时提供一个默认值。
+* [toYaml](https://github.com/labring/sealos/blob/main/pkg/template/funcmap.go#L66) 将当前值(对象,映射,数组)显示为 yaml 格式的字符串。
+
+完整的支持函数列表,请[点击这里](http://masterminds.github.io/sprig/)。
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/images/sealos.webp b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/images/sealos.webp
new file mode 100644
index 00000000000..0cc05e478e9
Binary files /dev/null and b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/images/sealos.webp differ
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/lifecycle-management.md b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/lifecycle-management.md
new file mode 100644
index 00000000000..24b9a600181
--- /dev/null
+++ b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/lifecycle-management.md
@@ -0,0 +1,93 @@
+---
+sidebar_position: 0
+---
+
+# K8s 集群生命周期管理
+
+Sealos 提供一套强大的工具,使得用户可以便利地管理整个集群的生命周期。
+
+## 功能介绍
+
+使用 Sealos,您可以安装一个不包含任何组件的裸 Kubernetes 集群。此外,Sealos 还可以在 Kubernetes 之上,通过集群镜像能力组装各种上层分布式应用,如数据库、消息队列等。
+
+Sealos 不仅可以安装一个单节点的 Kubernetes 开发环境,还能构建数千节点的生产高可用集群。
+
+Sealos 具有自由伸缩集群、备份恢复、释放集群等功能,即使在离线环境中,Sealos 也能提供出色的 Kubernetes 运行体验。
+
+## 主要特性
+
+- 支持 ARM,v1.20 以上版本离线包支持 containerd 与 docker 集成
+- 提供 99 年证书,支持集群备份,升级
+- 不依赖 ansible、haproxy、keepalived,一个二进制工具,零依赖
+- 提供离线安装,不同 Kubernetes 版本只需使用不同的集群镜像
+- 高可用性由 ipvs 实现的 localLB 提供,占用资源少,稳定可靠,类似 kube-proxy 的实现
+- 使用 image-cri-shim 自动识别镜像名称,使离线交付更方便
+- 几乎兼容所有支持 systemd 的 x86_64 架构的环境
+- 轻松实现集群节点的增加/删除
+- 已有数万用户在线上环境使用 Sealos,稳定可靠
+- 支持集群镜像,自由组合定制你需要的集群,如 openebs 存储+数据库+minio 对象存储
+- 使用 buildah 的 sdk 实现对镜像标准统一,完全兼容 OCI 的标准
+
+## 使用 Sealos 运行 Kubernetes 集群
+
+使用 Sealos 运行一个 Kubernetes 集群非常简单,只需以下步骤:
+
+```bash
+$ curl -sfL https://raw.githubusercontent.com/labring/sealos/v4.3.0/scripts/install.sh \
+ | sh -s v4.3.0 labring/sealos
+# 创建一个集群
+$ sealos run labring/kubernetes:v1.25.0-4.2.0 labring/helm:v3.8.2 labring/calico:v3.24.1 \
+ --masters 192.168.64.2,192.168.64.22,192.168.64.20 \
+ --nodes 192.168.64.21,192.168.64.19 -p [your-ssh-passwd]
+```
+
+[![asciicast](https://asciinema.org/a/519263.svg)](https://asciinema.org/a/519263?speed=3)
+
+## 在集群上运行分布式应用
+
+通过 `sealos run` 命令,您可以在集群上运行各种分布式应用,如数据库、消息队列、AI 能力,甚至企业级 SaaS 软件。例如:
+
+```shell
+# MySQL 集群
+$ sealos run labring/mysql-operator:8.0.23-14.1
+
+# Clickhouse 集群
+$ sealos run labring/clickhouse:0.18.4
+
+# Redis 集群
+$ sealos run labring/redis-operator:3.1.4
+```
+
+## 自定义集群
+
+对于 Sealos 生态没有的集群镜像,用户可以方便地自己构建和定制属于自己的集群镜像。例如:
+
+[构建一个 ingress 集群镜像](/self-hosting/lifecycle-management/quick-start/build-ingress-cluster-image.md)
+
+您还可以定制一个完全属于自己的 Kubernetes:
+
+Sealfile:
+
+```shell
+FROM kubernetes:v1.25.0
+COPY flannel-chart .
+COPY mysql-chart .
+CMD ["helm install flannel flannel-chart", "helm install mysql mysql-chart"]
+```
+
+```shell
+sealos build -t my-kuberentes:v1.25.0 .
+sealos run my-kuberentes:v1.25.0 ...
+```
+
+## 常见问题
+
+**Sealos 是 Kubernetes 安装工具吗?**
+
+安装部署只是 Sealos 的一个基本功能,如同单机操作系统有 Boot 模块一样,Sealos 的 Boot 模块可以很好地管理 Kubernetes 在任何场景下的生命周期。
+
+**Sealos 和 Rancher、KubeSphere 有什么区别?**
+
+Sealos 的设计理念是 "化整为零,自由组装,大道至简"。Sealos 利用 Kubernetes 的能力,以简单的方式提供给用户真正需要的东西。用户需要的不一定是 Kubernetes,用户需要的是具体的能力。
+
+Sealos 是极其灵活的,不会给用户带来额外负担。它的形态取决于用户的需求和安装的应用。Sealos 的核心是分布式应用,所有应用都是一等公民。
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/operations/build-image/build-image-binary.md b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/operations/build-image/build-image-binary.md
new file mode 100644
index 00000000000..6433a19d058
--- /dev/null
+++ b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/operations/build-image/build-image-binary.md
@@ -0,0 +1,88 @@
+---
+sidebar_position: 4
+---
+
+# 构建基于二进制文件的集群镜像
+
+此文档主要介绍了如何使用 `sealos` 工具将单一二进制文件(例如 `helm` 或 `kustomize`)打包为集群镜像,并将它们通过在主节点上部署集群镜像进行安装。以 `helm` 为例,我们将详细介绍如何将二进制文件打包成集群镜像。
+
+## 创建构建工作空间
+
+首先,创建一个基础目录作为构建工作空间:
+
+```shell
+$ mkdir ~/cluster-images
+```
+
+在工作空间中,创建一个 `opt` 目录用于存储二进制文件:
+
+```shell
+$ cd cluster-images
+$ mkdir opt/
+```
+
+## 准备二进制文件
+
+接下来,我们准备 `helm` 二进制文件。在此,我们从 [github release](https://github.com/helm/helm/releases) 中下载:
+
+```shell
+wget https://get.helm.sh/helm-v3.10.1-linux-amd64.tar.gz
+tar -zxvf helm-v3.10.1-linux-amd64.tar.gz
+chmod a+x linux-amd64/helm
+mv linux-amd64/helm opt/
+```
+
+## 创建构建镜像所需的 `Sealfile` 文件
+
+创建一个名为 `Sealfile` 的文件,内容如下:
+
+```shell
+FROM scratch
+COPY opt ./opt
+CMD ["cp opt/helm /usr/bin/"]
+```
+
+目前的目录结构如下:
+
+```
+.
+├── Sealfile
+└── opt
+ └── helm
+```
+
+## 构建集群镜像
+
+现在,一切准备就绪,你可以开始构建集群镜像了:
+
+```shell
+sealos build -t labring/helm:v3.10.1 .
+```
+
+**注意:** 首先你需要在本地主机上安装 `sealos` 命令。
+
+你可以查看构建日志来了解构建过程。
+
+```shell
+root@ubuntu:~/cluster-images# sealos build -t labring/helm:v3.10.1 .
+...
+```
+
+查看构建的镜像,现在所有依赖的二进制文件都已经构建进集群镜像中:
+
+```shell
+root@ubuntu:~/cluster-images# sealos images
+labring/helm v3.10.1 19ed4a24f0fe 3 minutes ago 45.1 MB
+```
+
+## 推送镜像
+
+你可以将镜像推送至任何 Docker 镜像仓库,下面的命令将镜像推送到 dockerhub:
+
+```shell
+sealos push labring/helm:v3.10.1
+```
+
+**注意:** 请使用 `sealos` 命令来操作集群镜像,不支持 Docker 命令。
+
+如果你使用的是私有镜像仓库,可以使用 `sealos login` 命令登录你的镜像仓库,然后再推送或者拉取镜像
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/operations/build-image/build-image-go_template.md b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/operations/build-image/build-image-go_template.md
new file mode 100644
index 00000000000..135698980bf
--- /dev/null
+++ b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/operations/build-image/build-image-go_template.md
@@ -0,0 +1,106 @@
+---
+sidebar_position: 5
+---
+
+# 构建基于 go-template 的集群镜像
+
+在构建集群镜像的过程中,我们可以使用 `--env` 选项通过sealos命令行传递一些变量。这些环境变量可以被Kubefile的 `CMD` 命令或者yaml文件模板所使用。
+
+## 在 Kubefile 中使用环境变量
+
+这个示例定义了一个 `SERVICE_TYPE` 变量,它允许用户在安装应用程序时自定义服务暴露类型,并将参数传递给CMD中的helm命令。
+
+Kubefile 示例:
+
+```shell
+FROM scratch
+ENV SERVICE_TYPE "NodePort"
+COPY charts charts
+COPY registry registry
+CMD ["helm upgrade --install nginx charts/nginx --namespace=nginx --create-namespace --set service.type=$(SERVICE_TYPE)"]
+```
+
+运行集群应用并设置一个自定义的 `SERVICE_TYPE=LoadBalancer`,如果不设置,它将默认为 NodePort。
+
+```shell
+sealos run labring/nginx:v1.23.1 --env SERVICE_TYPE=LoadBalancer
+```
+
+## 在Yaml文件中使用环境变量
+
+准备一个简单的nginx服务的yaml文件,这个文件必须是 `*.tmpl` 扩展名,以便在运行 `sealos run --env` 命令时渲染。
+
+```shell
+$ cat manifests/service.yaml.tmpl
+apiVersion: v1
+kind: Service
+metadata:
+ name: nginx
+ labels:
+ name: nginx
+spec:
+ type: {{ .serviceType }}
+ ports:
+ - port: 80
+ nodePort: {{ .http_NodePort }}
+ name: http
+ - port: 443
+ nodePort: {{ .https_NodePort }}
+ name: https
+ selector:
+ name: nginx
+```
+
+下面是一个Kubefile样例,你可以在这里设置默认的环境变量。
+
+```shell
+FROM scratch
+ENV serviceType NodePort
+ENV http_NodePort 30080
+ENV https_NodePort 30443
+
+COPY manifests manifests
+COPY registry registry
+CMD ["kubectl apply -f manifests/service.yaml"]
+```
+
+当你构建镜像时,什么都不会发生,只有在运行应用程序时,它才会渲染。如果没有设置 `--env`,它将使用 Kubefile 的默认 ENV。
+
+```shell
+sealos run labring/nginx:1.23.1 --env serviceType=LoadBalancer --env http_NodePort=30080 --env https_NodePort=30443
+```
+
+你会发现 sealos 会在主节点的本地路径上基于 `service.yaml.tmpl` 渲染一个新的yaml文件 `service.yaml`。
+
+**注意** 新版本的应用的rootfs放到了`/var/lib/sealos/data/default/applications`目录,每个应用都有独立的目录。
+
+```shell
+root@node1:~# ls /var/lib/sealos/data/default/rootfs/manifests |grep service
+service.yaml
+service.yaml.tmpl
+```
+
+检查 yaml 内容:
+
+```shell
+root@node1:~# cat /var/lib/sealos/data/default/rootfs/manifests/service.yaml
+apiVersion: v1
+kind: Service
+metadata:
+ name: nginx
+ labels:
+ name: nginx
+spec:
+ type: NodePort
+ ports:
+ - port: 80
+ nodePort: 30080
+ name: http
+ - port: 443
+ nodePort: 30443
+ name: https
+ selector:
+ name: nginx
+```
+
+**注意:**所有类型的文件都支持这个特性(文件名后缀是.tmpl且构建目录在etc、scripts和manifests),你可以自己尝试一下。
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/operations/build-image/build-image-helm_charts.md b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/operations/build-image/build-image-helm_charts.md
new file mode 100644
index 00000000000..dfcfc668aa8
--- /dev/null
+++ b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/operations/build-image/build-image-helm_charts.md
@@ -0,0 +1,235 @@
+---
+sidebar_position: 3
+---
+
+# 构建基于 Helm Charts 的集群镜像
+
+让我们以最简单的 nginx 应用程序为例,介绍如何基于 Helm Charts 构建一个基于 nginx 的集群镜像。
+
+## 一、准备工作
+
+创建一个用于构建工作的基础目录。
+
+```shell
+$ mkdir ~/cloud-images
+```
+
+创建一个 `charts` 目录来存储 Kubernetes nginx Helm Charts 文件。
+
+```shell
+$ cd cloud-images
+$ mkdir charts
+```
+
+## 二、准备Helm Charts
+
+准备 nginx Helm Charts,这里我们使用 [bitnami 官方的 nginx Helm Charts](https://bitnami.com/stack/nginx),让我们将 Helm Chart 文件拉取到本地并解压到 `charts` 目录中。
+
+```shell
+helm repo add bitnami https://charts.bitnami.com/bitnami
+helm search repo bitnami/nginx
+helm pull bitnami/nginx --version=13.2.13 -d charts/ --untar
+```
+
+**注意:** 首先你应该安装 Helm 命令工具到本地主机。
+
+现在,charts 目录的结构如下所示。
+
+```
+charts/
+└── nginx
+ ├── Chart.lock
+ ├── charts
+ ├── Chart.yaml
+ ├── README.md
+ ├── templates
+ ├── values.schema.json
+ └── values.yaml
+```
+
+## 三、创建Kubefile
+
+创建一个名为 `Kubefile` 的文件用于镜像构建:
+
+```shell
+$ cat Kubefile
+FROM scratch
+COPY charts charts
+COPY registry registry
+CMD ["helm install nginx charts/nginx --namespace=nginx --create-namespace"]
+```
+
+建议使用 `helm upgrade --install` 而不是 `helm install`,这样可以在以后更新应用程序时重复运行相同的命令。
+
+你可以根据需要添加其他选项,例如通过 NodePort 暴露服务。
+
+```shell
+FROM scratch
+COPY charts charts
+COPY registry registry
+CMD ["helm upgrade --install nginx charts/nginx --namespace=nginx --create-namespace --set service.type=NodePort"]
+```
+
+## 四、构建集群镜像
+
+现在一切准备就绪,你可以开始构建集群镜像。
+
+```shell
+sealos build -t labring/nginx:v1.23.2 .
+```
+
+**注意:** 你应该首先将 sealos 命令安装到本地主机。
+
+你可以查看构建日志。
+
+```shell
+root@ubuntu:~/cloud-images# sealos build -t labring/nginx:v1.23.2 .
+2022-11-06T15:58:33 info lookup in path charts
+2022-11-06T15:58:33 info sub chart is nginx
+2022-11-06T15:58:33 warn if you access private registry,you must be 'sealos login' or 'buildah login'
+2022-11-06T15:58:33 info pull images [docker.io/bitnami/nginx:1.23.2-debian-11-r29] for platform is linux/amd64
+Pulling image: docker.io/bitnami/nginx:1.23.2-debian-11-r29
+1d8866550bdd: Download complete
+cbbfe6232a5b: Download complete
+ed342369e859: Download complete
+Status: images save success
+2022-11-06T15:58:43 info output images [docker.io/bitnami/nginx:1.23.2-debian-11-r29] for platform is linux/amd64
+STEP 1/3: FROM scratch
+STEP 2/3: COPY . .
+STEP 3/3: CMD ["helm upgrade --install nginx charts/nginx --namespace=nginx --create-namespace --set service.type=NodePort"]
+COMMIT labring/nginx:v1.23.2
+Getting image source signatures
+Copying blob 9f5a861e0f8d done
+Copying config 1b89695273 done
+Writing manifest to image destination
+Storing signatures
+--> 1b896952734
+Successfully tagged localhost/labring/nginx:v1.23.2
+1b8969527343939d60859469708e5420758f7419a421304f81b5132669982de7
+2022-11-06T15:58:44 info
+ ___ ___ ___ ___ ___ ___
+ /\ \ /\ \ /\ \ /\__\ /\ \ /\ \
+ /::\ \ /::\ \ /::\ \ /:/ / /::\ \ /::\ \
+ /:/\ \ \ /:/\:\ \ /:/\:\ \ /:/ / /:/\:\ \ /:/\ \ \
+ _\:\~\ \ \ /::\~\:\ \ /::\~\:\ \ /:/ / /:/ \:\ \ _\:\~\ \ \
+ /\ \:\ \ \__\ /:/\:\ \:\__\ /:/\:\ \:\__\ /:/__/ /:/__/ \:\__\ /\ \:\ \ \__\
+ \:\ \:\ \/__/ \:\~\:\ \/__/ \/__\:\/:/ / \:\ \ \:\ \ /:/ / \:\ \:\ \/__/
+ \:\ \:\__\ \:\ \:\__\ \::/ / \:\ \ \:\ /:/ / \:\ \:\__\
+ \:\/:/ / \:\ \/__/ /:/ / \:\ \ \:\/:/ / \:\/:/ /
+ \::/ / \:\__\ /:/ / \:\__\ \::/ / \::/ /
+ \/__/ \/__/ \/__/ \/__/ \/__/ \/__/
+
+ Website :https://www.sealos.io/
+ Address :github.com/labring/sealos
+```
+
+sealos 将自动从 charts 目录中提取镜像,将其拉取到本地并存储在 registry 目录中。
+
+现在的目录结构如下所示:
+
+```shell
+.
+├── charts
+│ └── nginx
+│ ├── Chart.lock
+│ ├── charts
+│ ├── Chart.yaml
+│ ├── README.md
+│ ├── templates
+│ ├── values.schema.json
+│ └── values.yaml
+├── Kubefile
+└── registry
+ └── docker
+ └── registry
+```
+
+在本地查看构建的镜像,现在所有依赖的部署清单和镜像缓存都构建到了集群镜像中。
+
+```shell
+root@ubuntu:~/cloud-images#
+
+ sealos images
+labring/nginx v1.23.2 521c85942ee4 4 minutes ago 56.8 MB
+```
+
+你可以将镜像推送到任何 Docker 镜像仓库,下面的命令将其推送到 Docker Hub。
+
+```shell
+sealos push labring/nginx:v1.23.2
+```
+
+**注意:** 请使用 sealos 命令操作集群镜像,不支持 Docker 命令。
+
+如果你使用私有镜像仓库,只需在拉取或推送镜像之前使用 `sealos login` 命令登录到注册表。
+
+```shell
+sealos login docker.io -u xxx -p xxx
+
+sealos login registry.cn-hangzhou.aliyuncs.com -u xxx -p xxx
+```
+
+## 五、安装集群镜像
+
+然后你可以在你的集群中运行集群镜像。
+
+```shell
+sealos run labring/nginx:v1.23.2
+```
+
+helm 二进制命令将安装到你的 Kubernetes 集群的主节点上。
+
+```shell
+root@ubuntu:~# helm -n nginx ls
+```
+
+## 六、说明
+
+默认情况下,在构建镜像时,sealos 只解析默认的 values.yml 文件,但是你也可以为 sealos 提供自定义的 values.yaml 文件。
+
+**自定义 values 文件必须放在与你的 Chart 相同的目录中,并且必须以 `.values.yaml` 的形式命名,例如 `loki-stack.values.yaml`。**
+
+```shell
+.
+├── charts
+│ ├── loki-stack
+│ │ ├── charts
+│ │ ├── Chart.yaml
+│ │ ├── README.md
+│ │ ├── requirements.lock
+│ │ ├── requirements.yaml
+│ │ ├── templates
+│ │ └── values.yaml
+│ └── loki-stack.values.yaml
+├── init.sh
+├── Kubefile
+```
+
+`loki-stack.values.yaml` 文件内容如下:
+
+```shell
+$ cat charts/loki-stack.values.yaml
+promtail:
+ enabled: false
+fluent-bit:
+ enabled: true
+grafana:
+ enabled: true
+```
+
+不同的 values 文件可能会输出不同的镜像列表,以使 sealos 能够在 `sealos build` 过程中自动解析镜像。
+
+```shell
+$ helm template charts/loki-stack/ -f charts/loki-stack/values.yaml|grep image:
+ image: "grafana/promtail:2.0.0"
+ image: "grafana/loki:2.0.0"
+ image: "bats/bats:v1.1.0"
+
+$ helm template charts/loki-stack/ -f charts/loki-stack.values.yaml|grep image:
+ image: "grafana/fluent-bit-plugin-loki:1.6.0-amd64"
+ image: "kiwigrid/k8s-sidecar:0.1.209"
+ image: "grafana/grafana:6.7.0"
+ image: "grafana/loki:2.0.0"
+ image: "bats/bats:v1.1.0"
+ image: bats/bats:v1.1.0
+```
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/operations/build-image/build-image-image-list.md b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/operations/build-image/build-image-image-list.md
new file mode 100644
index 00000000000..c9e33edaf74
--- /dev/null
+++ b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/operations/build-image/build-image-image-list.md
@@ -0,0 +1,79 @@
+---
+sidebar_position: 1
+---
+
+# 构建基于镜像清单的集群镜像
+
+本文将指导你如何使用镜像列表构建集群镜像,或使用现有的docker存储的tar包进行构建应用镜像。
+
+## 镜像列表 构建
+
+```
+.
+├── Kubefile
+├── cni
+│ ├── custom-resources.yaml
+│ └── tigera-operator.yaml
+├── images
+│ └── shim
+│ └── CalicoImageList
+└── registry
+ └── docker
+ └── registry
+```
+
+```dockerfile
+FROM labring/kubernetes:v1.24.0
+COPY cni ./cni
+COPY images ./images
+COPY registry ./registry
+CMD ["kubectl apply -f cni/tigera-operator.yaml","kubectl apply -f cni/custom-resources.yaml"]
+```
+
+说明:
+
+CalicoImageList 中的镜像列表将被拉取到本地,然后使用 `kubectl apply -f` 命令将其应用到集群中。
+
+镜像列表目前支持:
+- docker.io/calico/cni:v3.20.0 这种远程的镜像
+- containers-storage:docker.io/labring/coredns:v0.0.1 这种本地的OCI容器镜像
+- docker-daemon:docker.io/library/nginx:latest 这种本地的docker容器镜像
+
+
+## 镜像tar包 构建
+
+```
+.
+├── Kubefile
+├── cni
+│ ├── custom-resources.yaml
+│ └── tigera-operator.yaml
+├── images
+│ └── skopeo
+│ ├── calico.tar
+│ └── tar.txt
+└── registry
+ └── docker
+ └── registry
+```
+
+```dockerfile
+FROM scratch
+COPY cni ./cni
+COPY images ./images
+COPY registry ./registry
+CMD ["kubectl apply -f cni/tigera-operator.yaml","kubectl apply -f cni/custom-resources.yaml"]
+```
+
+说明:
+
+tar.txt 中的配置会被拉取到本地并重定向镜像列表,然后使用 `kubectl apply -f` 命令将其应用到集群中。
+配置文件格式:
+
+```
+docker-archive:calico.tar@calico/cni:v3.20.0
+```
+
+镜像列表目前支持:
+- docker-archive 这种docker存储的镜像,仅支持单个镜像
+- oci-archive 这种oci存储的镜像,仅支持单个镜像
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/operations/build-image/build-image-manifests.md b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/operations/build-image/build-image-manifests.md
new file mode 100644
index 00000000000..2618ff743b6
--- /dev/null
+++ b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/operations/build-image/build-image-manifests.md
@@ -0,0 +1,101 @@
+---
+sidebar_position: 2
+---
+
+# 构建基于部署清单的集群镜像
+
+本文档将详细介绍如何构建基于部署清单(Deployment Manifest)的集群镜像。我们将以一个简单的nginx应用为例来进行说明。
+
+## 一、准备工作
+
+1. 首先,创建一个基础目录作为构建工作区。
+
+```shell
+$ mkdir ~/cloud-images
+```
+
+2. 创建一个名为 `manifests` 的目录来存储 kubernetes nginx 部署 yaml 文件。
+
+```shell
+$ cd cloud-images
+$ mkdir manifests
+```
+
+## 二、准备清单文件
+
+在这个阶段,我们将准备一个简单的nginx kubernetes yaml文件。
+
+```shell
+$ cat manifests/deployment.yaml
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: nginx-deployment
+spec:
+ selector:
+ matchLabels:
+ app: nginx
+ replicas: 2
+ template:
+ metadata:
+ labels:
+ app: nginx
+ spec:
+ containers:
+ - name: nginx
+ image: nginx:1.23.1
+ ports:
+ - containerPort: 80
+```
+
+## 三、创建Kubefile
+
+在这个阶段,我们需要创建一个Kubefile文件,该文件将用于构建镜像。
+
+```shell
+FROM scratch
+COPY manifests manifests
+COPY registry registry
+CMD ["kubectl apply -f manifests/deployment.yaml"]
+```
+
+## 四、构建集群镜像
+
+在准备好所有必需的文件和目录后,我们可以开始构建集群镜像。
+
+```shell
+sealos build -t labring/nginx:v1.23.1 .
+```
+
+**注意:** 在开始构建前,您需要先在本地主机上安装 sealos 命令。
+
+构建过程中,您可以查看构建日志。
+
+## 五、验证镜像
+
+在构建完毕后,可以通过下列命令查看构建的镜像:
+
+```shell
+root@ubuntu:~/cloud-images# sealos images
+labring/nginx v1.23.1 521c85942ee4 4 minutes ago 56.8 MB
+```
+
+## 六、推送镜像
+
+最后,我们可以将构建好的镜像推送至任何Docker镜像仓库,以下命令将其推送至DockerHub。
+
+```shell
+sealos push labring/nginx:v1.23.1
+```
+
+**注意:** 请使用 sealos 命令来操作集群镜像,Docker 命令不受支持。
+
+如果你使用的是私有镜像仓库,只需要在拉取或推送镜像前使用 `sealos login` 登录仓库即可。
+
+```shell
+sealos login docker.io -u xxx -p xxx
+
+sealos login registry.cn-hangzhou.aliyuncs.com -u xxx -p xxx
+```
+
+至此,基于部署清单的集群镜像已经构建完成。
\ No newline at end of file
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/operations/build-image/build-image-scp_exec.md b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/operations/build-image/build-image-scp_exec.md
new file mode 100644
index 00000000000..3426fd48571
--- /dev/null
+++ b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/operations/build-image/build-image-scp_exec.md
@@ -0,0 +1,127 @@
+---
+sidebar_position: 6
+---
+
+# 使用 exec 和 scp 命令构建集群镜像
+
+默认情况下,`sealos run xx` 只会在第一个主节点上运行命令和复制文件。当你希望在特定节点或所有节点上运行命令或复制文件时,你可以在构建集群镜像时使用 `sealos exec` 或 `sealos scp` 命令。
+
+- sealos exec: 连接到一个或多个节点并运行任何 shell 命令;
+- sealos scp: 连接到一个或多个节点并将本地文件复制到远程节点。
+
+虽然你可以直接在宿主机上使用这些命令,但本文主要描述的是在使用 sealos build 构建集群镜像时如何使用这两个命令。
+
+## sealos exec 示例
+
+以下是构建一个 openebs 集群镜像的示例。在安装 openebs maystor 之前,需要在节点上执行一些初始化操作,你可以使用 sealos exec 来实现这一点。
+
+首先,创建一个用于构建工作的基础目录。
+
+```shell
+$ mkdir ~/cloud-images
+```
+
+创建一个 `charts` 目录,用来存储 kubernetes nginx helm charts 文件。
+
+```shell
+$ cd cloud-images
+```
+
+创建一个名为 `Kubefile` 的文件,用于镜像构建:
+
+```shell
+$ cat Kubefile
+FROM scratch
+COPY manifests manifests
+COPY registry registry
+COPY opt opt
+COPY mayastor.sh mayastor.sh
+CMD ["bash mayastor.sh"]
+```
+
+创建一个名为 `mayastor.sh` 的脚本文件,sealos exec 后面的 shell 命令将在所有节点上执行(在所有节点上创建 hugepage、加载内核模块),但其他命令只会在主节点上运行。
+
+```shell
+$ cat mayastor.sh
+#!/usr/bin/env bash
+set -e
+
+sealos exec "
+echo vm.nr_hugepages = 1024 | sudo tee -a /etc/sysctl.d/mayastor.conf
+sysctl -p
+sudo modprobe -- nbd
+sudo modprobe -- nvmet
+sudo modprobe -- nvmet_rdma
+sudo modprobe -- nvme_fabrics
+sudo modprobe -- nvme_tcp
+sudo modprobe -- nvme_rdma
+sudo modprobe -- nvme_loop
+cat < /tmp/buildimage/kubeadm.yml < /tmp/buildimage/Kubefile <
+Clusterfile
+
+```yaml
+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.24.0
+ - labring/helm:v3.8.2
+ - labring/calico:v3.24.1
+ ssh:
+ passwd: xxx
+ pk: /root/.ssh/id_rsa
+ port: 22
+ user: root
+status: {}
+```
+
+
+
+2. 生成 Clusterfile 后,然后更新集群配置。例如,要修改 pods 的 CIDR 范围,就可以修改 `networking.podSubnet` 和 `spec.data.spec.calicoNetwork.ipPools.cidr` 字段。最终的 Clusterfile 会像是这样:
+
+
+Clusterfile
+
+```yaml
+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: xxx
+ 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.*"
+```
+
+
+
+3. 运行 `sealos apply -f Clusterfile` 启动集群。集群运行成功后会把 Clusterfile 保存到 `.sealos/default/Clusterfile` 文件中,可以修改其中字段来重新 apply 对集群进行变更。
+
+**注意:**
+
+- 可以参考[官方文档](https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm-config/)或运行 `kubeadm config print init-defaults` 命令来打印 kubeadm 配置。
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/operations/run-cluster/run-cluster.md b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/operations/run-cluster/run-cluster.md
new file mode 100644
index 00000000000..30235afd65e
--- /dev/null
+++ b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/operations/run-cluster/run-cluster.md
@@ -0,0 +1,14 @@
+---
+sidebar_position: 0
+---
+
+# Sealos 集群镜像运行
+
+在这个目录中,我们提供了一系列详细的教程和资源,帮助您有效地运行和管理 Sealos 集群。以下是每个文件或子目录的简短概述:
+
+1. **集群初始化**:这部分提供了所有必需的步骤,以启动并初始化一个新的 Sealos 集群。它包括如何配置 Sealos,以及如何运行初始化命令等信息。
+2. **节点管理**:这个部分包括如何添加和移除集群节点,以及如何维护和管理集群节点的详细信息。
+3. **服务管理**:这部分包含了如何在 Sealos 集群上部署和管理各种服务的指南。它包括如何使用 Sealos 的命令行工具来管理服务,以及如何配置服务以满足你的特定需求。
+4. **实战示例**:这部分包含了各种实战示例,包括如何运行和管理各种应用,以及如何处理特定的运维问题。
+
+我们希望这个目录可以为您在运行和管理 Sealos 集群时提供全方位的帮助。如果有任何问题或建议,欢迎随时联系我们。
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/operations/run-cluster/template-apply-cluster.md b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/operations/run-cluster/template-apply-cluster.md
new file mode 100644
index 00000000000..ae6bf478ad4
--- /dev/null
+++ b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/operations/run-cluster/template-apply-cluster.md
@@ -0,0 +1,64 @@
+---
+sidebar_position: 2
+---
+
+# 模板配置安装
+
+我们也可以使用 Go 模版语法来编写 Clusterfile(就像 [Helm](https://helm.sh/) 一样,但暂不支持部分模版函数,如 `include`/`tpl`/`require`/`lookup`)。 例如,创建 `Clusterfile.yaml` 如下:
+
+```yaml
+apiVersion: apps.sealos.io/v1beta1
+kind: Cluster
+metadata:
+ name: {{ .Values.clusterName }}
+spec:
+ hosts:
+ - ips: {{ .Values.masters | toYaml | nindent 8 }}
+ roles: ["master", "amd64"]
+ {{- with .Values.nodes }}
+ - ips: {{ . | toYaml | nindent 8 }}
+ roles: ["node", "amd64"]
+ {{- end }}
+ image: {{ .Values.images | toYaml | nindent 4 }}
+ ssh:
+ passwd: {{ env "SSH_PASSWORD" .Values.ssh.passwd }}
+ pk: {{ default "~/.ssh/id_rsa" .Values.ssh.pk }}
+ port: {{ default 22 .Values.ssh.port | int }}
+ user: {{ default "root" .Values.ssh.user }}
+---
+apiVersion: kubeadm.k8s.io/v1beta3
+kind: ClusterConfiguration
+networking:
+ dnsDomain: {{ default "cluster.local" .Values.networking.dnsDomain }}
+ serviceSubnet: {{ default "10.96.0.0/18" .Values.networking.serviceSubnet }}
+ podSubnet: {{ default "100.64.0.0/17" .Values.networking.podSubnet }}
+```
+
+随后,创建一个自定义的 values 文件 `example.values.yaml`:
+
+```yaml
+clusterName: default
+images:
+ - dockerhub.tencentcloudcr.com/labring/kubernetes:v1.23.8
+ - dockerhub.tencentcloudcr.com/labring/calico:v3.24.1
+masters:
+ - 10.74.16.27:22
+ - 10.74.16.140:22
+ - 10.74.16.101:22
+nodes: []
+ssh:
+ # passwd: notSetYet
+ pk: /path/to/private/key/file
+ port: 22
+ user: root
+networking:
+ dnsDomain: cluster.local
+ serviceSubnet: 10.96.0.0/18
+ podSubnet: 100.64.0.0/17
+```
+
+然后就可以像这样部署集群了:
+
+```shell
+$ sealos apply -f Clusterfile.yaml --values example.values.yaml --set clusterName=testlocal --env SSH_PASSWORD=s3cret
+```
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/operations/run-cluster/upgrade-cluster.md b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/operations/run-cluster/upgrade-cluster.md
new file mode 100644
index 00000000000..1a2cbe08276
--- /dev/null
+++ b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/operations/run-cluster/upgrade-cluster.md
@@ -0,0 +1,48 @@
+---
+sidebar_position: 3
+---
+
+# 如何升级集群
+
+如果你想要升级你的 Kubernetes 集群,你只需要运行以下命令:
+
+```sh
+sealos run labring/kubernetes:<新版本号>
+```
+
+确保你已经建立了集群。
+
+## 实例说明
+
+1. 假设你已经运行过以下命令:
+
+```sh
+sealos run labring/kubernetes:v1.24.0 labring/calico:v3.22.1 --masters 192.168.64.8 --nodes 192.168.64.7
+```
+
+2. 现在你想要升级集群到 v1.25.0,你可以这样操作:
+
+```sh
+sealos run labring/kubernetes:v1.25.0
+```
+
+在运行到 'kubeadm upgrade v1.25.0' 的时候,你将看到:
+
+```txt
+[upgrade/version] You have chosen to change the cluster version to "v1.25.0"
+[upgrade/versions] Cluster version: v1.24.0
+[upgrade/versions] kubeadm version: v1.25.0
+[upgrade] Are you sure you want to proceed? [y/N]:
+```
+
+输入 'y' 来继续升级。
+
+如果**出现错误**,你可以再次运行命令 'sealos run labring/kubernetes:v1.25.0'。即使失败,它也能保证得到相同的结果。
+
+## 注意事项
+
+1. **升级不能跨过次版本号**。比如从 'v1.23.0' 升级到 'v1.25.0' 是不允许的。如果你确实需要从 'v1.23.0' 升级到 'v1.25.0',你可以分成两步来操作,比如先从 'v1.23.0' 升级到 'v1.24.0',然后再从 'v1.24.0' 升级到 'v1.25.0'。
+
+2. 一旦升级成功,集群挂载的旧版本镜像就会被替换。添加主节点或工作节点将会应用新版本。
+
+这就是升级 Kubernetes 集群的整个过程。如果你在升级过程中遇到任何问题,不要犹豫,尽快查阅相关文档或者寻求帮助。
\ No newline at end of file
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/quick-start/build-ingress-cluster-image.md b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/quick-start/build-ingress-cluster-image.md
new file mode 100644
index 00000000000..30d2cfa8dc4
--- /dev/null
+++ b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/quick-start/build-ingress-cluster-image.md
@@ -0,0 +1,65 @@
+---
+sidebar_position: 3
+---
+
+# 构建一个 Ingress 集群镜像
+
+这里展示了如何用 helm 构建一个 nginx-ingress 集群镜像。
+
+## 下载 helm chart
+
+```shell
+$ mkdir ingress-nginx && cd ingress-nginx
+$ helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
+$ helm pull ingress-nginx/ingress-nginx
+```
+
+随后就能找到下载的 chart:
+
+```shell
+$ ls
+ingress-nginx-4.1.0.tgz
+```
+
+## 添加镜像列表
+
+sealos 会下载镜像列表中的镜像并缓存到 registry 目录。
+
+目录必须形如 `images/shim/[your image list filename]`:
+
+```shell
+$ cat images/shim/nginxImages
+k8s.gcr.io/ingress-nginx/controller:v1.2.0
+k8s.gcr.io/ingress-nginx/kube-webhook-certgen:v1.1.1
+```
+
+## 编写 Dockerfile
+
+```Dockerfile
+FROM scratch
+COPY ../examples .
+CMD ["helm install ingress-nginx ingress-nginx-4.1.0.tgz --namespace ingress-nginx --create-namespace"]
+```
+
+## 构建集群镜像
+
+```shell
+$ sealos build -f Dockerfile -t docker.io/fanux/ingress-nginx:v1.2.0 .
+```
+
+sealos 在构建的时候会自动添加镜像列表中的镜像依赖到集群镜像中,通过神奇的方式保存了里面依赖的 Docker 镜像。
+并且在到别的环境中运行的时候更神奇的自动检测集群中是否有 Docker 镜像,有的话自动下载,没有的话才会去 k8s.gcr.io 下载。
+用户无需修改 helm chart 中的 docker 镜像地址,这里用到了镜像缓存代理的黑科技。
+
+## 推送到镜像 registry
+
+```shell
+$ sealos login docker.io
+$ sealos push docker.io/fanux/ingress-nginx:v1.2.0
+```
+
+## 运行集群镜像
+
+```shell
+$ sealos run docker.io/fanux/ingress-nginx:v1.2.0
+```
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/quick-start/deploy-kubernetes.md b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/quick-start/deploy-kubernetes.md
new file mode 100644
index 00000000000..6d900af995a
--- /dev/null
+++ b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/quick-start/deploy-kubernetes.md
@@ -0,0 +1,192 @@
+---
+sidebar_position: 2
+keywords: [K8s, K8s 安装, K8s 部署, K8s 离线安装, K8s 离线部署]
+---
+
+# 安装 K8s 集群
+
+Sealos 支持安装 `amd64` 和 `arm64` 架构的 K8s 集群。
+
+## 先决条件
+
+首先需要[下载 Sealos 命令行工具](/self-hosting/lifecycle-management/quick-start/install-cli.md),sealos 是一个简单的 Golang 二进制文件,可以安装在大多数 Linux 操作系统中。
+
+以下是一些基本的安装要求:
+
++ 每个集群节点应该有不同的主机名。主机名不要带下划线。
++ 所有节点的时间需要同步。
++ 需要在 K8s 集群的**第一个 master 节点**上运行 `sealos run` 命令,目前**集群外的节点不支持集群安装**。
++ 建议使用干净的操作系统来创建集群。**不要自己装 Docker!**
++ 支持大多数 Linux 发行版,例如:Ubuntu、CentOS、Rocky linux。
++ 支持 [Docker Hub](https://hub.docker.com/r/labring/kubernetes/tags) 中的所有 Kubernetes 版本。
++ 支持使用 Containerd 作为容器运行时。
++ 在公有云上安装请使用**私有 IP**。
+
+## 查看集群镜像
+
+Sealos 所有的集群镜像都可以在 [cluster-image-docs](https://github.com/labring-actions/cluster-image-docs) 仓库里找到。除了推送到 Docker Hub 之外,这些镜像还被同步到了阿里云的镜像仓库。
+
+Docker Hub 上可以通过以下链接查看 Sealos 所有的集群镜像:[https://hub.docker.com/u/labring](https://hub.docker.com/u/labring).
+
+使用 [Registry Explorer](https://explore.ggcr.dev/) 可以查看 K8s 集群镜像的所有版本,直接输入 `registry.cn-shanghai.aliyuncs.com/labring/kubernetes`,然后点击 “Submit Query”:
+
+![](images/registry-explorer.png)
+
+就会看到这个集群镜像的所有 tag。
+
+Docker Hub 同理,输入 `docker.io/labring/kubernetes` 即可查看所有 tag。
+
+:::info注意
+
+K8s 的小版本号越高,集群越稳定。例如 v1.28.x,其中的 x 就是小版本号。建议使用小版本号比较高的 K8s 版本。到本文截止时间为止,v1.27 最高的版本号是 v1.27.7,而 v1.28 最高的版本号是 v1.28.3,所以**建议使用 v1.27.7**。你需要根据实际情况来选择最佳的 K8s 版本
+
+:::
+
+## 安装 K8s 单机版
+
+```shell
+# sealos version must >= v4.1.0
+$ sealos run registry.cn-shanghai.aliyuncs.com/labring/kubernetes:v1.27.7 registry.cn-shanghai.aliyuncs.com/labring/helm:v3.9.4 registry.cn-shanghai.aliyuncs.com/labring/cilium:v1.13.4 --single
+```
+
+## 安装 K8s 集群
+
+```shell
+$ sealos run registry.cn-shanghai.aliyuncs.com/labring/kubernetes:v1.27.7 registry.cn-shanghai.aliyuncs.com/labring/helm:v3.9.4 registry.cn-shanghai.aliyuncs.com/labring/cilium:v1.13.4 \
+ --masters 192.168.64.2,192.168.64.22,192.168.64.20 \
+ --nodes 192.168.64.21,192.168.64.19 -p [your-ssh-passwd]
+```
+
+注意:labring/helm 应当在 labring/cilium 之前。
+
+参数说明:
+
+| 参数名 | 参数值示例 | 参数说明 |
+| --- | --- | --- |
+| --masters | 192.168.0.2 | K8s master 节点地址列表 |
+| --nodes | 192.168.0.3 | K8s node 节点地址列表 |
+| --ssh-passwd | [your-ssh-passwd] | ssh 登录密码 |
+|kubernetes | labring/kubernetes:v1.25.0 | K8s 集群镜像 |
+
+在干净的服务器上直接执行上面命令,不要做任何多余操作即可安装一个高可用 K8s 集群。
+
+## 安装各种分布式应用
+
+```shell
+sealos run registry.cn-shanghai.aliyuncs.com/labring/helm:v3.9.4 # install helm
+sealos run registry.cn-shanghai.aliyuncs.com/labring/openebs:v3.9.0 # install openebs
+sealos run registry.cn-shanghai.aliyuncs.com/labring/minio-operator:v4.5.5 registry.cn-shanghai.aliyuncs.com/labring/ingress-nginx:4.1.0
+```
+
+这样高可用的 Minio 等应用都有了,不用关心所有的依赖问题。
+
+## 增加 K8s 节点
+
+增加 node 节点:
+
+```shell
+$ sealos add --nodes 192.168.64.21,192.168.64.19
+```
+
+增加 master 节点:
+
+```shell
+$ sealos add --masters 192.168.64.21,192.168.64.19
+```
+
+## 删除 K8s 节点
+
+删除 node 节点:
+
+```shell
+$ sealos delete --nodes 192.168.64.21,192.168.64.19
+```
+
+删除 master 节点:
+
+```shell
+$ sealos delete --masters 192.168.64.21,192.168.64.19
+```
+
+## 清理 K8s 集群
+
+```shell
+$ sealos reset
+```
+
+
+
+## 离线安装 K8s
+
+离线环境只需要提前导入镜像,其它步骤与在线安装一致。
+
+首先在有网络的环境中导出集群镜像:
+
+```shell
+$ sealos pull registry.cn-shanghai.aliyuncs.com/labring/kubernetes:v1.27.7
+$ sealos save -o kubernetes.tar registry.cn-shanghai.aliyuncs.com/labring/kubernetes:v1.27.7
+```
+
+### 导入镜像并安装
+
+将 kubernetes.tar 拷贝到离线环境, 使用 load 命令导入镜像即可:
+
+```shell
+$ sealos load -i kubernetes.tar
+```
+
+剩下的安装方式与在线安装的步骤一致:
+
+```shell
+$ sealos images # 查看集群镜像是否导入成功
+$ sealos run registry.cn-shanghai.aliyuncs.com/labring/kubernetes:v1.27.7 # 单机安装,集群安装同理
+```
+
+### 快速启动 K8s 集群
+
+也可以不用 load 命令导入镜像,直接使用以下命令即可安装 K8s:
+
+```shell
+$ sealos run kubernetes.tar # 单机安装,集群安装同理
+```
+
+## 集群镜像版本支持说明
+
+### 支持 Containerd 的 K8s
+
+推荐使用 Containerd 作为容器运行时 (CRI) 的集群镜像版本,Containerd 是一种轻量级、高性能的容器运行时,与 Docker 兼容。使用 Containerd 的 Kubernetes 镜像可以提供更高的性能和资源利用率。以下是支持 Containerd 的集群镜像版本支持说明:
+
+| K8s 版本 | Sealos 版本 | CRI 版本 | 集群镜像版本 |
+| -------- | ----------------- | -------- | -------------------------- |
+| `<1.25` | `>=v4.0.0` | v1alpha2 | labring/kubernetes:v1.24.0 |
+| `>=1.25` | `>=v4.1.0` | v1alpha2 | labring/kubernetes:v1.25.0 |
+| `>=1.26` | `>=v4.1.4-rc3` | v1 | labring/kubernetes:v1.26.0 |
+| `>=1.27` | `>=v4.2.0-alpha3` | v1 | labring/kubernetes:v1.27.0 |
+| `>=1.28` | `>=v5.0.0` | v1 | labring/kubernetes:v1.28.0 |
+
+根据 Kubernetes 版本的不同,您可以选择不同的 Sealos 版本和 CRI 版本。例如,如果您要使用 Kubernetes v1.26.0 版本,您可以选择 sealos v4.1.4-rc3 及更高版本,并使用 v1 CRI 版本。
+
+### 支持 Docker 的 K8s
+
+当然,你也可以选择使用 Docker 作为容器运行时,以下是支持 Docker 的集群镜像版本支持说明:
+
+| K8s 版本 | Sealos 版本 | CRI 版本 | 集群镜像版本 |
+| -------- | ----------------- | -------- | --------------------------------- |
+| `<1.25` | `>=v4.0.0` | v1alpha2 | labring/kubernetes-docker:v1.24.0 |
+| `>=1.25` | `>=v4.1.0` | v1alpha2 | labring/kubernetes-docker:v1.25.0 |
+| `>=1.26` | `>=v4.1.4-rc3` | v1 | labring/kubernetes-docker:v1.26.0 |
+| `>=1.27` | `>=v4.2.0-alpha3` | v1 | labring/kubernetes-docker:v1.27.0 |
+| `>=1.28` | `>=v5.0.0` | v1 | labring/kubernetes-docker:v1.28.0 |
+
+
+与支持 Containerd 的 Kubernetes 镜像类似,您可以根据 Kubernetes 版本的不同选择不同的 Sealos 版本和 CRI 版本。例如,如果您要使用 Kubernetes v1.26.0 版本,您可以选择 sealos v4.1.4-rc3 及更高版本,并使用 v1 CRI 版本。
+
+### 支持 Containerd 的 k3s
+
+| K3s 版本 | Sealos 版本 | 集群镜像版本 |
+|----------|------------|---------------------|
+| `>=1.24` | `>=v5.0.0` | labring/k3s:v1.24.0 |
+
+## 总结
+
+您可以根据自己的需求和偏好,在不同的镜像类型和版本中进行选择。同时,不要忘记查看 [更新日志](https://github.com/labring/sealos/blob/main/CHANGELOG/CHANGELOG.md),以了解各个版本的更新内容和修复问题。
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/quick-start/images/registry-explorer.png b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/quick-start/images/registry-explorer.png
new file mode 100644
index 00000000000..a9e28004026
Binary files /dev/null and b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/quick-start/images/registry-explorer.png differ
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/quick-start/install-cli.md b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/quick-start/install-cli.md
new file mode 100644
index 00000000000..99c91f281ac
--- /dev/null
+++ b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/quick-start/install-cli.md
@@ -0,0 +1,100 @@
+---
+sidebar_position: 1
+keywords: [sealos, sealos 命令行, sealos 下载]
+---
+
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+
+# 下载 Sealos 命令行工具
+
+你可以通过运行命令来获取版本列表:
+
+```shell
+$ curl --silent "https://api.github.com/repos/labring/sealos/releases" | jq -r '.[].tag_name'
+```
+
+> 注意:在选择版本时,建议使用稳定版本例如 `v4.3.0`。像 `v4.3.0-rc1`、`v4.3.0-alpha1` 这样的版本是预发布版,请谨慎使用。
+
+设置 `VERSION` 环境变量为 latest 版本号,或者将 `VERSION` 替换为您要安装的 Sealos 版本:
+
+```shell
+$ VERSION=`curl -s https://api.github.com/repos/labring/sealos/releases/latest | grep -oE '"tag_name": "[^"]+"' | head -n1 | cut -d'"' -f4`
+```
+
+## 二进制自动下载
+
+```shell
+
+$ curl -sfL https://mirror.ghproxy.com/https://raw.githubusercontent.com/labring/sealos/main/scripts/install.sh | PROXY_PREFIX=https://mirror.ghproxy.com sh -s ${VERSION} labring/sealos
+
+```
+
+## 二进制手动下载
+
+
+
+
+```shell
+$ wget https://mirror.ghproxy.com/https://github.com/labring/sealos/releases/download/${VERSION}/sealos_${VERSION#v}_linux_amd64.tar.gz \
+ && tar zxvf sealos_${VERSION#v}_linux_amd64.tar.gz sealos && chmod +x sealos && mv sealos /usr/bin
+```
+
+
+
+
+```shell
+$ wget https://mirror.ghproxy.com/https://github.com/labring/sealos/releases/download/${VERSION}/sealos_${VERSION#v}_linux_arm64.tar.gz \
+ && tar zxvf sealos_${VERSION#v}_linux_arm64.tar.gz sealos && chmod +x sealos && mv sealos /usr/bin
+```
+
+
+
+
+## 包管理工具安装
+
+### DEB 源
+
+```shell
+$ echo "deb [trusted=yes] https://apt.fury.io/labring/ /" | sudo tee /etc/apt/sources.list.d/labring.list
+$ sudo apt update
+$ sudo apt install sealos
+```
+
+### RPM 源
+
+```shell
+$ sudo cat > /etc/yum.repos.d/labring.repo << EOF
+[fury]
+name=labring Yum Repo
+baseurl=https://yum.fury.io/labring/
+enabled=1
+gpgcheck=0
+EOF
+$ sudo yum clean all
+$ sudo yum install sealos
+```
+
+## 源码安装
+
+### 前置依赖
+1. `linux`
+2. `git`
+3. `golang` 1.20+
+4. `libgpgme-dev libbtrfs-dev libdevmapper-dev`
+
+如果在 `arm64` 环境下需要添加 `:arm64` 后缀。
+
+### 构建
+
+```shell
+# git clone the repo
+$ git clone https://github.com/labring/sealos.git
+# just make it
+$ make build BINS=sealos
+```
+
+## 下一步
+
+[安装 K8s 集群](/self-hosting/lifecycle-management/quick-start/deploy-kubernetes.md)。
+
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/Image-cri-shim/_category_.json b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/Image-cri-shim/_category_.json
new file mode 100644
index 00000000000..950b839be0a
--- /dev/null
+++ b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/Image-cri-shim/_category_.json
@@ -0,0 +1,3 @@
+{
+ "position" : 3
+}
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/Image-cri-shim/image-cri-shim.md b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/Image-cri-shim/image-cri-shim.md
new file mode 100644
index 00000000000..2a2fb7892ca
--- /dev/null
+++ b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/Image-cri-shim/image-cri-shim.md
@@ -0,0 +1,121 @@
+---
+sidebar_position: 3
+---
+
+# image-cri-shim 使用指南
+
+## 工作原理
+
+image-cri-shim 是一个基于 CRI (Container Runtime Interface) 和 kubelet 的 gRPC (Google Remote Procedure Call) shim。CRI 是 Kubernetes 中用于与容器运行时进行交互的接口,而 kubelet 是负责维护容器运行状态和节点级别的资源管理的 Kubernetes 组件。
+
+image-cri-shim 的主要功能是自动识别镜像名称,让用户在使用 Kubernetes 部署容器时无需手动指定镜像名称。这样可以降低用户的操作难度,提高部署容器的便利性。
+
+在实际使用中,image-cri-shim 可以作为一个中间件,接收来自 kubelet 的请求,然后将请求转发给容器运行时。通过自动识别镜像名称,image-cri-shim 可以简化容器镜像的部署流程,减轻用户的操作负担。
+
+```
++------------+ +----------------+ +-------------------+
+| User | | Kubelet | | image-cri-shim |
+| (Kubernetes| | (Node agent) | | (Middleware) |
+| Manifest) | | | | |
++-----+------+ +-------+--------+ +-------+-----------+
+ | | |
+ | YAML Manifest | |
+ |---------------> | |
+ | | |
+ | | |
+ | | CRI Request |
+ | |------------------------> |
+ | | |
+ | | Image Name |
+ | | Auto-Recognition |
+ | | |
+ | | |
+ | | CRI Response |
+ | | <------------------------+
+ | | |
+ | | |
+ | Container | |
+ | Deployment | |
+ | <----------------------| |
+ | | |
+ | | |
++------------+ +-------+--------+ +-------+-----------+
+
+```
+
+从上述流程图可以看出,用户创建一个包含容器信息的 Kubernetes YAML 清单,然后将该清单提交给 kubelet。kubelet 是 Kubernetes 节点上的代理,负责管理容器。
+接着,kubelet 将 CRI 请求发送给 image-cri-shim 中间件。image-cri-shim 的主要任务是自动识别镜像名称,它会处理这个 CRI 请求并获取相关的镜像信息。当 image-cri-shim 识别到镜像名称后,它会将 CRI 响应返回给 kubelet。
+
+最后,kubelet 使用从 image-cri-shim 获取的镜像名称来部署容器。这个过程对用户是透明的,用户无需手动指定镜像名称,从而简化了容器部署流程并提高了便利性。
+
+## 架构图
+
+image-cri-shim 的架构如下图所示:
+
+![](images/image-cri-shim.png)
+
+
+## 使用说明
+
+```yaml
+shim: /var/run/image-cri-shim.sock
+cri: /run/containerd/containerd.sock
+address: http://sealos.hub:5000
+force: true
+debug: true
+timeout: 15m
+auth: admin:passw0rd
+
+registries:
+- address: http://172.18.1.38:5000
+ auth: admin:passw0rd
+```
+这段配置文件是一个用于设置 image-cri-shim 的 YAML 格式文件。配置文件中包含了一些关键的参数,以下是每个参数的解释:
+
+1. shim: 指定 image-cri-shim 的 UNIX 套接字文件路径。这个路径用于与 kubelet 之间的通信。
+2. cri: 指定容器运行时(如 containerd)的 UNIX 套接字文件路径。image-cri-shim 会使用这个路径与容器运行时进行通信。
+3. address: 定义镜像仓库的地址。在本例中,镜像仓库地址为 http://sealos.hub:5000。
+4. force: 设置为 true 时,image-cri-shim 会在强制启动shim,无需等待cri启动后启动。
+5. debug: 设置为 true 时,启用调试模式,输出更多的日志信息。
+6. timeout: 定义镜像操作的超时时间。在本例中,超时时间为 15 分钟(15m)。
+7. auth: 定义用于访问镜像仓库的身份验证凭据。在本例中,用户名为 admin,密码为 passw0rd。
+
+此外,配置文件还包含了一个 registries 列表,用于定义其他镜像仓库及其身份验证凭据。在这个例子中,只有一个其他仓库:
+- address: 该仓库的地址为 http://172.18.1.38:5000。
+- auth: 用于访问该仓库的身份验证凭据。在本例中,用户名为 admin,密码为 passw0rd。
+这个配置文件为 image-cri-shim 提供了所需的信息,以便正确地与 kubelet 和容器运行时(如 containerd)进行通信,以及访问和管理镜像仓库。
+
+注意: image-cri-shim 能够同时兼容 CRI API v1alpha2 和 v1。
+
+### 管理服务
+
+image-cri-shim 通常作为一个系统服务运行。要管理 image-cri-shim,您可以使用系统服务管理工具(如 systemctl)来启动、停止、重启或查看服务状态。首先,确保您已经正确地安装了 image-cri-shim 并将其配置为一个系统服务。
+
+1. 启动服务: `systemctl start image-cri-shim`
+2. 停止服务: `systemctl stop image-cri-shim`
+3. 重启服务: `systemctl restart image-cri-shim`
+4. 查看服务状态: `systemctl status image-cri-shim`
+
+### 日志管理
+
+要查看 image-cri-shim 服务的日志,您可以使用 journalctl 命令。journalctl 是一个用于查询和显示系统日志的工具,它与 systemd 服务管理器一起使用。
+
+以下是使用 journalctl 查看 image-cri-shim 服务日志的命令:
+
+```shell
+journalctl -u image-cri-shim
+```
+
+这将显示 image-cri-shim 服务的全部日志。如果您希望实时查看日志,可以添加 -f 参数:
+
+```shell
+journalctl -u image-cri-shim -f
+```
+
+此外,您还可以根据时间过滤日志。例如,如果您只想查看过去一小时的日志,可以使用以下命令:
+
+```shell
+journalctl -u image-cri-shim --since "1 hour ago"
+```
+
+这些命令应该能帮助您查看和分析 image-cri-shim 服务的日志,从而更好地了解服务的运行状态和可能出现的问题。
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/Image-cri-shim/images/image-cri-shim.png b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/Image-cri-shim/images/image-cri-shim.png
new file mode 100644
index 00000000000..5c8d5f81b23
Binary files /dev/null and b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/Image-cri-shim/images/image-cri-shim.png differ
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/lvscare/_category_.json b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/lvscare/_category_.json
new file mode 100644
index 00000000000..e47d9e07a6d
--- /dev/null
+++ b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/lvscare/_category_.json
@@ -0,0 +1,3 @@
+{
+ "position" : 99
+}
\ No newline at end of file
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/lvscare/images/01.webp b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/lvscare/images/01.webp
new file mode 100644
index 00000000000..0cc05e478e9
Binary files /dev/null and b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/lvscare/images/01.webp differ
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/lvscare/lvscare.md b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/lvscare/lvscare.md
new file mode 100644
index 00000000000..683793f0049
--- /dev/null
+++ b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/lvscare/lvscare.md
@@ -0,0 +1,74 @@
+# LVScare 使用指南
+
+## 介绍
+
+LVScare是一款基于IPVS技术的轻量级负载均衡和健康检查工具,可以实时监控和管理后端服务。Sealos,一个云操作系统,它的生命周期管理是一个基于kubeadm的Kubernetes HA安装工具,适用于在任何Linux系统中安装和升级高可用Kubernetes集群。两者结合能实现Kubernetes master节点的高可用性。Sealos利用其生命周期管理能力,通过配合LVScare的轻量级,0依赖,高可用的特性,可以非常有效地保证Kubernetes集群的稳定性和可靠性。
+
+### LVScare的工作原理与特点
+
+LVScare通过IPVS实时监控后端服务(real servers)的健康状态。如果某个服务变得不可用,LVScare会立即将其权重设为0(用于TCP优雅终止),并在下一次检查期间从服务列表中移除。服务恢复正常后,LVScare会自动将其重新加入到服务列表。LVScare的这种设计使得它具备轻量级,0依赖,高可用的特性。占用资源少,稳定可靠,类似于kube-proxy的实现,可以通过ipvs实现的localLB保证服务的持续可用。
+
+## Sealos与LVScare的集成
+
+在Sealos中,我们利用了官方推荐的静态Pod的方式,自动配置和管理LVScare,以实现Kubernetes集群的高可用性。Sealos会在安装Kubernetes集群的过程中自动使用LVScare进行master节点的健康检查和负载均衡。这意味着,即使某个master节点出现故障,也不会影响Kubernetes集群的整体功能。
+
+![](./images/01.webp)
+
+### 如何运行LVScare静态Pod
+
+首先,通过`sealctl static-pod`命令生成LVScare的配置,并将其放入`/etc/kubernetes/manifests`目录。这样,Kubernetes集群中的所有节点都能获取到这份配置。
+
+```bash
+lvscare care --vs 10.103.97.12:6443 --rs 192.168.0.2:6443 --rs 192.168.0.3:6443 --rs 192.168.0.4:6443 --interval 5 --mode route
+```
+
+### 生成和调整静态Pod配置
+
+在需要在每个节点上启动LVScare时,我们可以使用以下命令生成静态Pod的配置:
+
+```bash
+sealctl static-pod lvscare --vip 10.103.97.2:6443 --name lvscare --image lvscare:latest --masters 192.168.0.2:6443,192.168
+
+.0.3:6443 --print
+```
+
+当master节点有变化时,Sealos只需重新执行`sealctl static-pod`命令即可调整master节点,简化了维护静态Pod的逻辑。在集群join节点之前,我们需要调用`sealctl ipvs`(该命令直接调用LVScare sdk)手动启动IPVS规则,维护好IPVS集群。节点join成功后,Kubernetes的静态Pod就可以接管IPVS规则了。
+
+## 使用LVScare的优势
+
+### 高可用性
+
+结合LVScare,Sealos可以实现Kubernetes集群master节点的高可用性。
+
+### 健康检查机制
+
+LVScare的健康检查机制可以及时发现并处理问题,防止单节点故障引发的更大问题。
+
+### 无缝集成
+
+作为Sealos中的静态Pod,LVScare可以与Kubernetes集群其他部分无缝集成。
+
+### 简化运维
+
+Sealos自动配置和管理LVScare,大大简化了Kubernetes集群的运维工作。
+
+## LVScare使用示例
+
+请注意,所有的real server需要在同一主机上监听,并设置为`route`模式。然后,你可以在前台运行LVScare。例如:
+
+```bash
+docker run -p 8081:80 --name echoserver1 -d cilium/echoserver
+docker run -p 8082:80 --name echoserver2 -d cilium/echoserver
+docker run -p 8083:80 --name echoserver3 -d cilium/echoserver
+lvscare care --vs 169.254.0.1:80 --rs 127.0.0.1:8081 --rs 127.0.0.1:8082 --rs 127.0.0.1:8083 --logger DEBG --health-schem http --health-path /
+```
+
+## 清理
+
+最后,你可以使用以下命令进行清理:
+
+```bash
+lvscare care --vs 169.254.0.1:80 --logger DEBG -C
+```
+
+结论:LVScare是一款基于IPVS的轻量级负载均衡和健康检查工具,它能与Sealos无缝集成,极大地提高了Kubernetes集群的可用性和性能。试一试,看看LVScare如何帮助你更好地管理你的Kubernetes集群!
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealctl/_category_.json b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealctl/_category_.json
new file mode 100644
index 00000000000..a788e786e6c
--- /dev/null
+++ b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealctl/_category_.json
@@ -0,0 +1,3 @@
+{
+ "position" : 2
+}
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealctl/cert.md b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealctl/cert.md
new file mode 100644
index 00000000000..9de055627c8
--- /dev/null
+++ b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealctl/cert.md
@@ -0,0 +1,31 @@
+---
+sidebar_position: 1
+---
+
+
+# cert 证书管理
+
+`cert` 命令用于生成 Kubernetes 集群所需的证书文件。在 Kubernetes 集群中,证书用于确保组件之间的通信安全,例如 API server、kubelet 和 etcd 等。证书通过 TLS(Transport Layer Security)协议实现加密,以确保数据在传输过程中的保密性和完整性。
+
+`sealctl cert` 命令可以根据提供的参数自动生成证书。这些参数包括节点 IP、节点名称、服务 CIDR、DNS 域以及可选的其他备用名称。通过生成并配置这些证书,您可以确保 Kubernetes 集群的安全通信。
+
+
+
+```
+cert 命令用于生成 Kubernetes 证书。
+
+参数:
+ --alt-names 备用名称,例如 sealos.io 或 10.103.97.2。可以包含多个备用名称。
+ --node-name 节点名称,例如 master0。
+ --service-cidr 服务网段,例如 10.103.97.2/24。
+ --node-ip 节点的 IP 地址,例如 10.103.97.2。
+ --dns-domain 集群 DNS 域,默认值为 cluster.local。
+ --cert-path Kubernetes 证书文件路径,默认值为 /etc/kubernetes/pki。
+ --cert-etcd-path Kubernetes etcd 证书文件路径,默认值为 /etc/kubernetes/pki/etcd。
+
+示例:
+ sealctl cert --alt-names sealos.io --alt-names 10.103.97.2 \
+ --node-name master0 --service-cidr 10.103.97.2/24 \
+ --node-ip 10.103.97.2 --dns-domain cluster.local
+
+```
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealctl/cri.md b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealctl/cri.md
new file mode 100644
index 00000000000..cd36074f7b6
--- /dev/null
+++ b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealctl/cri.md
@@ -0,0 +1,48 @@
+---
+sidebar_position: 2
+---
+
+# CRI 容器管理
+
+`cri` 命令是用于管理和检查 Kubernetes 集群中的容器运行时(Container Runtime Interface,CRI)环境。容器运行时是负责运行容器的底层技术,如 Docker、containerd 或者 CRI-O 等。在 Kubernetes 中,容器运行时用于启动、停止和管理容器,以支持集群中的工作负载。
+
+`sealctl cri` 命令提供了一组子命令,使您能够执行与容器运行时相关的各种操作,例如检查运行时是否是 Docker、是否正在运行,列出 Kubernetes 容器,删除容器,拉取镜像,检查镜像是否存在以及获取 CGroup 驱动信息等。
+
+通过使用 `sealctl cri` 命令,您可以轻松地管理和检查 Kubernetes 集群中的容器运行时环境,确保其正确配置和正常运行。
+
+
+
+```shell
+sealctl cri [flags]
+```
+
+
+
+子命令:
+
+1. `socket`:检测 CRI 套接字。
+
+```shell
+sealctl cri socket
+```
+
+2. `cgroup-driver`:获取容器运行时的 cgroup 驱动。
+
+```shell
+sealctl cri cgroup-driver [--short]
+```
+
+- `--short`:仅打印结果。
+
+全局参数:
+
+- `--socket-path`:CRI 套接字路径。
+- `--config`:CRI 配置文件。
+
+示例:
+
+```shell
+sealctl cri socket
+sealctl cri cgroup-driver --short
+
+```
\ No newline at end of file
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealctl/hostname.md b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealctl/hostname.md
new file mode 100644
index 00000000000..a6d4451d071
--- /dev/null
+++ b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealctl/hostname.md
@@ -0,0 +1,20 @@
+---
+sidebar_position: 3
+---
+
+
+# hostname 获取主机名
+
+获取操作系统的主机名:
+
+```shell
+sealctl hostname
+```
+
+示例:
+
+```shell
+sealctl hostname
+```
+
+执行此命令将返回操作系统的主机名。无需传递任何参数。
\ No newline at end of file
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealctl/hosts.md b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealctl/hosts.md
new file mode 100644
index 00000000000..df7431ec469
--- /dev/null
+++ b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealctl/hosts.md
@@ -0,0 +1,59 @@
+---
+sidebar_position: 4
+---
+
+# hosts 管理
+
+`hosts` 命令是用于管理操作系统的 hosts 文件。hosts 文件是一个用于解析域名到 IP 地址的文件,通常在本地系统中用于覆盖 DNS 解析。通过修改 hosts 文件,您可以为一个特定的域名分配一个自定义的 IP 地址,而不必依赖 DNS 服务器。
+
+`sealctl hosts` 提供了以下三个子命令来实现 hosts 文件的管理:
+
+1. `list`:列出当前 hosts 文件中的所有条目。
+2. `add`:向 hosts 文件中添加一个新的域名与 IP 地址映射。
+3. `delete`:从 hosts 文件中删除一个指定的域名与 IP 地址映射。
+
+通过这些子命令,您可以方便地查看、添加和删除 hosts 文件中的映射,从而更好地控制域名到 IP 地址的解析。
+
+1. `sealctl hosts list`:列出当前 hosts 文件中的条目。
+
+ 示例:
+
+ ```shell
+ sealctl hosts list
+ ```
+
+
+
+2. `sealctl hosts add`:向 hosts 文件中添加一个新条目。
+
+ 参数:
+
+ - `--ip`:IP 地址(必填)
+ - `--domain`:域名(必填)
+
+ 示例:
+
+ ```shell
+ sealctl hosts add --ip 192.168.1.100 --domain example.com
+ ```
+
+3. `sealctl hosts delete`:从 hosts 文件中删除一个条目。
+
+ 参数:
+
+ - `--domain`:要删除的域名(必填)
+
+ 示例:
+
+ ```shell
+ sealctl hosts delete --domain example.com
+ ```
+
+注意:您可以在任何 `hosts` 子命令后面添加 `--path` 参数来指定 hosts 文件的路径。默认路径为 `/etc/hosts`(Linux 系统)。
+
+示例:
+
+```shell
+sealctl hosts list --path /custom/path/hosts
+```
+
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealctl/ipvs.md b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealctl/ipvs.md
new file mode 100644
index 00000000000..b903d23e648
--- /dev/null
+++ b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealctl/ipvs.md
@@ -0,0 +1,72 @@
+---
+sidebar_position: 6
+---
+
+# ipvs 管理
+
+`ipvs` 命令用于创建和管理本地的 IPVS 负载均衡。IPVS(IP Virtual Server)是 Linux 内核中的一个模块,它允许在内核空间实现高性能的负载均衡。`ipvs` 命令通过管理虚拟服务器和真实服务器的映射关系,实现对服务的负载均衡。
+
+`sealctl ipvs` 支持以下功能:
+
+1. 创建和管理虚拟服务器 (virtual server) 和真实服务器 (real server) 的映射关系。
+2. 提供健康检查功能,定期检查真实服务器的健康状态,并根据需要对其进行上下线操作。
+3. 支持两种代理模式:`route` 和 `link`。
+4. 支持配置代理调度算法(如轮询、加权轮询等)。
+5. 支持一次性创建代理规则(`--run-once` 标志)或持续运行并管理代理规则。
+6. 支持清理功能:通过 `-C` 或 `--clean` 标志,可以清除现有的 IPVS 规则并退出。
+
+通过 `sealctl ipvs` 命令,用户可以轻松地在本地创建和管理高性能的负载均衡服务。
+
+**用法**
+
+```shell
+sealctl ipvs [flags]
+```
+
+**选项**
+
+- `-C`, `--clean`: 清除现有规则,然后退出。
+- `--health-insecure-skip-verify`: 跳过不安全请求的验证(默认为 true)。
+- `--health-path string`: 用于探测的 URL 路径(默认为 "/healthz")。
+- `--health-req-body string`: 健康检查器发送的请求体。
+- `--health-req-headers stringToString`: HTTP 请求头(默认为 [])。
+- `--health-req-method string`: HTTP 请求方法(默认为 "GET")。
+- `--health-schem string`: 探测器的 HTTP 方案(默认为 "https")。
+- `--health-status ints`: 有效状态码。
+- `-h`, `--help`: ipvs 帮助。
+- `-i`, `--iface string`: 要创建的虚拟接口的名称,与 kube-proxy 的行为相同(默认为 "lvscare")。仅在 mode=link 时启用。
+- `--interval durationOrSecond`: 健康检查间隔(默认为 0s)。
+- `--ip ip`: 作为路由网关的目标 IP,与 route 模式一起使用。
+- `--logger string`: 日志级别:DEBG/INFO(默认为 "INFO")。
+- `--masqueradebit int`: IPTables masquerade 位。仅在 mode=link 时启用。
+- `--mode string`: 代理模式:route/link(默认为 "route")。
+- `--rs strings`: 真实服务器地址,例如 192.168.0.2:6443。
+- `--run-once`: 创建代理规则并退出。
+- `--scheduler string`: 代理调度器(默认为 "rr")。
+- `--vs string`: 虚拟服务器地址,例如 169.254.0.1:6443。
+
+**全局选项**
+
+- `--debug`: 启用调试日志。
+- `--show-path`: 启用显示代码路径。
+
+**使用文档**
+
+要使用 `sealctl ipvs` 命令,请按照以下步骤操作:
+
+1. 为命令提供必要的选项和参数。
+2. 执行命令,将创建或管理本地 IPVS 负载均衡。
+
+**示例**
+
+创建代理规则并退出:
+
+```shell
+sealctl ipvs --vs 169.254.0.1:6443 --rs 192.168.0.2:6443 --run-once
+```
+
+清除现有 IPVS 规则:
+
+```shell
+sealctl ipvs --clean
+```
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealctl/registry.md b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealctl/registry.md
new file mode 100644
index 00000000000..dbe1b40640e
--- /dev/null
+++ b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealctl/registry.md
@@ -0,0 +1,48 @@
+---
+sidebar_position: 5
+---
+
+# registry 镜像仓库
+
+## Sealos:sealctl registry serve 命令详解与使用指南
+
+在构建并管理 Docker 镜像仓库过程中,Sealos 提供了 `sealctl registry serve` 命令以方便用户进行相关操作。本文将详细介绍 `sealctl registry serve` 命令的使用方法和示例。
+
+### 基本介绍
+
+`sealctl registry serve` 命令的主要作用是启动一个 Docker 分发镜像仓库服务器,支持两种模式:`filesystem` 和 `inmem`。
+
+1. **Filesystem 模式**:在此模式下,sealctl 将运行一个针对指定目录的 Docker 分发镜像仓库服务器。该模式下,镜像数据将存储在硬盘上。**该命令还用于sealos做增量镜像同步**
+
+2. **In-memory 模式**:在此模式下,sealctl 将运行一个内存中的 Docker 分发镜像仓库服务器。该模式下,镜像数据仅保存在内存中,进程退出后数据将丢失。
+
+### 命令参数
+
+`sealctl registry serve filesystem ` 命令支持以下参数:
+
+- `--disable-logging`: 禁用日志输出,默认为 false。
+- `--log-level`: 配置日志级别,默认为 'error'。
+- `-p, --port`: 服务器监听的端口,默认为随机未使用的端口。
+
+### 使用示例
+
+以下是一些 `sealctl registry serve` 命令的使用示例:
+
+#### 在文件系统中启动镜像仓库服务器
+
+```bash
+sealctl registry serve filesystem --port=5000
+```
+
+以上命令将在端口5000上启动一个文件系统镜像仓库服务器。
+
+#### 在内存中启动镜像仓库服务器
+
+```bash
+sealctl registry serve inmem
+```
+
+以上命令将启动一个内存镜像仓库服务器。该服务器在进程退出后,存储的数据将丢失。
+
+通过 `sealctl registry serve` 命令,用户可以轻松地管理和操作 Docker 镜像仓库。无论是在开发环境,还是在生产环境中,它都是一个强大且易用的工具。
+
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealctl/sealctl.md b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealctl/sealctl.md
new file mode 100644
index 00000000000..8ee151bd6dc
--- /dev/null
+++ b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealctl/sealctl.md
@@ -0,0 +1,68 @@
+---
+sidebar_position: 0
+---
+
+# Sealctl 使用指南
+
+Sealos 提供 sealctl 是使用 Sealos 与 集群节点进行操作的命令行工具。它包括以下几个子命令:
+
+1. `cert`:管理证书,用于生成、查看和更新TLS证书。
+2. `cri`:管理容器运行时接口(CRI)配置,例如Docker或containerd。
+3. `hostname`:查看或设置系统主机名。
+4. `hosts`:管理系统的hosts文件,用于定义静态主机名到IP地址映射。
+5. `ipvs`:管理IP虚拟服务器(IPVS)规则,用于负载均衡和代理。
+6. `registry`:管理镜像仓库,用于存储容器镜像仓库格式镜像以及镜像仓库管理。
+7. `static_pod`:管理静态Pod,可以创建静态Pod的配置。
+8. `token`:生成和管理访问令牌,用于授权访问Kubernetes集群。
+
+通过这些子命令,您可以方便地管理和配置您的Sealos系统,实现对容器、镜像仓库、网络等各个方面的控制。
+
+
+
+
+# sealos 依赖命令
+
+1. **添加Hosts**
+
+ 在指定 IP 地址的节点上添加一个新的 hosts 记录。参数包括 IP 地址、主机名和域名。使用`sealctl hosts add `命令
+
+2. **删除Hosts**
+
+ 删除指定 IP 地址节点上的一个 hosts 记录。参数包括 IP 地址和域名。使用`sealctl hosts delete`命令
+
+3. **hostname**
+
+ 获取指定 IP 地址节点的主机名。 使用`sealctl hostname`命令
+
+4. **IPVS负载均衡**
+
+ 在指定 IP 地址的节点上配置 IPVS,实现负载均衡。参数包括节点 IP 地址、虚拟 IP 地址和主节点 IP 地址列表。 使用`sealctl ipvs`命令
+
+5. **清空IPVS规则**
+
+ 清除指定 IP 地址节点上的 IPVS 配置。参数包括节点 IP 地址和虚拟 IP 地址。 使用`sealctl ipvs`命令
+
+6. **静态POD生成**
+
+ 在指定 IP 地址的节点上部署一个静态 Pod(lvscare)。参数包括节点 IP 地址、虚拟 IP 地址、Pod 名称、镜像名称和主节点 IP 地址列表。使用`sealctl static-pod lvscare`命令
+
+7. **处理集群交互认证的token**
+
+ 为指定 IP 地址的节点生成一个 token。参数包括节点 IP 地址、配置文件和证书密钥。使用`sealctl token`命令
+
+8. **获取节点的cgroup**
+
+ 获取指定 IP 地址节点的cri CGroup 信息。 使用`sealctl cri cgroup`命令
+
+9. **获取节点的cri-socket**
+
+ 获取指定 IP 地址节点的 cri Socket 信息。 使用`sealctl cri socket`命令
+
+10. **在节点生成https自签名证书**
+
+ 为指定 IP 地址的节点生成证书。参数包括节点 IP 地址、备用名称列表、主机 IP 地址、主机名、服务 CIDR 和 DNS 域名。 使用`sealctl cert` 命令
+
+11. **节点启动registry**
+
+ 在指定节点启动regsitry,为进行增量镜像同步。使用`sealctl registry serve`命令
+
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealctl/static-pod.md b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealctl/static-pod.md
new file mode 100644
index 00000000000..0b6e8450802
--- /dev/null
+++ b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealctl/static-pod.md
@@ -0,0 +1,41 @@
+---
+sidebar_position: 7
+---
+
+# static-pod 配置
+
+`static-pod` 命令用于生成静态 Pod,这些 Pod 是由 kubelet 直接管理的,而不是通过 API 服务器。静态 Pod 在某些场景下非常有用,比如设置和管理 Kubernetes 集群中的控制平面组件。
+
+`sealctl static-pod` 命令提供了一种简便的方法,用于生成用于特定目的的静态 Pod 配置文件。目前,它主要支持生成 `lvscare` 静态 Pod,`lvscare` 是一种用于管理 IPVS 规则的工具。
+
+使用 `sealctl static-pod lvscare`,您可以根据指定的参数(如 VIP、主节点地址、镜像名称等)生成 `lvscare` 静态 Pod YAML 文件。然后,该文件可以存储在 kubelet 的静态 Pod 路径下,kubelet 将自动创建和管理相应的 Pod。
+
+
+
+**用法**
+
+```shell
+sealctl static-pod lvscare [flags]
+```
+
+**选项**
+
+- `--vip`: 默认 VIP IP(默认为 "10.103.97.2:6443")。
+- `--name`: 生成 lvscare 静态 Pod 名称。
+- `--image`: 生成 lvscare 静态 Pod 镜像(默认为 `sealos.hub:5000/sealos/lvscare:latest`)。
+- `--masters`: 生成 master 地址列表。
+- `--print`: 是否打印 YAML。
+
+**示例**
+
+生成 lvscare 静态 Pod 文件并打印 YAML:
+
+```shell
+sealctl static-pod lvscare --vip 10.103.97.2:6443 --name lvscare --image lvscare:latest --masters 192.168.0.2:6443,192.168.0.3:6443 --print
+```
+
+如果没有使用 `--print` 选项,将直接生成配置文件到 `/etc/kubernetes/manifests` 并启用静态 Pod:
+
+```shell
+sealctl static-pod lvscare --vip 10.103.97.2:6443 --name lvscare --image lvscare:latest --masters 192.168.0.2:6443,192.168.0.3:6443
+```
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealctl/tar&&untar.md b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealctl/tar&&untar.md
new file mode 100644
index 00000000000..a37f10ccb64
--- /dev/null
+++ b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealctl/tar&&untar.md
@@ -0,0 +1,60 @@
+---
+sidebar_position: 9
+---
+
+# tar 与 untar 详解
+
+Sealos 提供了 `sealctl tar` 和 `sealctl untar` 命令以便于用户进行文件或文件夹的压缩和解压。本文将详细介绍这两个命令的使用方法。
+
+## sealctl tar 命令
+
+`sealctl tar` 命令的主要作用是将指定路径的目录压缩成归档文件。注意,这将剥离父目录。
+
+**命令参数:**
+
+- `--clear`:是否在压缩完成后删除源文件,默认为 false。
+- `--compression`:压缩算法,可用选项有 tar/gzip/zstd/disable,默认为 disable。
+- `-o, --output`:归档文件的路径。
+
+**基本用法:**
+
+```bash
+sealctl tar [flags] [options]
+```
+
+## sealctl untar 命令
+
+`sealctl untar` 命令的主要作用是在指定路径 `src` 查找匹配 glob 模式的归档文件,并在 `dst` 路径进行解压。
+
+**命令参数:**
+
+- `--clear`:是否在解压完成后删除源文件,默认为 false。
+- `-o, --output`:解压归档文件的路径。
+
+**基本用法:**
+
+```bash
+sealctl untar [flags] [options]
+```
+
+## 使用示例
+
+以下是一些 `sealctl tar` 和 `sealctl untar` 命令的使用示例:
+
+**创建一个压缩文件:**
+
+```bash
+sealctl tar --output=/path/to/archive.tar /path/to/source
+```
+
+以上命令将 `source` 目录压缩为 `archive.tar` 文件。
+
+**解压一个压缩文件:**
+
+```bash
+sealctl untar --output=/path/to/destination /path/to/archive.tar
+```
+
+以上命令将 `archive.tar` 文件解压到 `destination` 目录。
+
+通过 `sealctl tar` 和 `sealctl untar` 命令,用户可以轻松地进行文件或文件夹的压缩和解压操作。这两个命令在文件管理中,尤其是在备份和迁移文件时,都是非常有用的工具。
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealctl/token.md b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealctl/token.md
new file mode 100644
index 00000000000..8a9c08571ae
--- /dev/null
+++ b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealctl/token.md
@@ -0,0 +1,38 @@
+---
+sidebar_position: 8
+---
+
+# token 管理
+
+`sealctl token` 命令的主要目的是为了生成一个用于连接主节点(master)和工作节点(node)的 token。在 Kubernetes 集群中,当您想要将一个新的工作节点加入到集群时,通常需要提供一个 token 作为身份验证。这个 token 确保只有拥有正确 token 的工作节点才能加入到集群中。
+
+`sealctl token` 命令通过接收配置文件(可选)和证书密钥(可选)作为参数,生成一个用于身份验证的 token。在默认情况下,如果不提供配置文件和证书密钥,命令会使用内置的默认设置来生成 token。
+
+总之,`sealctl token` 命令用于生成一个用于身份验证的 token,允许工作节点安全地加入到 Kubernetes 集群中。使用这个命令可以简化节点加入集群的过程,确保集群的安全性。
+
+
+**用法**
+
+```shell
+sealctl token [config] [certificateKey]
+```
+
+**参数**
+
+- `config`: 配置文件(可选)。
+- `certificateKey`: 证书密钥(可选)。
+
+**示例**
+
+使用默认参数生成 token:
+
+```shell
+sealctl token
+```
+
+使用自定义配置文件和证书密钥生成 token:
+
+```shell
+sealctl token my-config my-certificate-key
+```
+
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/_category_.json b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/_category_.json
new file mode 100644
index 00000000000..c9cb98244eb
--- /dev/null
+++ b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/_category_.json
@@ -0,0 +1,3 @@
+{
+ "position" : 1
+}
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/app-cluster-image.md b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/app-cluster-image.md
new file mode 100644
index 00000000000..ec858e07d4c
--- /dev/null
+++ b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/app-cluster-image.md
@@ -0,0 +1,41 @@
+---
+sidebar_position: 11
+---
+
+# 应用集群镜像使用指南
+
+Sealos 提供了一个名为 [cluster-image](https://github.com/labring-actions/cluster-image) 的仓库,该仓库在 GitHub 上用于构建并发布 Kubernetes 集群的应用镜像。这些镜像可以通过提交代码到这个仓库来创建,并可以发布到 `docker.io/labring/` 作为官方的应用镜像。它支持构建 Docker 容器镜像以及应用的集群镜像。
+
+## 镜像的类型
+
+仓库支持三种类型的镜像构建:
+
+- **APP集群镜像**:主要是构建应用镜像,使用 GitHub Action,会同时支持 amd64 和 arm64 架构。
+- **配置集群镜像**:主要是构建配置镜像,使用 GitHub Action,没有容器镜像不区分架构,一般是一些脚本相关的配置或者覆盖默认的配置镜像。
+- **Docker镜像**:主要是构建容器镜像,使用 GitHub Action,会同时支持 amd64 和 arm64 架构。
+
+## 镜像构建的工作流程
+
+你可以直接在 GitHub 仓库中创建 Issue 来触发镜像的构建。这里提供了几个示例可以参考:
+
+- `/imagebuild_dockerimages helm v3.8.2 Key1=Value1,Key2=Value2`
+- `/imagebuild_configs coredns v0.0.1`
+- `/imagebuild_apps helm v3.8.2`
+
+每种类型的镜像构建命令的格式为 `/imagebuild_<类型> <应用名称> <版本> [Key=Value,...]`,其中 `<类型>` 是 `dockerimages`、`configs` 或 `apps`, `<应用名称>` 和 `<版本>` 分别代表应用的名称和版本,`[Key=Value,...]` 是可选的buildArg参数,仅用于 `dockerimages` 类型。
+
+## 镜像配置的存放位置
+
+你可以在 `applications/<应用名称>/<版本>/` 目录下放置你的配置文件,包括 Dockerfile、Kubefile 和 init.sh 等。init.sh 脚本通常用于下载一些依赖的二进制文件,如 helm、kubectl-minio 等。你可以选择使用 Dockerfile 或 Kubefile 来编写你的镜像构建逻辑。
+
+## 镜像构建规则
+
+对于每种类型的镜像,构建规则略有不同。通常,你需要在应用的目录下创建不同的子目录并放置不同类型的文件,然后 Sealos 会根据这些文件来构建镜像。具体的规则如下:
+
+1. `charts` 目录:放置一些集群镜像需要的 Helm chart,Kubernetes 会根据扫描的 chart 获取镜像并构建
+
+出 registry 目录放到与 Kubefile 同级的目录。
+2. `manifests` 目录:直接放置一些 Kubernetes yaml 配置,Kubernetes 会扫描 manifests 目录所有的镜像并构建出 registry 目录放到与 Kubefile 同级的目录。
+3. `images/shim` 目录:主要存储一些额外的镜像列表并构建出 registry 目录放到与 Kubefile 同级的目录。
+4. 如果需要模板,在 `etc`、`charts`、`manifests` 放置一些以 `.tmpl` 结尾的文件可以被 `sealos run` 环境变量渲染后去掉 `.tmpl`,比如渲染之前是 `aa.yaml.tmpl`,渲染后为 `aa.yaml`。请注意文件名不要与现有的文件冲突。
+5. `registry` 必须放在与 Kubefile 同级的目录,否则无法拷贝到 master0 的私有仓库。制作镜像时也需要注意这一点。不要把 registry 存放到 chart 里,否则 helm 扫描可能会很慢,可能导致 OOM。
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/commands/add.md b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/commands/add.md
new file mode 100644
index 00000000000..f5f6e79bfc9
--- /dev/null
+++ b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/commands/add.md
@@ -0,0 +1,60 @@
+---
+sidebar_position: 4
+---
+
+# add 集群节点添加
+
+`sealos add` 是 Sealos 命令行工具中的一个命令,主要用于向集群中添加节点。本指南将详细介绍其使用方法和选项。
+
+**注意要保证控制节点的个数为奇数个以保证etcd可以正常选举**
+
+## 基本用法
+
+### 添加节点
+
+要向集群中添加节点,可以使用 `--nodes` 选项:
+
+```bash
+sealos add --nodes x.x.x.x
+```
+
+在上述命令中,`x.x.x.x` 应替换为你想要添加的节点的 IP 地址。
+
+### 添加控制节点
+
+要向集群中添加控制节点,可以使用 `--masters` 选项:
+
+```bash
+sealos add --masters x.x.x.x
+```
+
+### 同时添加控制节点和节点
+
+如果你想同时向集群中添加控制节点和节点,可以同时使用 `--masters` 和 `--nodes` 选项:
+
+```bash
+sealos add --masters x.x.x.x --nodes x.x.x.x
+sealos add --masters x.x.x.x-x.x.x.y --nodes x.x.x.x-x.x.x.y
+```
+
+## 选项
+
+`sealos add` 命令提供了以下选项:
+
+- `--cluster='default'`: 要执行加入操作的集群的名称。默认为 `default`。
+
+- `--masters=''`: 要加入的主节点。
+
+- `--nodes=''`: 要加入的节点。
+
+每个选项后都可以跟随一个参数。
+
+## 使用示例
+
+以下是一个使用示例,该示例向集群中添加了 IP 地址为 `192.168.0.2` 的节点:
+
+```bash
+sealos add --nodes 192.168.0.2
+```
+
+以上就是 `sealos add` 命令的使用指南,希望对你有所帮助。如果你在使用过程中遇到任何问题,欢迎向我们提问。
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/commands/apply.md b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/commands/apply.md
new file mode 100644
index 00000000000..defa546ea78
--- /dev/null
+++ b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/commands/apply.md
@@ -0,0 +1,84 @@
+---
+sidebar_position: 1
+---
+
+# apply 启动集群
+
+`sealos apply` 是 Sealos 命令行工具中的一个重要命令,用于在 Kubernetes 集群中运行集群镜像。本指南将详细介绍其使用方法和选项。
+
+## 基本用法
+
+`sealos apply` 命令的基本用法如下:
+
+```shell
+$ sealos apply -f Clusterfile
+```
+
+Clusterfile 内容:
+
+```yaml
+apiVersion: apps.sealos.io/v1beta1
+kind: Cluster
+metadata:
+ name: default
+spec:
+ # 服务器 IP 地址列表和角色
+ 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: xxx
+ pk: /root/.ssh/id_rsa
+ port: 22
+ user: root
+```
+
+这条命令会根据指定的 `Clusterfile` 文件在 Kubernetes 集群中运行集群镜像。
+
+## 选项
+
+`sealos apply` 命令提供了多种选项,用于定制命令的行为:
+
+- `-f, --Clusterfile='Clusterfile'`: 指定要应用的集群文件。默认为 `Clusterfile`。
+- `--config-file=[]`: 指定自定义Config文件的路径,用于替换或者修改资源。
+- `--env=[]`: 设置在命令执行过程中要使用的环境变量。
+- `--set=[]`: 在命令行上设置值,一般是替换模板的值。
+- `--values=[]`: 指定要应用到 `Clusterfile` 的values文件,一般是用于模板方式。
+
+每个选项后面都可以跟随一个或多个参数。多个参数之间用逗号分隔。
+
+例如,你可以使用 `--set` 选项在命令行上设置一些值:
+
+```shell
+sealos apply -f Clusterfile --set key1=value1,key2=value2
+```
+
+这条命令会将 `key1` 和 `key2` 的值设置为 `value1` 和 `value2`,然后应用 `Clusterfile`。
+
+同样,你也可以使用 `--values` 选项指定一个值文件:
+
+```shell
+sealos apply -f Clusterfile --values values.yaml
+```
+
+这条命令会根据 `values.yaml` 文件中的值应用 `Clusterfile`。
+
+**更多示例请参考[启动镜像](/self-hosting/lifecycle-management/operations/run-cluster/)**
+
+以上就是 `sealos apply` 命令的使用指南,希望对你有所帮助。如果你在使用过程中遇到任何问题,欢迎向我们提问。
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/commands/build.md b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/commands/build.md
new file mode 100644
index 00000000000..4cf6b5ca5ae
--- /dev/null
+++ b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/commands/build.md
@@ -0,0 +1,69 @@
+---
+sidebar_position: 6
+---
+
+# build 构建镜像
+
+Sealos 的 `build` 命令用于使用 Sealfiles、Kubefiles、Dockerfiles 或 Containerfiles 中的指令构建 OCI 镜像。这是 Sealos 构建集群镜像的基础命令。
+
+如果没有指定任何参数,Sealos 将使用当前工作目录作为构建上下文,并查找指令文件。如果不存在 Sealfile、Kubefile、Dockerfile 或 Containerfile,则构建失败。
+
+下面是一些主要的 `build` 选项:
+
+1. `--all-platforms`:尝试为所有基础镜像平台构建镜像。
+2. `--authfile`:认证文件的路径。
+3. `--build-arg`:向构建器提供的 `argument=value`。
+4. `--build-context`:向构建器提供额外构建上下文的 `argument=value`。
+5. `--creds`:访问 registry 使用的 `[username[:password]]`。
+6. `-D, --disable-compression`:默认不压缩图层。
+7. `--env`:为镜像设置环境变量。
+8. `-f, --file`:Dockerfile 的 `pathname 或 URL`。
+9. `--force-rm`:即使构建不成功,也始终在构建后删除中间容器。
+10. `--format`:构建的镜像的清单和元数据的 `format`。
+11. `--from`:用于替换 Containerfile 中第一条 FROM 指令的值的镜像名称。
+12. `--http-proxy`:传递 HTTP Proxy 环境变量。
+13. `--isolation`:使用的进程隔离 `type`。可以是 'oci' 或 'chroot'。
+14. `--max-pull-procs`:拉取时使用的最大 goroutine 数量。
+15. `--platform`:设置镜像的 OS/ARCH/VARIANT 为提供的值,而不是主机的当前操作系统和架构。
+16. `--pull`:从 registry 拉取镜像,如果新的或存储中不存在,则拉取,如果 false,只有在不存在时才拉取镜像,如果 always,即使命名的镜像存在于存储中,也拉取镜像,如果 never,只使用存储中可用的镜像。
+17. `-q, --quiet`:克制不宣布构建指令和镜像读/写进度。
+18. `--retry`:在执行 push/pull 失败时重试的次数。
+19. `--retry-delay`:在 push/pull 失败时重试的延迟。
+20. `--rm`:在成功构建后删除中间容器。
+21. `--save-image`:保存从特定目录解析的镜像,以 registry 格式存储。
+22. `--sign-by`:使用指定 `FINGERPRINT` 的 GPG 密钥签名镜像。
+23. `-t, --tag`:应用到构建镜像的标签 `name`。
+
+24. `--target`:设置要构建的目标构建阶段。
+25. `--timestamp`:将创建的时间戳设置为指定的 epoch 秒,以允许确定性构建,默认为当前时间。
+
+这些选项可以灵活地应对多种构建需求,包括针对特定平台的构建、环境变量设置、构建上下文管理、镜像签名等。使用 `--save-image` 选项,Sealos 可以自动识别镜像列表(包括从镜像列表、Helm charts、manifests 中解析出的镜像)并保存为 registry 格式。
+
+进程隔离模式 `--isolation` 支持 'oci' 和 'chroot' 两个参数。如果本地支持 OCI,可以选择 'oci' 模式;如果不支持 OCI,应该使用 'chroot' 模式。
+
+`--save-image` 是 Sealos 构建命令的一个选项,这个选项的作用是在构建过程中自动查找并保存需要的镜像。在 Sealos 中,构建一个镜像可能涉及到其他依赖镜像。这些依赖镜像可能来自镜像列表、Helm charts 或 集群 manifests。当使用 `--save-image` 选项时,Sealos 将根据构建上下文,自动解析这些依赖并将其保存为 Docker Registry 格式。
+
+例如,以下是一个使用 `--save-image` 选项的示例:
+
+```bash
+sealos build -t myapp:v1.0.0 -f Dockerfile .
+```
+
+在这个示例中,Sealos 将使用当前目录作为构建上下文,从 Dockerfile 文件中读取构建指令,并尝试构建出一个标记为 `myapp:v1.0.0` 的镜像。同时,Sealos 将解析 Dockerfile 文件中所有 `FROM` 指令引用的基础镜像,并将这些镜像保存下来。这些镜像将以 Docker Registry 的格式保存,可以被直接推送到 Docker Registry 中。
+
+如果你的构建上下文中还包含了 Helm charts 或 集群manifests,Sealos 也会解析这些文件中引用的镜像,并将这些镜像一并保存。
+
+总的来说,`--save-image` 选项为 Sealos 的构建过程提供了一种自动处理依赖镜像的方式,大大提高了构建镜像的便捷性和效率。
+
+下面有一些详细的示例:
+
+- [基于镜像清单构建](/self-hosting/lifecycle-management/operations/build-image/build-image-image_list.md)
+- [基于部署清单构建](/self-hosting/lifecycle-management/operations/build-image/build-image-manifests.md)
+- [基于helm-charts构建](/self-hosting/lifecycle-management/operations/build-image/build-image-helm_charts.md)
+- [基于二进制构建](/self-hosting/lifecycle-management/operations/build-image/build-image-binary.md)
+- [基于go-template构建](/self-hosting/lifecycle-management/operations/build-image/build-image-go_template.md)
+- [基于exec和scp构建](/self-hosting/lifecycle-management/operations/build-image/build-image-scp_exec.md)
+
+通过 Sealos `build` 命令,可以基于多种指令文件构建 OCI 镜像,为sealos提供所需的镜像。这个过程包括处理 Dockerfile 或其他指令文件中的各种指令,如 `FROM`、`RUN`、`ADD` 等,以及处理镜像层次、镜像标签等。构建过程也包括拉取基础镜像、运行命令、保存结果等步骤。每一个步骤都可以通过上述的选项进行详细的控制和定制,以满足不同的构建需求。
+
+以上就是 `sealos build` 命令的使用指南,希望对你有所帮助。如果你在使用过程中遇到任何问题,欢迎向我们提问。
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/commands/cert.md b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/commands/cert.md
new file mode 100644
index 00000000000..c41a88581f6
--- /dev/null
+++ b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/commands/cert.md
@@ -0,0 +1,44 @@
+---
+sidebar_position: 3
+---
+
+# cert 更新集群证书
+
+`sealos cert` 是 Sealos 命令行工具中的一个命令,主要用于在集群中更新 API 服务器的证书。本指南将详细介绍其使用方法和选项。
+
+## 基本用法
+
+要在证书中添加域名或 IP,可以使用 `--alt-names` 选项:
+
+```bash
+sealos cert --alt-names sealos.io,10.103.97.2,127.0.0.1,localhost
+```
+
+在上述命令中,`sealos.io,10.103.97.2,127.0.0.1,localhost` 应替换为你想要添加的域名和 IP 地址。
+
+**注意**:在执行此操作之前,你最好先备份旧的证书。
+
+执行 `sealos cert` 命令后,会更新集群 API 服务器的证书,你无需手动重启 API 服务器,sealos会自动帮你重启服务。
+
+## 选项
+
+`sealos cert` 命令提供了以下选项:
+
+- `--alt-names=''`: 在证书中添加域名或 IP,例如 `sealos.io` 或 `10.103.97.2`。
+
+- `-c, --cluster='default'`: 要执行 exec 操作的集群的名称。默认为 `default`。
+
+每个选项后都可以跟随一个参数。
+
+## 校验证书
+
+更新证书后,你可以使用以下命令进行校验:
+
+```bash
+kubectl -n kube-system get cm kubeadm-config -o yaml
+openssl x509 -in /etc/kubernetes/pki/apiserver.crt -text
+```
+
+上述命令将获取 kube-system 命名空间中的 kubeadm-config 配置映射,并显示 apiserver.crt 证书的详细信息。
+
+以上就是 `sealos cert` 命令的使用指南,希望对你有所帮助。如果你在使用过程中遇到任何问题,欢迎向我们提问。
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/commands/commands.md b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/commands/commands.md
new file mode 100644
index 00000000000..cff45b9b383
--- /dev/null
+++ b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/commands/commands.md
@@ -0,0 +1,56 @@
+---
+sidebar_position: 0
+---
+
+# Sealos 命令说明
+
+## 集群管理命令
+
+- `apply`:使用 Clusterfile 在 Kubernetes 集群内运行集群镜像。
+- `cert`:更新 Kubernetes API 服务器的证书。
+- `run`:轻松运行云原生应用。
+- `reset`:重置集群中的所有内容。
+- `status`:查看 Sealos集群 的状态。
+
+## 节点管理命令
+
+- `add`:将节点添加到集群中。
+- `delete`:从集群中删除节点。
+
+## 远程操作命令
+
+- `exec`:在指定节点上执行 shell 命令或脚本。
+- `scp`:将文件复制到指定节点的远程位置。
+
+## 实验性命令
+
+- `registry`:与镜像仓库相关的命令。
+
+## 容器和镜像命令
+
+- `build`:使用 Sealfile 或 Kubefile 中的指令构建镜像。
+- `create`:创建集群,但不运行 CMD,用于检查镜像。
+- `inspect`:检查容器或镜像的配置。
+- `images`:列出本地存储中的镜像。
+- `load`:从文件中加载镜像。
+- `login`:登录到容器仓库。
+- `logout`:登出容器仓库。
+- `manifest`:操作清单列表和镜像索引。
+- `merge`:合并多个镜像为一个。
+- `pull`:从指定位置拉取镜像。
+- `push`:将镜像推送到指定的目标。
+- `rmi`:从本地存储中删除一个或多个镜像。
+- `save`:将镜像保存到存档文件中。
+- `tag`:为本地镜像添加一个附加名称。
+
+## 其他命令
+
+- `completion`:为指定的 shell 生成自动补全脚本。
+- `docs`:生成 API 参考。
+- `env`:打印 Sealos 使用的所有环境信息。
+- `gen`:生成具有所有默认设置的 Clusterfile。
+- `version`:打印版本信息。
+
+Sealos 的 `--debug` 参数是一个全局参数,用于开启调试模式,以便在出现问题时能更详细地了解系统的运行情况。
+
+有关安装说明,请参见[下载 Sealos 命令行工具](/self-hosting/lifecycle-management/quick-start/install-cli.md); 如需安装 Kubernetes 集群,请参见[安装 Kubernetes 集群](/self-hosting/lifecycle-management/quick-start/deploy-kubernetes.md)。
\ No newline at end of file
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/commands/create.md b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/commands/create.md
new file mode 100644
index 00000000000..03cf8cf9d07
--- /dev/null
+++ b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/commands/create.md
@@ -0,0 +1,43 @@
+---
+sidebar_position: 6
+---
+
+# create 创建工作目录
+
+`sealos create` 是 Sealos 命令行工具中的一个命令,主要用于在不执行 CMD 的情况下创建集群工作目录,以便审查镜像。本指南将详细介绍其使用方法和选项。
+
+## 基本用法
+
+`sealos create` 命令用于创建集群工作目录,但不实际运行,主要用于调试或测试,它可以输出集群镜像的地址,你可以校验集群镜像内容是否与预期一致。
+
+```bash
+sealos create docker.io/labring/kubernetes:v1.24.0
+```
+
+在上述命令中,`clustername` 代表你要创建的集群的名称。
+
+## 选项
+
+`sealos create` 命令提供了以下选项:
+
+- `-c, --cluster='default'`: 要创建但不实际运行的集群的名称。默认为 `default`。
+
+- `--platform='linux/arm64/v8'`: 将镜像的操作系统/架构/版本设置为提供的值,而不是主机的当前操作系统和架构(例如 `linux/arm`)。
+
+- `--short=false`: 如果为真,只打印挂载路径。
+
+- `-e, --env=[]`: 指定渲染模板文件时使用的环境变量。
+
+每个选项后都可以跟随一个参数。
+
+## 示例
+
+例如,你可以使用以下命令创建一个名为 `mycluster` 的集群,但不实际运行它:
+
+```bash
+sealos create -e registryPort=8443 docker.io/labring/kubernetes:v1.24.0
+```
+
+此命令将创建一个镜像名称为 `docker.io/labring/kubernetes:v1.24.0` 的集群工作目录,并输出集群镜像的地址。`-e registryPort=8443` 选项指定了在渲染模板文件时使用的环境变量,其中 `registryPort` 被设置为 `8443`。请注意,这个示例中集群并没有被实际运行。
+
+以上就是 `sealos create` 命令的使用指南,希望对你有所帮助。如果你在使用过程中遇到任何问题,欢迎向我们提问。
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/commands/delete.md b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/commands/delete.md
new file mode 100644
index 00000000000..6072f79d58a
--- /dev/null
+++ b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/commands/delete.md
@@ -0,0 +1,68 @@
+---
+sidebar_position: 4
+---
+
+# delete 集群节点删除
+
+`sealos delete` 是 Sealos 命令行工具中的一个命令,主要用于从集群中移除节点。本指南将详细介绍其使用方法和选项。
+
+**注意要保证控制节点的个数为奇数个以保证etcd可以正常选举**
+
+## 基本用法
+
+### 删除节点
+
+要从集群中删除节点,可以使用 `--nodes` 选项:
+
+```bash
+sealos delete --nodes x.x.x.x
+```
+
+在上述命令中,`x.x.x.x` 应替换为你想要删除的节点的 IP 地址。如果不小心删除了错误的节点,可以使用 `sealos add` 命令恢复它:
+
+```bash
+sealos add --nodes x.x.x.x
+```
+
+### 删除控制节点
+
+要从集群中删除控制节点,可以使用 `--masters` 选项:
+
+```bash
+sealos delete --masters x.x.x.x
+```
+
+请注意,如果指定了 `--masters` 参数,sealos 将删除你的控制节点。
+
+### 删除控制节点和节点
+
+如果你想同时删除控制节点和节点,可以同时使用 `--masters` 和 `--nodes` 选项:
+
+```bash
+sealos delete --masters x.x.x.x --nodes x.x.x.x
+sealos delete --masters x.x.x.x-x.x.x.y --nodes x.x.x.x-x.x.x.y
+```
+
+## 选项
+
+`sealos delete` 命令提供了以下选项:
+
+- `--cluster='default'`: 执行删除操作应用的集群的名称。默认为 `default`。
+
+- `--force=false`: 可以输入一个 `--force` 标志以强制删除节点。
+
+- `--masters=''`: 要移除的控制节点。
+
+- `--nodes=''`: 要移除的节点。
+
+每个选项后都可以跟随一个参数。
+
+## 使用示例
+
+以下是一个使用示例,该示例删除了 IP 地址为 `192.168.0.2` 的节点:
+
+```bash
+sealos delete --nodes 192.168.0.2
+```
+
+以上就是 `sealos delete` 命令的使用指南,希望对你有所帮助。如果你在使用过程中遇到任何问题,欢迎向我们提问。
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/commands/env.md b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/commands/env.md
new file mode 100644
index 00000000000..89ea851ea94
--- /dev/null
+++ b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/commands/env.md
@@ -0,0 +1,39 @@
+---
+sidebar_position: 7
+---
+
+# env 环境变量
+
+`sealos env` 是 Sealos 命令行工具中的一个命令,用于展示目前sealos支持的环境变量以及当前的环境变量值。
+
+## 基本用法
+
+### 查看环境变量
+
+要查看环境变量,可以使用 `sealos env` 命令:
+
+```bash
+sealos env
+```
+
+### 查看环境变量以及说明
+
+要查看环境变量以及说明,可以使用 `sealos env -v` 命令:
+
+```bash
+sealos env -v
+```
+
+
+## 如何设置环境变量
+
+```shell
+BUILDAH_LOG_LEVEL=debug sealos images
+```
+
+```shell
+SEALOS_REGISTRY_SYNC_EXPERIMENTAL=true sealos build -t xxx .
+```
+
+
+以上就是 `sealos env` 命令的使用指南,希望对你有所帮助。如果你在使用过程中遇到任何问题,欢迎向我们提问。
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/commands/exec.md b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/commands/exec.md
new file mode 100644
index 00000000000..7b0f955021f
--- /dev/null
+++ b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/commands/exec.md
@@ -0,0 +1,51 @@
+---
+sidebar_position: 5
+---
+
+# exec 执行命令
+
+`sealos exec` 是 Sealos 命令行工具中的一个命令,用于在指定的集群节点上执行 Shell 命令或脚本。本指南将详细介绍其使用方法和选项。
+
+## 基本用法
+
+基本的 `sealos exec` 命令格式如下:
+
+```bash
+sealos exec "shell command or script"
+```
+
+在上述命令中,`shell command or script` 是你要在集群节点上执行的 Shell 命令或脚本。
+
+## 选项
+
+`sealos exec` 命令提供了以下选项:
+
+- `-c, --cluster='default'`: 要在其上执行命令的集群的名称。默认为 `default`。
+
+- `--ips=[]`: 在具有指定 IP 地址的节点上运行命令。
+
+- `-r, --roles='':`: 在具有指定角色的节点上运行命令。目前支持 master,node,registry
+
+每个选项后都可以跟随一个或多个参数。
+
+## 示例
+
+例如,你可以使用以下命令在默认集群的所有节点上查看 `/etc/hosts` 文件的内容:
+
+```bash
+sealos exec "cat /etc/hosts"
+```
+
+如果你想在名为 `my-cluster` 的集群的 `master` 和 `node` 角色的节点上查看 `/etc/hosts` 文件的内容,可以使用以下命令:
+
+```bash
+sealos exec -c my-cluster -r master,node "cat /etc/hosts"
+```
+
+如果你只想在 IP 地址为 `172.16.1.38` 的节点上查看 `/etc/hosts` 文件的内容,可以使用以下命令:
+
+```bash
+sealos exec -c my-cluster --ips 172.16.1.38 "cat /etc/hosts"
+```
+
+以上就是 `sealos exec` 命令的使用指南,希望对你有所帮助。如果你在使用过程中遇到任何问题,欢迎向我们提问。
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/commands/gen.md b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/commands/gen.md
new file mode 100644
index 00000000000..2df2301ef04
--- /dev/null
+++ b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/commands/gen.md
@@ -0,0 +1,49 @@
+---
+sidebar_position: 3
+---
+
+# gen 生成集群配置
+
+Sealos 的 `gen` 命令是用于生成 Kubernetes 集群的配置文件(Clusterfile),这个配置文件可以在之后通过 `sealos apply` 命令来应用。`gen` 命令可以帮助用户快速生成一个基本的配置文件,用户可以在此基础上根据自己的需求进行修改和调整。
+
+下面是 `sealos gen` 命令的基本使用方法和一些常见的示例:
+
+1. 生成一个默认配置的单节点集群:
+
+ ```bash
+ sealos gen labring/kubernetes:v1.25.0 labring/helm:v3.8.2 labring/calico:v3.24.1
+ ```
+
+注意:labring/helm 应当在 labring/calico 之前。
+
+2. 生成一个包含多个镜像、指定了主节点和工作节点的集群:
+
+ ```bash
+ sealos gen labring/kubernetes:v1.25.0 labring/helm:v3.8.2 labring/calico:v3.24.1 \
+ --masters 192.168.0.2,192.168.0.3,192.168.0.4 \
+ --nodes 192.168.0.5,192.168.0.6,192.168.0.7 --passwd 'xxx'
+ ```
+
+注意:labring/helm 应当在 labring/calico 之前。
+
+3. 指定 SSH 端口,对于所有服务器使用相同的 SSH 端口:
+
+ ```bash
+ sealos gen labring/kubernetes:v1.24.0 --masters 192.168.0.2,192.168.0.3,192.168.0.4 \
+ --nodes 192.168.0.5,192.168.0.6,192.168.0.7 --port 24 --passwd 'xxx'
+ ```
+
+ 对于使用不同 SSH 端口的服务器:
+
+ ```bash
+ sealos gen labring/kubernetes:v1.24.0 --masters 192.168.0.2,192.168.0.3:23,192.168.0.4:24 \
+ --nodes 192.168.0.5:25,192.168.0.6:25,192.168.0.7:27 --passwd 'xxx'
+ ```
+
+在生成了 Clusterfile 之后,用户可以根据自己的需求来修改这个文件。添加或修改环境变量;修改集群cidr配置。完成修改后,用户就可以通过 `sealos apply` 命令来根据这个配置文件来创建或更新集群了。
+
+示例说明:
+
+- [自定义配置安装](/self-hosting/lifecycle-management/operations/run-cluster/gen-apply-cluster.md)
+
+以上就是 `sealos gen` 命令的使用指南,希望对你有所帮助。如果你在使用过程中遇到任何问题,欢迎向我们提问。
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/commands/images.md b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/commands/images.md
new file mode 100644
index 00000000000..ad080890832
--- /dev/null
+++ b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/commands/images.md
@@ -0,0 +1,65 @@
+---
+sidebar_position: 6
+---
+
+# image 镜像列表
+
+Sealos 的 `images` 命令主要用于查看本地存储的镜像。用户可以通过它来查看本地所有的镜像,或者筛选查看特定的镜像。该命令支持多种参数,可以帮助用户更方便的查看和管理镜像。
+
+## 基本用法
+
+基本的 `sealos images` 命令将显示所有非中间阶段的本地镜像,例如:
+
+```bash
+sealos images
+```
+
+这将显示本地存储的所有最终阶段镜像。
+
+## 示例
+
+以下是 `sealos images` 命令的一些常见示例:
+
+1. 显示所有镜像,包括构建的中间镜像:
+
+ ```bash
+ sealos images --all
+ ```
+
+2. 显示特定镜像:
+
+ ```bash
+ sealos images [imageName]
+ ```
+
+3. 以指定的 Go 模板格式显示镜像:
+
+ ```bash
+ sealos images --format '{{.ID}} {{.Name}} {{.Size}} {{.CreatedAtRaw}}'
+ ```
+
+## 参数
+
+以下是 `sealos images` 命令的一些常用参数:
+
+- `-a, --all`:显示所有镜像,包括构建过程中的中间镜像。
+
+- `--digests`:显示镜像的摘要。
+
+- `-f, --filter`:根据提供的条件过滤输出结果。
+
+- `--format`:使用 Go 模板对镜像进行美化打印。
+
+- `--history`:显示镜像的命名历史。
+
+- `--json`:以 JSON 格式输出。
+
+- `--no-trunc`:不截断输出。
+
+- `-n, --noheading`:不打印列标题。
+
+- `-q, --quiet`:只显示镜像 ID。
+
+通过组合使用这些参数,用户可以轻松地获取和管理本地存储的镜像。例如,使用 `--all` 参数可以查看所有镜像,包括中间镜像;使用 `--filter` 参数可以根据特定条件过滤镜像;使用 `--json` 参数可以以 JSON 格式输出镜像信息,方便进行程序化处理等。
+
+以上就是 `sealos images` 命令的使用指南,希望对你有所帮助。如果你在使用过程中遇到任何问题,欢迎向我们提问。
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/commands/inspect.md b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/commands/inspect.md
new file mode 100644
index 00000000000..bed4b134332
--- /dev/null
+++ b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/commands/inspect.md
@@ -0,0 +1,79 @@
+---
+sidebar_position: 6
+---
+
+# inspect 详细信息
+
+Sealos 的 `inspect` 命令主要用于查看构建容器或已构建镜像的配置信息。该命令支持查看镜像或容器的详细信息,包括其元数据、环境变量、启动命令等。
+
+## 基本用法
+
+使用 `sealos inspect` 命令查看指定容器或镜像的配置信息。例如,查看指定容器的配置:
+
+```bash
+sealos inspect containerID
+```
+
+或者查看指定镜像的配置:
+
+```bash
+sealos inspect --type image imageWithTag
+```
+
+## 示例
+
+以下是 `sealos inspect` 命令的一些常见示例:
+
+1. 查看容器配置:
+
+ ```bash
+ sealos inspect containerID
+ ```
+
+2. 查看镜像配置:
+
+ ```bash
+ sealos inspect --type image imageWithTag
+ ```
+
+3. 查看镜像ID的配置信息:
+
+ ```bash
+ sealos inspect --type image @imageID # 或直接输入imageID, '@' 是可选的
+ ```
+
+4. 查看远程镜像仓库的配置信息:
+
+ ```bash
+ sealos inspect --type image docker://alpine:latest
+ ```
+
+5. 查看本地OCI归档文件中镜像的配置信息:
+
+ ```bash
+ sealos inspect --type image oci-archive:/abs/path/of/oci/tarfile.tar
+ ```
+
+6. 查看本地Docker归档文件中镜像的配置信息:
+
+ ```bash
+ sealos inspect --type image docker-archive:/abs/path/of/docker/tarfile.tar
+ ```
+
+7. 使用 Go 模板格式显示镜像环境变量:
+
+ ```bash
+ sealos inspect --format '{{.OCIv1.Config.Env}}' alpine
+ ```
+
+## 参数
+
+以下是 `sealos inspect` 命令的一些常用参数:
+
+- `-f, --format`:使用 Go 模板格式显示输出结果。**模板结构代码[InspectOutput](https://github.com/labring/sealos/blob/f8a17787822714c5fdf21f2a75cc86fadb88adfa/pkg/buildah/inspect.go#L189)**
+
+- `-t, --type`:指定查看的类型,可以是容器(`container`)或镜像(`image`)。
+
+根据你的需要,你可以结合使用这些参数,以获取特定的配置信息。例如,使用 `-t` 参数可以指定你想要查看的是容器的配置信息还是镜像的配置信息;使用 `-f` 参数,可以定义特定的输出格式,方便对输出结果进行处理或解析。
+
+以上就是 `sealos inspect` 命令的使用指南,希望对你有所帮助。如果你在使用过程中遇到任何问题,欢迎向我们提问。
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/commands/load.md b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/commands/load.md
new file mode 100644
index 00000000000..d85772714ac
--- /dev/null
+++ b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/commands/load.md
@@ -0,0 +1,25 @@
+---
+sidebar_position: 6
+---
+
+# load 加载镜像
+
+`sealos load` 是一个用来从存档文件中加载镜像的命令。这对于需要从已有的存档文件中导入镜像非常有用,尤其是在没有网络连接的环境中。
+
+## 用法:
+
+`sealos load [flags] [options]`
+
+## 参数:
+
+以下是 `sealos load` 命令的参数:
+
+- `-i, --input=''`: 从 tar 存档文件中加载镜像。
+
+## 示例:
+
+- 从一个存档文件中加载镜像:`sealos load -i myimage.tar`
+
+注意,在使用 `sealos load` 命令时,你需要确保指定的存档文件存在,并且格式正确。如果你在导入镜像时遇到问题,你可能需要检查你的存档文件,以确保它们没有被损坏或格式化错误。
+
+以上就是 `sealos load` 命令的使用指南,希望对你有所帮助。如果你在使用过程中遇到任何问题,欢迎向我们提问。
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/commands/login.md b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/commands/login.md
new file mode 100644
index 00000000000..cec64c82b0d
--- /dev/null
+++ b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/commands/login.md
@@ -0,0 +1,39 @@
+---
+sidebar_position: 6
+---
+
+# login 登录仓库
+
+`sealos login` 命令用于在指定服务器上登录容器注册表。登录注册表后,你可以拉取、推送镜像。
+
+## 用法:
+
+`sealos login [flags] [options] registryName`
+
+## 参数:
+
+以下是 `sealos login` 命令的参数:
+
+- `--authfile=''`: 身份验证文件的路径。可以使用环境变量 REGISTRY_AUTH_FILE 来覆盖。
+
+- `--cert-dir=''`: 使用指定路径的证书来访问镜像仓库。
+
+- `--get-login=true`: 返回注册表的当前登录用户。
+
+- `-k, --kubeconfig=''`: 使用 kubeconfig 登录到 sealos 镜像仓库 hub.sealos.io。
+
+- `-p, --password=''`: 注册表的密码。
+
+- `--password-stdin=false`: 从标准输入获取密码。
+
+- `-u, --username=''`: 注册表的用户名。
+
+- `-v, --verbose=false`: 将更详细的信息写入标准输出。
+
+## 示例:
+
+- 登录到 quay.io 注册表:`sealos login -u myusername -p mypassword quay.io `
+
+注意,在使用 `sealos login` 命令时,你需要确保提供了正确的用户名和密码,否则登录过程可能会失败。如果你在登录过程中遇到问题,你可能需要检查你的用户名和密码,以确保它们没有输入错误或被遗忘。
+
+以上就是 `sealos login` 命令的使用指南,希望对你有所帮助。如果你在使用过程中遇到任何问题,欢迎向我们提问。
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/commands/logout.md b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/commands/logout.md
new file mode 100644
index 00000000000..843b157a1ba
--- /dev/null
+++ b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/commands/logout.md
@@ -0,0 +1,26 @@
+---
+sidebar_position: 6
+---
+
+# logout 登出仓库
+
+`sealos logout` 命令用于在指定服务器上移除本地缓存的镜像仓库的账号和密码。
+
+## 用法:
+
+`sealos logout [flags] [options] registryName`
+
+## 参数:
+
+以下是 `sealos logout` 命令的参数:
+
+- `--authfile=''`: 身份验证文件的路径。可以使用环境变量 REGISTRY_AUTH_FILE 来覆盖。
+
+- `-a, --all=false`: 删除所有的认证信息。
+
+
+## 示例:
+
+- 登出到 quay.io 镜像仓库:`sealos logout quay.io `
+
+以上就是 `sealos logout` 命令的使用指南,希望对你有所帮助。如果你在使用过程中遇到任何问题,欢迎向我们提问。
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/commands/manifest.md b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/commands/manifest.md
new file mode 100644
index 00000000000..52d7809bc1b
--- /dev/null
+++ b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/commands/manifest.md
@@ -0,0 +1,20 @@
+---
+sidebar_position: 6
+---
+
+# manifest 镜像清单
+
+Sealos 的 `manifest` 命令用于创建、修改和推送 manifest 列表和镜像索引。这些功能主要用于处理镜像的多架构支持。在 Docker 和 OCI 镜像规范中,manifest 列表(也被称为 "fat manifest")或镜像索引允许一个镜像标签(如 `myimage:latest`)在多种硬件架构(如 amd64, arm64, ppc64le 等)上都能使用。
+
+以下是一些主要的 `manifest` 子命令:
+
+1. `create`:创建新的 manifest 列表或镜像索引。例如:`sealos manifest create localhost/list`
+2. `add`:将镜像添加到 manifest 列表或镜像索引中。例如:`sealos manifest add localhost/list localhost/image`
+3. `annotate`:在 manifest 列表或镜像索引的条目中添加或更新信息。例如:`sealos manifest annotate --annotation A=B localhost/list localhost/image`
+4. `inspect`:显示 manifest 列表或镜像索引的内容。例如:`sealos manifest inspect localhost/list`
+5. `push`:将 manifest 列表或镜像索引推送到 registry。例如:`sealos manifest push localhost/list transport:destination`
+6. `remove` 和 `rm`:从 manifest 列表或镜像索引中移除条目,或者完全删除 manifest 列表或镜像索引。例如:`sealos manifest remove localhost/list sha256:entryManifestDigest` 或 `sealos manifest rm localhost/list`
+
+通过 `sealos manifest` 命令,可以灵活地管理 manifest 列表或镜像索引,为多架构的 Docker 或 OCI 镜像提供支持。用户可以根据自己的需求,创建自定义的 manifest 列表,方便在不同的硬件架构上部署和运行 Docker 镜像。
+
+用户如果想通过manifest命令构建多架构镜像,可以参考文档[构建支持多架构的集群镜像](/self-hosting/lifecycle-management/operations/build-image/build-multi-arch-image.md)
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/commands/merge.md b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/commands/merge.md
new file mode 100644
index 00000000000..e6f01f2dfc8
--- /dev/null
+++ b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/commands/merge.md
@@ -0,0 +1,21 @@
+---
+sidebar_position: 6
+---
+
+# merge 合并镜像
+
+Sealos 的 `merge` 命令的主要作用是将多个镜像合并为一个。它通过读取各个输入镜像的 Dockerfile,将其中的命令和层次结构合并到一个新的镜像中。这个命令的运行逻辑很像 `build` 命令,许多参数也是相同的。
+
+这个功能在多个镜像有共享层的情况下非常有用,因为它可以减少镜像的大小,节省存储空间。同时,由于合并后的镜像包含了多个镜像的全部功能,所以它可以帮助简化应用部署。
+
+以下是 `sealos merge` 的基本使用示例:
+
+```bash
+sealos merge -t new:0.1.0 kubernetes:v1.19.9 mysql:5.7.0 redis:6.0.0
+```
+
+在这个示例中,`kubernetes:v1.19.9`、`mysql:5.7.0` 和 `redis:6.0.0` 这三个镜像被合并为一个新的镜像 `new:0.1.0`。
+
+`sealos merge` 命令提供了丰富的选项来定制合并过程,例如 `--all-platforms` 用于尝试为所有基础镜像平台构建镜像,`--build-arg` 用于向构建器提供参数,`--no-cache` 用于禁用现有的缓存镜像,等等。
+
+请注意,`sealos merge` 命令会根据各个输入镜像的 Dockerfile 来构建新的镜像,所以如果输入镜像的 Dockerfile 不兼容,或者有任何构建错误,那么这个命令可能会失败。在使用 `sealos merge` 命令时,请确保你了解每个输入镜像的 Dockerfile,并根据需要进行调整。
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/commands/pull.md b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/commands/pull.md
new file mode 100644
index 00000000000..6f52bed1a00
--- /dev/null
+++ b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/commands/pull.md
@@ -0,0 +1,51 @@
+---
+sidebar_position: 6
+---
+
+# pull 拉取镜像
+
+`sealos pull` 是一个非常有用的命令,它可以从容器镜像仓库下载镜像并将其存储在本地。用户可以通过镜像的标签(tag)或摘要(digest)来获取镜像。如果没有指定标签,那么会默认下载带有 'latest' 标签(如果存在)的镜像。
+
+通过使用这个命令,用户可以方便地从远程仓库下载所需的镜像,极大地提高了工作效率。
+
+## 用法:
+
+`sealos pull [flags] [options] imageName`
+
+## 参数:
+
+以下是 `sealos pull` 命令的参数:
+
+- `-a, --all-tags=false`: 下载仓库中所有带有标签的镜像。
+
+- `--authfile=''`: 认证文件的路径。可以使用环境变量 REGISTRY_AUTH_FILE 进行覆盖。
+
+- `--cert-dir=''`: 用于访问镜像仓库的证书的指定路径。
+
+- `--creds=''`: 使用 `[username[:password]]` 访问镜像仓库。
+
+- `--decryption-key=[]`: 解密镜像所需要的密钥。
+
+- `--platform=[linux/arm64/v8]`: 选择镜像时,优先使用指定的 OS/ARCH,而不是当前操作系统和架构。
+
+- `--policy='missing'`: 设置策略,可选的值包括 'missing', 'always', 'never'。
+
+- `-q, --quiet=false`: 在拉取镜像时,不输出进度信息。
+
+- `--remove-signatures=false`: 在拉取镜像时,不复制签名。
+
+- `--retry=3`: 在拉取失败时的重试次数。
+
+- `--retry-delay=2s`: 拉取失败时,重试之间的延迟。
+
+## 示例:
+
+- 拉取一个镜像:`sealos pull my-image:latest`
+
+- 从 Docker 守护进程拉取一个镜像:`sealos pull docker-daemon:my-image:tag`
+
+- 从特定的仓库拉取一个镜像:`sealos pull myregistry/myrepository/my-image:tag`
+
+- 拉取多个镜像:`sealos pull imageID1 imageID2 imageID3`
+
+以上就是 `sealos push` 命令的使用指南,希望对你有所帮助。如果你在使用过程中遇到任何问题,欢迎向我们提问。
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/commands/push.md b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/commands/push.md
new file mode 100644
index 00000000000..9f5241bfd1d
--- /dev/null
+++ b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/commands/push.md
@@ -0,0 +1,107 @@
+---
+sidebar_position: 6
+---
+
+# push 上传镜像
+
+`sealos push` 是 Sealos 命令行工具中的一个命令,用于将镜像推送到指定的位置。这个命令在你需要将本地 Docker 镜像推送到远程镜像仓库的时候特别有用。本指南将详细介绍其使用方法。
+
+## 基本用法
+
+基本的 `sealos push` 命令格式如下:
+
+```bash
+sealos push IMAGE_ID DESTINATION
+```
+
+在上述命令中,`IMAGE_ID` 是你想要推送的镜像的 ID,而 `DESTINATION` 是你想要推送到的位置。 `DESTINATION` 使用 "transport:details" 格式,如果未指定,将复用源 IMAGE 作为 DESTINATION。
+
+在 Sealos 中,传输方式定义了源镜像和目标镜像在复制过程中的格式和位置。以下是 Sealos 支持的各种传输方式:
+
+1. `containers-storage`: 此传输方式用于存储和管理在本地运行的容器。例如,使用 Podman 或 CRI-O 创建的容器的镜像。
+
+2. `dir`: 这种传输方式将镜像存储在本地文件系统的一个目录中,该目录结构符合 OCI 布局。
+
+3. `docker`: 这种传输方式用于与 Docker 注册表进行交互,如 Docker Hub 或任何其他兼容的私有注册表。
+
+4. `docker-archive`: 此传输方式将镜像存储为一个本地的 Docker tar 文件(`.tar`),这是 Docker 的原生格式。
+
+5. `docker-daemon`: 这种传输方式用于与本地 Docker 守护程序交互,可以从 Docker 守护程序中提取镜像,或者将镜像推送到 Docker 守护程序。
+
+6. `oci`: 该传输方式将镜像存储在一个符合 OCI 布局的目录中,它是一种开放的容器镜像格式。
+
+7. `oci-archive`: 这种传输方式将镜像存储为一个本地的 OCI tar 文件(`.tar`)。
+
+8. `ostree`: 这种传输方式将镜像存储在 OSTree 存储库中,这是一种支持原子升级和回滚的文件系统。
+
+9. `sif`: 这是 Singularity SIF 格式,主要用于高性能计算和数据密集型应用。
+
+示例:
+
+- 将一个镜像推送到 Docker 注册表:`sealos push my-image:latest docker://my-registry.example.com/my-image:latest`
+
+- 将一个镜像从 Docker 守护程序导出:`sealos push docker-daemon:my-image:latest dir:/path/to/save/`
+
+- 将一个镜像推送到本地的容器存储:`sealos push my-image:latest containers-storage:my-new-image:latest`
+
+## 示例
+
+例如,你可以使用以下命令将一个镜像推送到 `registry.example.com` 的仓库:
+
+```bash
+sealos push my_image_id docker://registry.example.com/my_repository:my_tag
+```
+
+## 可选参数
+
+- `--all`: 该参数用于推送清单列表引用的所有镜像。
+
+- `--authfile`: 该参数用于指定身份验证文件的路径。 可以使用 REGISTRY_AUTH_FILE 环境变量进行覆盖。
+
+- `--cert-dir`: 该参数用于指定访问注册表所需的证书的路径。
+
+- `--compression-format`: 该参数用于指定要使用的压缩格式。
+
+- `--compression-level`: 该参数用于指定要使用的压缩级别。
+
+- `--cr-option` 参数是用于控制是否将镜像的自定义资源(Custom Resource,简称 CR)推送到目标镜像仓库的。
+
+ 具体来说,这个参数的可选值包括:
+
+ - "yes": 将会把镜像以及其关联的 CR 都推送到目标镜像仓库。
+
+ - "no": 仅推送镜像,而不推送任何 CR。
+
+ - "only": 仅推送 CR,不推送镜像本身。
+
+ - "auto": 根据镜像和 CR 的实际状态自动决定是否推送。例如,如果 CR 有更改或者不存在于目标仓库,就会被推送。
+
+ 请注意,这个参数主要在处理包含自定义资源(如 Kubernetes CRD 对象)的镜像时使用,它能够让你更加灵活地控制镜像和 CR 的推送过程。
+
+- `--creds`: 该参数用于访问注册表,使用 `[username[:password]]` 形式。
+
+- `--digestfile`: 该参数在复制图像后,将结果图像的摘要写入文件。
+
+- `-D`, `--disable-compression`: 该参数用于不压缩层。
+
+- `--encrypt-layer`: 该参数用于指定要加密的层,0 索引层索引支持负索引(例如,0 是第一层,-1 是最后一层)。 如果未定义,则在指定 encryption-key 标志时将加密所有层。
+
+- `--encryption-key`: 该参数用于指定加密图像所需的密钥,与加密协议一起使用(例如,jwe:/path/to/key.pem)。
+
+- `-f`, `--format`: 该参数用于指定目标中要使用的清单类型(oci, v2s1, 或 v2s2)(默认是源的清单类型,带回退)。
+
+- `-q`, `--quiet`: 该参数用于在推送图像时不输出进度信息。
+
+- `--remove-signatures`: 该参数用于在推送图像时不复制签名。
+
+- `--retry
+
+`: 该参数用于指定在推送/拉取失败时的重试次数。
+
+- `--retry-delay`: 该参数用于指定在推送/拉取失败时重试之间的延迟。
+
+- `--rm`: 该参数用于在推送成功后删除清单列表。
+
+- `--sign-by`: 该参数用于使用指定的 `FINGERPRINT` 的 GPG 密钥签名图像。
+
+以上就是 `sealos push` 命令的使用指南,希望对你有所帮助。如果你在使用过程中遇到任何问题,欢迎向我们提问。
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/commands/registry.md b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/commands/registry.md
new file mode 100644
index 00000000000..746b32a8f87
--- /dev/null
+++ b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/commands/registry.md
@@ -0,0 +1,232 @@
+---
+sidebar_position: 8
+---
+
+# registry 镜像仓库命令
+
+## Sealos:sealos registry save 命令详解与使用指南
+
+`registry save` 命令用于将远程的 Docker 镜像拉取到本地并保存在指定的目录中。这对于在离线或者内网环境中部署容器镜像特别有用。
+
+在执行 `registry save` 命令时,将自动获取 `sealos login` 认证信息进行仓库认证。
+
+**使用说明**
+
+1. 使用context自动获取镜像
+
+ 使用默认方式拉取并保存镜像。这种模式会自动解析 `charts` 目录、`manifests` 目录和 `images` 目录以获取镜像列表。
+
+ **使用示例**
+
+ ```shell
+ sealos registry save --registry-dir=/tmp/registry1 my-context
+ ```
+
+
+2. 指定镜像列表方式
+
+ 使用参数传入镜像列表
+
+ **使用示例**
+
+ ```shell
+ sealos registry save --registry-dir=/tmp/registry2 --images=docker.io/library/busybox:latest
+ ```
+
+**选项**
+
+以下选项适用于 `save` 命令及其子命令:
+
+- `--max-procs`: 拉取镜像时使用的最大并行进程数。
+- `--registry-dir`: 保存镜像的本地目录。
+- `--arch`: 镜像的目标架构,例如:`amd64`、`arm64` 等。
+- `--images`: 需要拉取并保存的镜像列表,以逗号分隔。例如:"my-image1:latest,my-image2:v1.0"。
+
+## Sealos:sealos registry serve 命令详解与使用指南
+
+在管理 Docker 镜像仓库过程中,Sealos 提供了 `sealos registry serve` 命令以方便用户进行相关操作。本文将详细介绍 `sealos registry serve` 命令的使用方法和示例。
+
+### 基本介绍
+
+`sealos registry serve` 命令的主要作用是启动一个 Docker 分发镜像仓库服务器,支持两种模式:`filesystem` 和 `inmem`。
+
+1. **Filesystem 模式**:在此模式下,sealctl 将运行一个针对指定目录的 Docker 分发镜像仓库服务器。该模式下,镜像数据将存储在硬盘上。
+
+2. **In-memory 模式**:在此模式下,sealctl 将运行一个内存中的 Docker 分发镜像仓库服务器。该模式下,镜像数据仅保存在内存中,进程退出后数据将丢失。
+
+### 命令参数
+
+`sealos registry serve filesystem ` 命令支持以下参数:
+
+- `--disable-logging`: 禁用日志输出,默认为 false。
+- `--log-level`: 配置日志级别,默认为 'error'。
+- `-p, --port`: 服务器监听的端口,默认为随机未使用的端口。
+
+### 使用示例
+
+以下是一些 `sealos registry serve` 命令的使用示例:
+
+#### 在文件系统中启动镜像仓库服务器
+
+```bash
+sealos registry serve filesystem --port=5000
+```
+
+以上命令将在端口5000上启动一个文件系统镜像仓库服务器。
+
+#### 在内存中启动镜像仓库服务器
+
+```bash
+sealos registry serve inmem
+```
+
+以上命令将启动一个内存镜像仓库服务器。该服务器在进程退出后,存储的数据将丢失。
+
+通过 `sealctl registry serve` 命令,用户可以轻松地管理和操作 Docker 镜像仓库。无论是在开发环境,还是在生产环境中,它都是一个强大且易用的工具。
+
+
+## Sealos:sealos registry passwd 命令详解与使用指南
+
+在管理 Docker 镜像仓库过程中,Sealos 提供了 `sealos registry passwd` 命令以方便用户对集群registry进行密码修改。它提供了一种简便的方法,帮助用户修改 registry 的密码。
+
+### 基本用法
+
+使用 `sealos registry passwd` 命令来修改registry的密码。
+
+```bash
+sealos registry passwd
+```
+
+### 参数
+
+以下是 `sealos registry passwd` 命令的参数:
+
+- `-c, --cluster-name`:集群名称,默认为'default'。
+
+- `-f, --cri-shim-file-path`:镜像 cri shim 文件路径,如果为空将不会更新镜像 cri shim 文件。默认路径为'/etc/image-cri-shim.yaml'。
+
+- `-p, --htpasswd-path`:registry 密码文件路径。默认路径为'/etc/registry/registry_htpasswd'。
+
+### 使用步骤
+
+1. 执行 `sealos registry passwd` 命令,可以根据需要指定参数来进行配置。
+
+2. 根据命令提示,输入新的密码。
+
+3. 命令执行成功后,registry 的密码将被修改为新的密码。
+
+### 演示说明
+
+[![asciicast](https://asciinema.org/a/Qu05jah4ZZmjMuFR4vHEKvBsQ.svg)](https://asciinema.org/a/Qu05jah4ZZmjMuFR4vHEKvBsQ)
+
+**在使用过程中,会让用户选择registry类型**
+
+- registry: 二进制启动,执行`systemctl restart registry`进行重启镜像仓库。
+- containerd: containerd启动,执行"nerdctl restart sealos-registry"进行重启镜像仓库。
+- docker: docker启动,执行"docker restart sealos-registry"进行重启镜像仓库。
+
+### 注意事项
+
+**修改 registry 密码后,修改Clusterfile中的registry密码**
+修改 registry 密码后,所有使用该 registry 的节点和服务都需要更新配置,以使用新的密码进行身份验证。否则,它们将无法从该 registry 拉取或推送镜像。
+
+如果你不确定如何更新节点和服务的配置,建议在修改 registry 密码之前,先查阅相关文档或者寻求专业的技术支持。
+
+## Sealos:`sealos registry sync` 命令详解与使用指南
+
+Sealos 的 `registry sync` 命令可帮助您在两个 registry 之间同步所有镜像。这不仅可以用于镜像的迁移,还可以备份您的镜像。
+
+### 命令基本用法
+
+执行 `sealos registry sync` 命令来进行镜像同步:
+
+```bash
+sealos registry sync source dst
+```
+
+这里的 `source` 表示源 registry 的地址,而 `dst` 是目标 registry 的地址。
+
+例如,您想将地址为 127.0.0.1:41669 的 registry 中的所有镜像同步到地址为 sealos.hub:5000 的 registry,您应执行以下命令:
+
+```bash
+sealos registry sync 127.0.0.1:41669 sealos.hub:5000
+```
+
+### 认证与权限
+
+在执行 `sealos registry sync` 命令之前,请确保您具有访问源 registry 和目标 registry 的权限。可以使用`sealos login`对registry进行认证登录。
+
+### 同步过程
+
+请注意,镜像同步可能需要一些时间,这取决于镜像的数量和大小,以及网络的速度。在同步过程中,请保持网络的连通性,并确保在同步完成之前不要中断命令的执行。
+
+重要的是,`sealos registry sync` 命令支持增量同步,已经存在于目标 registry 的镜像不会重新同步。
+
+### 参数选项
+
+`sealos registry sync` 命令还提供了一些参数选项,允许您更精细地控制同步过程:
+
+- `--override-arch ARCH`:使用指定的 `ARCH` 替代当前机器的架构来选择镜像。
+
+- `--override-os OS`:使用指定的 `OS` 替代当前操作系统来选择镜像。
+
+- `--override-variant VARIANT`:使用指定的 `VARIANT` 替代当前的架构变种来选择镜像。
+
+- `-a` 或 `--all`:如果源镜像是一个列表,同步所有镜像。这对异构环境下特别有用,因为默认情况下,只会同步当前架构的镜像。
+
+例如,如果您想同步所有架构的镜像,可以添加 `-a` 参数:
+
+```bash
+sealos registry sync -a 127.0.0.1:41669 sealos.hub:5000
+```
+
+以上就是 `sealos registry sync` 命令的详细说明与使用指南。希望这些信息能帮助您更好地理解和使用这个命令。如果您在使用过程中遇到任何问题,欢迎随时提问。
+
+## Sealos:`sealos registry copy` 命令详解与使用指南
+
+Sealos 的 `registry copy` 命令用于将指定镜像从一个 registry 复制到另一个 registry。这能帮助您在不同的 registry 之间进行镜像的迁移或备份。
+
+### 命令基本用法
+
+使用 `sealos registry copy` 命令来进行镜像的复制:
+
+```bash
+sealos registry copy source-image dst
+```
+
+这里的 `source-image` 表示源镜像的全名(包括地址和镜像名),`dst` 是目标 registry 的地址。
+
+例如,要将名为 `127.0.0.1:41669/my-image:tag` 的镜像复制到地址为 `sealos.hub:5000` 的 registry,您可以执行以下命令:
+
+```bash
+sealos registry copy 127.0.0.1:41669/my-image:tag sealos.hub:5000
+```
+
+### 认证与权限
+
+在执行 `sealos registry copy` 命令之前,请确保您具有访问源镜像和目标 registry 的权限。可以使用`sealos login`对registry进行认证登录。
+
+### 复制过程
+
+请注意,镜像复制可能需要一些时间,这取决于镜像的大小,以及网络的速度。在复制过程中,请保持网络的连通性,并确保在复制完成之前不要中断命令的执行。
+
+### 参数选项
+
+`sealos registry copy` 命令提供了一些参数选项,允许您更精细地控制复制过程:
+
+- `--override-arch ARCH`:使用指定的 `ARCH` 替代当前机器的架构来选择镜像。
+
+- `--override-os OS`:使用指定的 `OS` 替代当前操作系统来选择镜像。
+
+- `--override-variant VARIANT`:使用指定的 `VARIANT` 替代当前的架构变种来选择镜像。
+
+- `-a` 或 `--all`:如果源镜像是一个列表,复制所有镜像。这对异构环境下特别有用,因为默认情况下,只会复制当前架构的镜像。
+
+例如,如果您想复制所有架构的镜像,可以添加 `-a` 参数:
+
+```bash
+sealos registry copy -a 127.0.0.1:41669/my-image:tag sealos.hub:5000
+```
+
+
+以上就是 `sealos registry` 命令的使用指南,希望对你有所帮助。如果你在使用过程中遇到任何问题,欢迎向我们提问。
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/commands/reset.md b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/commands/reset.md
new file mode 100644
index 00000000000..611df9bae44
--- /dev/null
+++ b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/commands/reset.md
@@ -0,0 +1,61 @@
+---
+sidebar_position: 2
+---
+
+# reset 重置集群
+
+`sealos reset` 是 Sealos 命令行工具中的一个命令,用于重置整个集群。这个命令在你想要彻底清空集群数据或者重建集群的时候特别有用。本指南将详细介绍其使用方法。
+
+## 基本用法
+
+基本的 `sealos reset` 命令格式如下:
+
+```bash
+sealos reset --cluster cluster_name
+```
+
+在上述命令中,`cluster_name` 是你想要重置的集群的名称。
+
+## 示例
+
+例如,你可以使用以下命令重置名为 `mycluster` 的集群:
+
+```bash
+sealos reset --cluster mycluster
+```
+
+## 可选参数
+
+- `--force`: 该参数用于强制重置集群,即使集群重置操作未能成功完成。
+
+```bash
+sealos reset --cluster mycluster --force
+```
+
+- `--masters`: 该参数用于指定要重置的 master 节点。
+
+```bash
+sealos reset --cluster mycluster --masters master1
+```
+
+- `--nodes`: 该参数用于指定要重置的工作节点。
+
+```bash
+sealos reset --cluster mycluster --nodes node1 node2
+```
+
+- `-p`, `--passwd`: 该参数用于提供密码进行身份验证。
+
+- `-i`, `--pk`: 该参数用于指定用于公钥认证的身份(私钥)读取的文件。
+
+- `--pk-passwd`: 该参数用于解密 PEM 编码私钥的口令。
+
+- `--port`: 该参数用于指定要连接的远程主机的端口。
+
+- `-u`, `--user`: 该参数用于指定要作为身份验证的用户名。
+
+```bash
+sealos reset --cluster mycluster --user username --pk /root/.ssh/id_rsa --pk-passwd yourpassword
+```
+
+以上就是 `sealos reset` 命令的使用指南,希望对你有所帮助。如果你在使用过程中遇到任何问题,欢迎向我们提问。
\ No newline at end of file
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/commands/rmi.md b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/commands/rmi.md
new file mode 100644
index 00000000000..7114566351d
--- /dev/null
+++ b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/commands/rmi.md
@@ -0,0 +1,53 @@
+---
+sidebar_position: 6
+---
+
+# rmi 删除本地镜像
+
+`sealos rmi` 是 Sealos 命令行工具中的一个命令,用于删除本地存储的一个或多个镜像。这个命令可以帮助你清理无用或者过时的镜像,节省存储空间。本指南将详细介绍其使用方法。
+
+## 基本用法
+
+基本的 `sealos rmi` 命令格式如下:
+
+```bash
+sealos rmi imageID
+```
+
+在上述命令中,`imageID` 是你想要删除的镜像的 ID。
+
+## 示例
+
+例如,你可以使用以下命令删除 ID 为 `imageID` 的镜像:
+
+```bash
+sealos rmi imageID
+```
+
+如果你想要删除多个镜像,只需要在命令行中列出所有的镜像 ID,例如:
+
+```bash
+sealos rmi imageID1 imageID2 imageID3
+```
+
+## 可选参数
+
+- `-a`, `--all`: 该参数用于删除所有镜像。使用此选项时,命令将不接受任何镜像 ID。
+
+```bash
+sealos rmi --all
+```
+
+- `-f`, `--force`: 该参数用于强制删除镜像,以及使用该镜像的任何容器。
+
+```bash
+sealos rmi --force imageID
+```
+
+- `-p`, `--prune`: 该参数用于修剪悬挂的镜像(没有标签且没有被任何容器引用的镜像)。
+
+```bash
+sealos rmi --prune
+```
+
+以上就是 `sealos rmi` 命令的使用指南,希望对你有所帮助。如果你在使用过程中遇到任何问题,欢迎向我们提问。
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/commands/run.md b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/commands/run.md
new file mode 100644
index 00000000000..03117703b6d
--- /dev/null
+++ b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/commands/run.md
@@ -0,0 +1,84 @@
+---
+sidebar_position: 1
+---
+
+# run 运行集群镜像
+
+Sealos 的 `run` 命令是一个强大且灵活的工具,它支持集群初始化、应用安装、多镜像执行,单机集群等操作。下面是对于 `sealos run` 命令及其参数的详细解释和一些使用示例。
+
+## 命令概览
+
+```
+sealos run --masters [arg] --nodes [arg] [Options]
+```
+
+`` 参数是您想要在集群中运行的 Docker 镜像名称和版本。`--masters` 和 `--nodes` 是您想要运行这个镜像的 master 节点和 node 节点的 IP 列表。
+
+### 选项解释
+
+- `--cluster='default'`: 要运行操作的集群名称。
+
+- `--cmd=[]`: 覆盖镜像中的 CMD 指令。
+
+- `--config-file=[]`: 自定义配置文件的路径,用于替换资源。
+
+- `-e, --env=[]`: 在命令执行期间设置的环境变量。
+
+- `-f, --force=false`: 强制覆盖此集群中的应用。
+
+- `--masters=''`: 要运行的 master 节点。
+
+- `--nodes=''`: 要运行的 node 节点。
+
+- `-p, --passwd=''`: 使用提供的密码进行认证。
+
+- `-i, --pk='/root/.ssh/id_rsa'`: 选择从其中读取公钥认证身份的私钥文件。
+
+- `--pk-passwd=''`: 解密 PEM 编码的私钥的密码。
+
+- `--port=22`: 远程主机的连接端口。
+
+- `-t, --transport='oci-archive'`: 从 tar 归档文件加载镜像传输。(可选值: oci-archive, docker-archive)
+
+- `-u, --user=''`: 认证的用户名。
+
+## 示例
+
+1. 创建集群到您的裸机服务器,指定 IP 列表:
+```
+sealos run labring/kubernetes:v1.24.0 --masters 192.168.0.2,192.168.0.3,192.168.0.4 \
+ --nodes 192.168.0.5,192.168.0.6,192.168.0.7 --passwd 'xxx'
+```
+
+2. 多镜像运行:
+```
+sealos run labring/kubernetes:v1.24.0 labring/helm:v3.11.3 calico:v3.24.6 \
+ --masters 192.168.64.2,192.168.64.22,192.168.64.20 --nodes 192.168.64.21,192.168.64.19
+```
+
+3. 指定服务器的 InfraSSH 端口:
+```
+sealos run labring/kubernetes:v1.24.0 --masters 192.168.0.2,192.168.0.3,192.168.0.4 \
+ --nodes 192.168.0.5,192.168.0.6,192.168.0.7 --port 24 --passwd 'xxx'
+```
+
+4. 自定义 VIP Kubernetes 集群:
+```
+sealos run -e defaultVIP=10.103.97.2 labring/kubernetes:v1.24.0 --masters 192.168.0.2,192.168.0.3,192.168.0.4 \
+ --nodes 192.168.0.5,192.168.0.6,192.168.0.7 --passwd 'xxx'
+```
+
+5. 创建单节点 Kubernetes 集群:
+```
+sealos run labring/kubernetes:v1.24.0
+```
+
+6. 使用自定义环境变量创建集群:
+```
+sealos run -e DashBoardPort=8443 mydashboard:latest --masters 192.168.0.2,192.168.0.3,192.168.0.4 \
+ --nodes 192.168.0.5,192.168.0.6,192.168.0.7 --passwd 'xxx'
+```
+
+这些示例展示了 `sealos run` 命令的强大和灵活性,可以根据您的需求进行定制和调整。
+
+更多示例请参考 [运行集群](/self-hosting/lifecycle-management/operations/run-cluster.md)。
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/commands/save.md b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/commands/save.md
new file mode 100644
index 00000000000..cea21ca7351
--- /dev/null
+++ b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/commands/save.md
@@ -0,0 +1,39 @@
+---
+sidebar_position: 6
+---
+
+# save 保存镜像
+
+`sealos save` 是 Sealos 命令行工具中的一个命令,用于将镜像保存到归档文件中。这个命令可以帮助你方便地备份和迁移你的镜像。本指南将详细介绍其使用方法。
+
+## 基本用法
+
+基本的 `sealos save` 命令格式如下:
+
+```bash
+sealos save -o outputFilename imageName
+```
+
+在上述命令中,`outputFilename` 是你想要保存的归档文件的名称,`imageName` 是你想要保存的镜像的名称。
+
+## 示例
+
+例如,你可以使用以下命令将名为 `labring/kubernetes:latest` 的镜像保存到一个名为 `kubernetes.tar` 的归档文件中:
+
+```bash
+sealos save -o kubernetes.tar labring/kubernetes:v1.24.0
+```
+
+## 可选参数
+
+- `--format`: 这个参数用于指定保存镜像的传输方式。目前可用的选项有 `oci-archive` 和 `docker-archive`、`oci-dir`,`docker-dir`。默认值是 `oci-archive`。
+- `-m`: 这个参数可以同时保存多个镜像,但是仅限于`docker-archive`格式。
+
+例如,你可以使用以下命令将名为 `labring/kubernetes:latest` 的镜像以 `docker-archive` 的方式保存到一个名为 `kubernetes.tar` 的归档文件中:
+
+```bash
+sealos save -o kubernetes.tar --format docker-archive labring/kubernetes:v1.24.0
+sealos save -o kubernetes.tar -m --format docker-archive labring/kubernetes:v1.24.0 labring/helm:v3.5.0
+```
+
+以上就是 `sealos save` 命令的使用指南,希望对你有所帮助。如果你在使用过程中遇到任何问题,欢迎向我们提问。
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/commands/scp.md b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/commands/scp.md
new file mode 100644
index 00000000000..1508424fb4f
--- /dev/null
+++ b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/commands/scp.md
@@ -0,0 +1,51 @@
+---
+sidebar_position: 5
+---
+
+# scp 拷贝文件
+
+`sealos scp` 是 Sealos 命令行工具中的一个命令,用于将文件复制到指定的集群节点。本指南将详细介绍其使用方法和选项。
+
+## 基本用法
+
+基本的 `sealos scp` 命令格式如下:
+
+```bash
+sealos scp "source file path" "destination file path"
+```
+
+在上述命令中,`source file path` 是你要复制的文件的本地路径,`destination file path` 是你要将文件复制到的远程节点路径。
+
+## 选项
+
+`sealos scp` 命令提供了以下选项:
+
+- `-c, --cluster='default'`: 要将文件复制到其上的集群的名称。默认为 `default`。
+
+- `--ips=[]`: 将文件复制到具有指定 IP 地址的节点。
+
+- `-r, --roles='':`: 将文件复制到具有指定角色的节点。
+
+每个选项后都可以跟随一个或多个参数。
+
+## 示例
+
+例如,你可以使用以下命令将本地的 `/root/aa.txt` 文件复制到默认集群的所有节点的 `/root/dd.txt`:
+
+```bash
+sealos scp "/root/aa.txt" "/root/dd.txt"
+```
+
+如果你想在名为 `my-cluster` 的集群的 `master` 和 `node` 角色的节点上复制文件,可以使用以下命令:
+
+```bash
+sealos scp -c my-cluster -r master,node "/root/aa.txt" "/root/dd.txt"
+```
+
+如果你只想在 IP 地址为 `172.16.1.38` 的节点上复制文件,可以使用以下命令:
+
+```bash
+sealos scp -c my-cluster --ips 172.16.1.38 "/root/aa.txt" "/root/dd.txt"
+```
+
+以上就是 `sealos scp` 命令的使用指南,希望对你有所帮助。如果你在使用过程中遇到任何问题,欢迎向我们提问。
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/commands/tag.md b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/commands/tag.md
new file mode 100644
index 00000000000..c3e250cc344
--- /dev/null
+++ b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/commands/tag.md
@@ -0,0 +1,33 @@
+---
+sidebar_position: 6
+---
+
+# tag 添加镜像名称
+
+`sealos tag` 是 Sealos 命令行工具中的一个命令,用于给本地存储的镜像添加一个或多个附加名称。这个命令可以帮助你更好地管理你的镜像。本指南将详细介绍其使用方法。
+
+## 基本用法
+
+基本的 `sealos tag` 命令格式如下:
+
+```bash
+sealos tag imageName newName
+```
+
+在上述命令中,`imageName` 是你要操作的镜像的名称,`newName` 是你想要添加的新标签。
+
+## 示例
+
+例如,你可以使用以下命令给名为 `imageName` 的镜像添加一个新的名称 `firstNewName`:
+
+```bash
+sealos tag imageName firstNewName
+```
+
+你也可以一次添加多个名称,例如,添加 `firstNewName` 和 `SecondNewName` 两个名称:
+
+```bash
+sealos tag imageName firstNewName SecondNewName
+```
+
+以上就是 `sealos tag` 命令的使用指南,希望对你有所帮助。如果你在使用过程中遇到任何问题,欢迎向我们提问。
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/kubernetes-cluster-image.md b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/kubernetes-cluster-image.md
new file mode 100644
index 00000000000..f09d34f7bf1
--- /dev/null
+++ b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/kubernetes-cluster-image.md
@@ -0,0 +1,55 @@
+---
+sidebar_position: 10
+---
+
+# Kubernetes 集群镜像说明文档
+
+本文档主要介绍 Sealos 官方提供的 rootfs 类型集群镜像,包括镜像名称、镜像类型以及镜像版本等方面的说明。
+
+## 镜像名称
+
+Sealos 官方发布的集群镜像主要包括以下几种:
+
+1. kubernetes:使用 containerd 作为容器运行时(CRI)的 Kubernetes 镜像。
+2. kubernetes-docker:使用 docker 作为容器运行时(CRI)的 Kubernetes 镜像。
+3. kubernetes-crio:使用 crio 作为容器运行时(CRI)的 Kubernetes 镜像。
+
+目前,Sealos 主要提供了 Kubernetes 相关的镜像,而其他类型的集群镜像,如 k3s、k0s 等,尚未提供。
+
+## 镜像类型
+
+根据容器运行时(CRI)的不同,Sealos 提供了不同类型的 Kubernetes 集群镜像:
+
+1. 使用 containerd 作为 CRI 的 Kubernetes 镜像。
+2. 使用 docker 作为 CRI 的 Kubernetes 镜像。
+3. 使用 crio 作为 CRI 的 Kubernetes 镜像。
+
+用户可以根据自己的需求和偏好,选择合适的镜像类型。
+
+## 镜像版本
+
+Sealos 官方提供的集群镜像有多个版本可供选择,例如:
+
+### 1. 开发版(Development version)
+
+适用于想要尝试项目最新功能的用户。开发版可能包含尚未经过完整测试的新功能和改进,因此可能不够稳定。
+
+示例:`v1.26(v1.26-amd64/v1.26-arm64)`
+
+### 2. 最新版(Latest version)
+
+通常比开发版更稳定,但可能不包含所有的新功能。这是推荐给大多数用户使用的版本。
+
+示例:`v1.26.0(v1.26.0-amd64/v1.26.0-arm64)`
+
+### 3. 发布版(Release version,包含历史版本)
+
+包含了历史版本的发布版。发布版通常经过了严格的测试,被认为是稳定的。
+
+示例:`v1.26.0-4.1.5(v1.26.0-4.1.5-amd64/v1.26.0-4.1.5-arm64)` `4.1.5`是sealos对应版本号
+
+在选择镜像版本时,用户需要根据自己的需求和偏好来选择适合的版本。另外,Sealos 还提供了针对不同处理器架构的子版本,以满足用户在不同硬件平台上的需求。
+
+## 总结
+
+本文档对 Sealos 官方提供的 rootfs 类型集群镜像进行了说明,包括镜像名称、镜像类型以及镜像版本等方面。用户可以根据自己的需求和偏好,在不同的镜像类型和版本中进行选择,以便在 Kubernetes 集群中运行容器。
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/sealos.md b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/sealos.md
new file mode 100644
index 00000000000..69c2cc67ce9
--- /dev/null
+++ b/docs/5.0/i18n/zh-Hans/self-hosting/lifecycle-management/reference/sealos/sealos.md
@@ -0,0 +1,16 @@
+---
+sidebar_position: 0
+---
+
+# Sealos 使用指南
+
+Sealos 是一个统一的云操作系统,用于管理云原生应用。它提供了一系列命令行工具来帮助用户管理 Kubernetes 集群,管理节点,远程操作,管理容器和镜像,以及其他一些功能。下面是这些命令的详细介绍:
+
+本章节主要介绍 Sealos 的使用指南以及集群镜像相关说明。
+
+- Sealos使用指南: 有关每个命令的详细信息,包括所有受支持的参数和子命令, 请参阅 [sealos](/self-hosting/lifecycle-management/reference/sealos/commands.md) 参考文档。
+- 集群镜像:
+ - [Rootfs集群镜像](/self-hosting/lifecycle-management/reference/sealos/kubernetes-cluster-image.md)
+ - [Application集群镜像](/self-hosting/lifecycle-management/reference/sealos/app-cluster-image.md)
+
+
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/sealos/QA.md b/docs/5.0/i18n/zh-Hans/self-hosting/sealos/QA.md
new file mode 100644
index 00000000000..eb8b12389da
--- /dev/null
+++ b/docs/5.0/i18n/zh-Hans/self-hosting/sealos/QA.md
@@ -0,0 +1,110 @@
+---
+sidebar_position: 3
+---
+
+# 常见问题
+
+在部署及使用 Sealos Cloud 过程中,您可能会遇到各种问题。为了更好地帮助您解决这些问题,我们对常见问题进行了总结,并提供了详细的答案和解决方法。
+
+## 部署问题
+
+下面总结了部署过程中可能遇到的问题及解决方法,假如您遇到了其他问题,请在 [Sealos 社区](https://forum.laf.run/)中联系我们。
+
+### Q1:iptables / ip_forward 问题
+
+**问题描述**:在部分操作系统中,iptables 或 IPv4 IP 转发默认未启用,例如旧版本的 Centos、RHEL 等。这可能导致部署过程中无法正常创建
+iptables 规则或转发数据包,从而导致集群无法正常启动。
+
+**解决方法**:需要在每个节点上执行以下命令,以启用 iptables 和 IP 转发:
+
+```shell
+$ modprobe br_netfilter
+$ echo 1 > /proc/sys/net/bridge/bridge-nf-call-iptables
+$ echo 1 > /proc/sys/net/ipv4/ip_forward
+```
+
+### Q2:系统内核问题
+
+- **问题描述**:如果系统内核版本过低,可能导致集群无法正常启动。低版本内核也可能导致依赖 MongoDB 5.0 的应用无法正常运行。
+- **解决方法**:在部署前,请确保系统内核版本至少为 5.4 或更高。
+
+### Q3:系统资源问题
+
+- **问题描述**:系统资源紧张可能会导致部署过程中出现卡顿或停滞,当您等待过久时,请检查系统资源是否足够。
+- **解决方法**:使用命令 `kubectl describe nodes` 查看节点资源状态。一般情况下可以从 CPU、内存、存储等方向排查系统资源是否充足。
+
+### Q4:网络问题
+
+- **问题描述**: 在部署过程中,服务器的不当配置可能会引发多种网络问题,例如:
+ 1. http_proxy / https_proxy 环境变量配置;
+ 2. 服务器防火墙配置;
+ 3. 服务器路由配置;
+- **解决方法**: 遇到网络问题时,请检查以上配置是否正确。
+
+## 证书及域名相关问题
+
+### 证书更新
+
+在您使用 Sealos 过程中,证书是保障集群安全的重要组成部分。以下是详细的证书更新步骤,这些步骤可以帮助您在证书即将过期时顺利更新:
+
+1. **备份旧证书**:
+
+ 在主节点 `master0` 上,您需要先备份当前使用的证书。这是一个防止更新过程中出现问题而导致证书丢失的重要步骤。使用以下命令进行备份:
+
+ ```shell
+ $ kubectl get secret -n sealos-system wildcard-cert -o yaml > cert-backup.yaml
+ ```
+
+ 此命令会将名为 `wildcard-cert` 的证书以 YAML 格式保存到文件 `cert-backup.yaml` 中。
+
+2. **保存新证书**:
+
+ 将您已经准备好的新证书文件保存到 `master0` 节点上。确保新的证书文件(通常是 `.crt` 和 `.key` 文件)在节点上的某个位置。
+
+3. **更新证书**:
+
+ 使用以下脚本来更新证书。您需要替换脚本中的 `` 和 ``,以指向您的新证书文件和密钥文件的实际路径。
+
+ ```shell
+ #!/bin/bash
+ # 设置变量
+ CRT_FILE=
+ KEY_FILE=
+
+ # 将证书和密钥文件内容进行Base64编码
+ CRT_BASE64=$(cat $CRT_FILE | base64 -w 0)
+ KEY_BASE64=$(cat $KEY_FILE | base64 -w 0)
+
+ # 构建部分更新的JSON对象
+ PATCH_JSON='{"data":{"tls.crt":"'$CRT_BASE64'","tls.key":"'$KEY_BASE64'"}}'
+
+ # 使用kubectl patch命令更新Secret
+ kubectl patch secret wildcard-cert -n sealos-system -p $PATCH_JSON
+ ```
+
+ 这个脚本的主要作用是将新证书的内容编码为 Base64 格式,并使用 `kubectl patch` 命令更新 Kubernetes 集群中的相应 Secret
+ 对象。
+
+### 域名更换
+
+域名更换是一个更加复杂的过程,因为它通常涉及到集群内多个组件和服务的配置更改。目前,我们尚未在文档中提供域名更换的详细教程。不过,我们计划在未来推出
+Sealos 集群管理面板,该面板将提供更加简便的方法来替换集群域名和证书。
+
+请注意,域名更换通常需要对集群的网络配置进行深入了解,并且可能涉及到 DNS
+设置、服务发现等多个方面。因此,建议在执行此类操作时,确保您具备相应的技术知识或咨询专业人士的帮助。
+
+### 用户注册开关
+
+关闭用户注册:
+
+```shell
+kubectl get cm -n sealos desktop-frontend-config -o yaml | sed 's/signUpEnabled: true/signUpEnabled: false/g' | kubectl apply -f -
+kubectl rollout restart deployment desktop-frontend -n sealos
+```
+
+开启用户注册:
+
+```shell
+kubectl get cm -n sealos desktop-frontend-config -o yaml | sed 's/signUpEnabled: false/signUpEnabled: true/g' | kubectl apply -f -
+kubectl rollout restart deployment desktop-frontend -n sealos
+```
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/sealos/images/chrome-certificate-1.jpg b/docs/5.0/i18n/zh-Hans/self-hosting/sealos/images/chrome-certificate-1.jpg
new file mode 100644
index 00000000000..680d572141b
Binary files /dev/null and b/docs/5.0/i18n/zh-Hans/self-hosting/sealos/images/chrome-certificate-1.jpg differ
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/sealos/images/chrome-certificate-2.jpg b/docs/5.0/i18n/zh-Hans/self-hosting/sealos/images/chrome-certificate-2.jpg
new file mode 100644
index 00000000000..8b6a354702c
Binary files /dev/null and b/docs/5.0/i18n/zh-Hans/self-hosting/sealos/images/chrome-certificate-2.jpg differ
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/sealos/images/firefox-export-certificate-1.png b/docs/5.0/i18n/zh-Hans/self-hosting/sealos/images/firefox-export-certificate-1.png
new file mode 100644
index 00000000000..6e2c46692cf
Binary files /dev/null and b/docs/5.0/i18n/zh-Hans/self-hosting/sealos/images/firefox-export-certificate-1.png differ
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/sealos/images/firefox-export-certificate-2.jpg b/docs/5.0/i18n/zh-Hans/self-hosting/sealos/images/firefox-export-certificate-2.jpg
new file mode 100644
index 00000000000..a99aaeaf5a0
Binary files /dev/null and b/docs/5.0/i18n/zh-Hans/self-hosting/sealos/images/firefox-export-certificate-2.jpg differ
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/sealos/images/firefox-export-certificate-3.jpg b/docs/5.0/i18n/zh-Hans/self-hosting/sealos/images/firefox-export-certificate-3.jpg
new file mode 100644
index 00000000000..8a42e6c08c8
Binary files /dev/null and b/docs/5.0/i18n/zh-Hans/self-hosting/sealos/images/firefox-export-certificate-3.jpg differ
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/sealos/images/safari-export-certificate-1.jpg b/docs/5.0/i18n/zh-Hans/self-hosting/sealos/images/safari-export-certificate-1.jpg
new file mode 100644
index 00000000000..3a211ccd3e1
Binary files /dev/null and b/docs/5.0/i18n/zh-Hans/self-hosting/sealos/images/safari-export-certificate-1.jpg differ
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/sealos/images/safari-export-certificate-2.jpg b/docs/5.0/i18n/zh-Hans/self-hosting/sealos/images/safari-export-certificate-2.jpg
new file mode 100644
index 00000000000..357d5880dbe
Binary files /dev/null and b/docs/5.0/i18n/zh-Hans/self-hosting/sealos/images/safari-export-certificate-2.jpg differ
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/sealos/images/safari-export-certificate-3.jpg b/docs/5.0/i18n/zh-Hans/self-hosting/sealos/images/safari-export-certificate-3.jpg
new file mode 100644
index 00000000000..9c33c03204f
Binary files /dev/null and b/docs/5.0/i18n/zh-Hans/self-hosting/sealos/images/safari-export-certificate-3.jpg differ
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/sealos/images/sealos-cost-center.jpg b/docs/5.0/i18n/zh-Hans/self-hosting/sealos/images/sealos-cost-center.jpg
new file mode 100644
index 00000000000..e8e59ccb870
Binary files /dev/null and b/docs/5.0/i18n/zh-Hans/self-hosting/sealos/images/sealos-cost-center.jpg differ
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/sealos/images/sealos-license-activate.jpg b/docs/5.0/i18n/zh-Hans/self-hosting/sealos/images/sealos-license-activate.jpg
new file mode 100644
index 00000000000..97dbcc274b2
Binary files /dev/null and b/docs/5.0/i18n/zh-Hans/self-hosting/sealos/images/sealos-license-activate.jpg differ
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/sealos/images/sealos-license-activate1.png b/docs/5.0/i18n/zh-Hans/self-hosting/sealos/images/sealos-license-activate1.png
new file mode 100644
index 00000000000..3f1bfaebdc2
Binary files /dev/null and b/docs/5.0/i18n/zh-Hans/self-hosting/sealos/images/sealos-license-activate1.png differ
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/sealos/images/sealos-license-activate2.png b/docs/5.0/i18n/zh-Hans/self-hosting/sealos/images/sealos-license-activate2.png
new file mode 100644
index 00000000000..7c33e2693e9
Binary files /dev/null and b/docs/5.0/i18n/zh-Hans/self-hosting/sealos/images/sealos-license-activate2.png differ
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/sealos/images/sealos-license-activate3.png b/docs/5.0/i18n/zh-Hans/self-hosting/sealos/images/sealos-license-activate3.png
new file mode 100644
index 00000000000..609a653a4f1
Binary files /dev/null and b/docs/5.0/i18n/zh-Hans/self-hosting/sealos/images/sealos-license-activate3.png differ
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/sealos/images/sealos-license-activate4.png b/docs/5.0/i18n/zh-Hans/self-hosting/sealos/images/sealos-license-activate4.png
new file mode 100644
index 00000000000..6c6a20aadb7
Binary files /dev/null and b/docs/5.0/i18n/zh-Hans/self-hosting/sealos/images/sealos-license-activate4.png differ
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/sealos/images/sealos-license.png b/docs/5.0/i18n/zh-Hans/self-hosting/sealos/images/sealos-license.png
new file mode 100644
index 00000000000..aa820a06c10
Binary files /dev/null and b/docs/5.0/i18n/zh-Hans/self-hosting/sealos/images/sealos-license.png differ
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/sealos/images/windows-trust-certificate.jpg b/docs/5.0/i18n/zh-Hans/self-hosting/sealos/images/windows-trust-certificate.jpg
new file mode 100644
index 00000000000..243d0d2d558
Binary files /dev/null and b/docs/5.0/i18n/zh-Hans/self-hosting/sealos/images/windows-trust-certificate.jpg differ
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/sealos/install-object-storage.md b/docs/5.0/i18n/zh-Hans/self-hosting/sealos/install-object-storage.md
new file mode 100644
index 00000000000..cade1f86851
--- /dev/null
+++ b/docs/5.0/i18n/zh-Hans/self-hosting/sealos/install-object-storage.md
@@ -0,0 +1,43 @@
+---
+sidebar_position: 2
+---
+
+# 部署对象存储
+
+下载 helm 图表。
+
+```bash
+curl -O https://raw.githubusercontent.com/minio/operator/master/helm-releases/operator-5.0.6.tgz
+```
+
+安装 minio-operator。
+
+```bash
+helm install --namespace minio-system --create-namespace minio-operator operator-5.0.6.tgz
+```
+
+安装 Minio、Controller 等。
+
+```bash
+# DOMAIN 是 Sealos 集群的域名
+# 环境变量设置 Minio 管理员账户(默认的 Minio 管理员账户为 username/passw0rd)
+# -e minioAdminUser={16位随机大小写字符串} -e minioAdminPassword={32位随机大小写字符串}
+sealos run ghcr.io/labring/sealos-cloud-objectstorage:latest -e cloudDomain={DOMAIN}
+```
+
+# 卸载对象存储
+
+安装「对象存储」失败,可以使用脚本清理残留资源,卸载「对象存储」也可以使用脚本清理。
+
+```bash
+#!/usr/bin/env bash
+set +e
+
+kubectl delete app objectstorage -n app-system
+kubectl delete ns objectstorage-system objectstorage-frontend
+helm uninstall minio-operator -n minio-system
+kubectl delete ns minio-system
+kubectl delete crd objectstoragebuckets.objectstorage.sealos.io objectstorageusers.objectstorage.sealos.io
+kubectl delete clusterrole objectstorage-manager-role objectstorage-metrics-reader objectstorage-proxy-role
+kubectl delete clusterrolebinding objectstorage-manager-rolebinding objectstorage-proxy-rolebinding
+```
\ No newline at end of file
diff --git a/docs/5.0/i18n/zh-Hans/self-hosting/sealos/installation.md b/docs/5.0/i18n/zh-Hans/self-hosting/sealos/installation.md
new file mode 100644
index 00000000000..34755fe2860
--- /dev/null
+++ b/docs/5.0/i18n/zh-Hans/self-hosting/sealos/installation.md
@@ -0,0 +1,428 @@
+---
+sidebar_position: 1
+toc_max_heading_level: 5
+---
+
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+
+# Sealos 集群部署
+
+export const Highlight = ({children, color}) => (
+
+ {children}
+
+);
+
+:::tip
+
+大规模集群以及企业生产环境强烈建议使用 [Sealos 私有云的企业版或者定制版](/self-hosting)。
+
+:::
+
+## 准备工作
+
+### 服务器
+
+以下是一些基本的要求:
+
+- 每个集群节点应该有不同的主机名。
+- 所有节点的时间需要同步。
+- 建议使用干净的操作系统来创建集群。**不要自己装 Docker!**
+- 支持大多数 Linux 发行版,例如:Ubuntu、Debian、CentOS、Rocky linux。
+- **系统内核版本在 5.4 及以上**。
+- **必须使用 root 用户安装!**
+
+推荐配置:
+
+推荐使用 Ubuntu 22.04 LTS 操作系统,内核版本在 5.4 及以上,配置如下:
+
+| 操作系统 | 内核版本 | CPU | 内存 | 存储 | Masters | Nodes |
+|------------------|-------|-----|------|-------|---------|-------|
+| Ubuntu 22.04 LTS | ≥ 5.4 | 8C | 16GB | 100GB | 奇数台 | 任意 |
+
+:::info注意
+Kubernetes 和 Sealos Cloud 的系统组件在每个 Master 节点上大约需要 2 核心(2c)和 2GB 内存(2g),在每个 Node 节点上则需要大约
+1 核心(1c)和 1GB 内存(1g),请确保集群中每个节点都有足够的计算资源以支持系统组件的运行。
+:::
+
+### 网络
+
++ 所有节点之间网络互通;
++ 需要在 Kubernetes 集群的**第一个 Master 节点**上执行脚本,目前**集群外的节点不支持集群安装**;
++ 所有节点之间可以互相通信。
+
+### 域名
+
++ 需要一个域名用于访问 Sealos 及相关服务;
++ 如果您没有域名,可以使用 `nip.io` 提供的免费域名服务。
+
+### 证书
+
+Sealos 需要使用证书来保证通信安全,默认在您不提供证书的情况下我们会使用 [cert-manager](https://cert-manager.io/docs/) 来自动签发证书。
+
+如果您能提供证书,证书需要解析下列域名 (假设您提供的域名为:cloud.example.io):
+
+- `*.cloud.example.io`
+- `cloud.example.io`
+
+## 安装步骤
+
+为了便于部署,我们提供了一个一键安装脚本。该脚本可以从零开始部署 Sealos 集群,也可以在已有的 Kubernetes 集群上部署 Sealos
+集群(在已有集群上执行时请谨慎操作)。
+
+:::info注意
+
+该脚本只支持在 “使用 Sealos 安装的 Kubernetes 集群” 上部署 Sealos 集群,暂不支持其他方式部署的 Kubernetes。
+
+关于如何使用 Sealos 部署 Kubernetes
+集群,可以参考:[安装 Kubernetes 集群](/self-hosting/lifecycle-management/quick-start/deploy-kubernetes.md)
+,支持 [Docker Hub](https://hub.docker.com/r/labring/kubernetes/tags) 中的几乎所有 Kubernetes 版本(**暂不支持 1.28 及以上版本
+**)。
+
+:::
+
+如果您的机器还没有安装过 Kubernetes,**建议直接使用该脚本连同 Kubernetes 和 Sealos 集群一起安装。**
+
+根据您的域名情况,可以分为以下几种安装方式:
+
+### 1、无公网域名,也不想自定义域名
+
+如果您没有公网域名,也不需要自定义域名,可以选择直接使用 `nip.io` 提供的免费域名服务。`nip.io` 是一个免费的通配符 DNS 服务,它可以将动态分配的 IP 地址映射到一个固定的子域名上,特别适合用于本地开发环境。具体的工作原理为:
+
+您可以使用任何 IP 地址作为 `nip.io` 子域名的一部分,而 `nip.io` 会将它解析回相应的 IP 地址。例如,如果你有一个内网 IP 地址 `192.168.1.10`,你可以使用 `192.168.1.10.nip.io` 作为域名,所有向这个域名发送的请求都会被解析到 `192.168.1.10` 这个 IP 地址上。这样就无需修改本地 hosts 文件,也不需要搭建内网 DNS 服务,直接通过这个域名就能访问内网服务了。
+
+使用 nip.io 作为 Sealos 的域名非常简单,只需在第一个 Master 节点上执行以下命令,并根据提示输入参数:
+
+```bash
+$ curl -sfL https://mirror.ghproxy.com/https://raw.githubusercontent.com/labring/sealos/v5.0.0-beta5/scripts/cloud/install.sh -o /tmp/install.sh && bash /tmp/install.sh \
+ --cloud-version=v5.0.0-beta5 \
+ --image-registry=registry.cn-shanghai.aliyuncs.com --zh \
+ --proxy-prefix=https://mirror.ghproxy.com
+```
+
+当需要你输入 Sealos Cloud 域名时,你需要输入这种格式的域名:`[ip].nip.io`,其中 [ip] 是你的 Master 节点 IP。
+
+安装完成后,终端会输出 Sealos 访问域名以及用户名和密码,例如:
+
+```bash
+Sealos cloud login info:
+Cloud Version: latest
+URL: https://10.214.210.102.nip.io
+admin Username: admin
+admin Password: sealos2023
+```
+
+### 2、有公网域名,想公网访问
+
+如果你有自己的公网域名,并且想通过公网访问 Sealos,那你就需要准备好公网受信任的 SSL/TLS 证书。你可以通过 acme.sh 等工具自动签发证书,也可以从域名提供商处下载免费证书或者购买商业证书。
+
+:::info注意
+如果你的公网 IP 在国内,那么域名必须要备案!
+:::
+
+准备好域名证书后,需要将证书放到第一个 Master 节点的某个目录中,例如 `/root/certs/`。
+
+:::info注意
+
+您还需要在域名服务商处添加一条该域名的 A 记录,地址解析到第一个 Master 节点的公网 IP 地址。同时还需要添加一条泛解析记录,将该域名的子域名也解析到第一个 Master 节点的公网 IP 地址。
+
+例如 (假设你的域名是 `cloud.example.io`,假设你的 Master 节点公网地址是 `192.168.1.10`):
+
+```bash
+cloud.example.io A 192.168.1.10
+*.cloud.example.io A 192.168.1.10
+```
+
+:::
+
+然后在第一个 Master 节点上执行以下命令,并根据提示输入参数:
+
+```bash
+$ curl -sfL https://mirror.ghproxy.com/https://raw.githubusercontent.com/labring/sealos/v5.0.0-beta5/scripts/cloud/install.sh -o /tmp/install.sh && bash /tmp/install.sh \
+ --cloud-version=v5.0.0-beta5 \
+ --image-registry=registry.cn-shanghai.aliyuncs.com --zh \
+ --proxy-prefix=https://mirror.ghproxy.com \
+ --cloud-domain= \
+ --cert-path= \
+ --key-path=
+```
+
++ `` 需要替换成你自己的公网域名。
++ `` 需要替换成你的证书位置,通常是 `.crt` 或 `.pem` 文件。例如:`/root/certs/example.crt`。
++ `` 需要替换成你的私钥位置,通常是 `.key` 或 `.pem` 文件。例如:`/root/certs/example.key`。
+
+### 3、有公网域名,想内网访问
+
+如果您有自己的公网域名,但是只有内网 IP,或者只想在内网访问 Sealos,那您只需要在域名服务商处添加一条该域名的 A 记录,地址解析到第一个 Master 节点的内网 IP 地址。同时还需要添加一条泛解析记录,将该域名的子域名也解析到第一个 Master 节点的内网 IP 地址。
+
+例如 (假设你的域名是 `cloud.example.io`,假设你的 Master 节点内网地址是 `192.168.1.10`):
+
+```bash
+cloud.example.io A 192.168.1.10
+*.cloud.example.io A 192.168.1.10
+```
+
+然后在第一个 Master 节点上执行以下命令,并根据提示输入参数:
+
+```bash
+$ curl -sfL https://mirror.ghproxy.com/https://raw.githubusercontent.com/labring/sealos/v5.0.0-beta5/scripts/cloud/install.sh -o /tmp/install.sh && bash /tmp/install.sh \
+ --cloud-version=v5.0.0-beta5 \
+ --image-registry=registry.cn-shanghai.aliyuncs.com --zh \
+ --proxy-prefix=https://mirror.ghproxy.com \
+ --cloud-domain=
+```
+
+其中 `` 需要替换成你自己的公网域名。
+
+安装过程中 Sealos 会使用 [cert-manager](https://cert-manager.io/docs/) 来自签名证书。
+
+### 4、无公网域名,但想自定义域名
+
+如果您没有公网域名,但是需要自定义域名,那么就需要在内网自建 DNS,然后将自定义域名解析到第一个 Master 节点的内网 IP 地址。
+
+:::note
+
+假设您的第一个 Master 节点的内网 IP 地址为 `192.168.1.10`。假设您的域名为 `cloud.example.io`。
+
+:::
+
+可以考虑使用 CoreDNS 来自建 DNS 服务,参考配置:
+
+```nginx
+(global_cache) {
+ cache {
+ # [5, 60]
+ success 65536 3600 300
+ # [1, 10]
+ denial 8192 600 60
+ prefetch 1 60m 10%
+ }
+}
+
+.:53 {
+ errors
+ health
+ ready
+
+ import global_cache
+
+ template IN A cloud.example.io {
+ answer "{{ .Name }} 60 IN A 192.168.1.10"
+ fallthrough
+ }
+
+ forward . 223.5.5.5
+
+ log
+ loop
+ reload 6s
+}
+```
+
+这样不管您访问 `cloud.example.io` 还是 `*.cloud.example.io` 都会解析到第一个 Master 节点的内网 IP 地址。
+
+然后在第一个 Master 节点上执行以下命令,并根据提示输入参数:
+
+```bash
+$ curl -sfL https://mirror.ghproxy.com/https://raw.githubusercontent.com/labring/sealos/v5.0.0-beta5/scripts/cloud/install.sh -o /tmp/install.sh && bash /tmp/install.sh \
+ --cloud-version=v5.0.0-beta5 \
+ --image-registry=registry.cn-shanghai.aliyuncs.com --zh \
+ --proxy-prefix=https://mirror.ghproxy.com \
+ --cloud-domain=
+```
+
+其中 `` 需要替换成你自己的自定义域名。
+
+安装过程中 Sealos 会使用 [cert-manager](https://cert-manager.io/docs/) 来自签名证书。
+
+## 信任自签名证书
+
+如果您选择了上面提供的安装方式中的 1 或 3 或 4,那么您的证书默认是不受浏览器信任的,当你访问 Sealos Cloud 时,浏览器会提示下面的信息:
+
+![](images/chrome-certificate-1.jpg)
+
+即使点击继续访问,进入 Sealos Cloud 之后也无法正常显示 App 图标,无法打开 App。
+
+![](images/chrome-certificate-2.jpg)
+
+我们需要导出自签名证书,并让系统信任自签名证书。步骤如下。
+
+### 导出自签名证书
+
+各个浏览器导出自签名证书的步骤略有不同。以下是在一些常用浏览器中导出自签名证书的步骤:
+
+#### Chrome (以及基于 Chromium 的浏览器如新版 Edge 和 Brave)
+
+1. 在浏览器地址栏左侧点击 “不安全” 字样。
+2. 点击 “证书无效”,这将打开一个证书信息窗口。
+3. 在打开的证书窗口中,切换到 “详细信息” 标签页。
+4. 在 “详细信息” 标签页中,找到并点击 “导出”。
+5. 选择一个文件名和保存位置,然后完成导出过程。
+
+#### Firefox
+
+1. 点击页面中的 “高级”。
+
+ ![](images/firefox-export-certificate-1.png)
+
+2. 然后点击 “查看证书”。
+
+ ![](images/firefox-export-certificate-2.jpg)
+
+3. 在证书页面中点击 “PEM (证书)”。
+
+ ![](images/firefox-export-certificate-3.jpg)
+
+#### Safari
+
+1. 点击页面中的 “显示详细信息”。
+
+ ![](images/safari-export-certificate-1.jpg)
+
+2. 然后点击 “查看此证书”。
+
+ ![](images/safari-export-certificate-2.jpg)
+
+3. 在证书视图中,可以看到一个带有证书链的窗口。
+
+ ![](images/safari-export-certificate-3.jpg)
+
+4. 拖动红框圈出来的证书到桌面或文件夹中,证书就会被导出了。
+
+### 信任自签名证书
+
+#### macOS
+
+在 macOS 上信任自签名证书可以使用以下命令:
+
+```bash
+# 假设证书保存在 ~/Downloads/10.214.210.102.nip.io.cer
+$ sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain ~/Downloads/10.214.210.102.nip.io.cer
+```
+
+您也可以通过以下步骤来操作:
+
+##### 1、添加证书到钥匙串
+
+1. 启动**钥匙串访问** (Keychain Access) 应用程序,点击左侧 “系统钥匙串” 下方的 “系统” 类别。
+2. 然后打开 “访达”,进入证书保存位置,**双击证书文件**:这通常是一个 `.cer`,`.crt`,或 `.pem` 文件。
+3. 输入您的用户名和密码以允许修改。
+4. 证书现在应该已经被添加到您的钥匙串中。
+
+##### 2、信任证书
+
+1. 在钥匙串访问中,从 “系统” 类别的列表中找到刚刚添加的自签名证书,并双击它。
+2. 在打开的窗口中,展开 “信任” 部分。
+3. 在 “当使用此证书时” 选项旁边,有一个下拉菜单,默认设置可能是 “使用系统默认值”。要信任证书,请改为 “始终信任”。
+4. 关闭证书信息窗口,系统可能会提示您验证您的用户名和密码,以确认更改。
+5. 现在,证书已经被标记为受信任。
+
+:::info注意
+
+自签名证书不由第三方证书颁发机构 (CA) 颁发,因此,其他设备也不会信任该证书。如果您是在公司或组织内部使用自签名证书,可能需要在每个需要信任此证书的设备上手动进行上述步骤。
+
+:::
+
+#### Windows
+
+1. 在根证书文件点鼠标右键,选择 “安装证书”。
+2. 选择 “当前用户” 或者 “本地计算机”,下一步
+3. “将所有的证书都放入下列存储”,“浏览”,“受信任的根证书颁发机构”,“确定”,下一步。
+4. 完成,“是”,确定。
+
+![](images/windows-trust-certificate.jpg)
+
+#### Linux
+
+Linux 不同发行版更新根证书存储的命令不一样,用来保存私有证书的路径也不一样。需要先复制自签名 CA 证书到特定路径,再运行命令更新根证书存储。
+
+
+
+
+ ```bash
+ # Debian/Ubuntu/Gentoo
+ # - 安装
+ $ sudo cp root_ca.crt /usr/local/share/ca-certificates/root_ca.crt
+ # update-ca-certificates 会添加 /etc/ca-certificates.conf 配置文件中指定的证书
+ # 另外所有 /usr/local/share/ca-certificates/*.crt 会被列为隐式信任
+ $ sudo update-ca-certificates
+
+ # - 删除
+ $ sudo rm /usr/local/share/ca-certificates/root_ca.crt
+ $ sudo update-ca-certificates --fresh
+ ```
+
+
+
+
+ ```bash
+ # CentOS/Fedora/RHEL
+ $ yum install ca-certificates
+ # 启用动态 CA 配置功能:
+ $ update-ca-trust force-enable
+ $ cp root_ca.crt /etc/pki/ca-trust/source/anchors/
+ $ update-ca-trust
+ ```
+
+
+
+
+ ```bash
+ # Alpine
+ $ apk update && apk add --no-cache ca-certificates
+ $ cp root_ca.crt /usr/local/share/ca-certificates/
+ $ update-ca-certificates
+ ```
+
+
+
+
+ ```bash
+ # OpenSUSE/SLES
+ $ cp root_ca.crt /etc/pki/trust/anchors/
+ $ update-ca-certificates
+ ```
+
+
+
+
+## 激活集群
+
+集群安装完成后,默认只有 5 元的额度,你需要激活集群以获取赠送的 299 元余额。步骤如下:
+
+1. 首先点击桌面的「许可证」打开许可证应用:
+
+ ![](images/sealos-license.png)
+
+2. 然后点击「激活/购买」:
+
+ ![](images/sealos-license-activate.jpg)
+
+ 然后浏览器会跳转到 License 页面,并跳出一个弹窗:
+
+ ![](images/sealos-license-activate1.png)
+
+3. 如果你还没有在该页面创建过集群,就点击「理立即开始」创建一个集群;如果你已经创建过集群了,只需要点击「已有集群」便会跳转到已有集群。
+
+ 跳转到集群列表之后。你就会看到集群已经被激活了:
+
+ ![](images/sealos-license-activate2.png)
+
+4. 点击 「License 管理」,然后下载免费赠送的价值 299 元的 License:
+
+ ![](images/sealos-license-activate3.png)
+
+5. 然后回到 Sealos 集群的「许可证」应用界面,点击「上传 License 文件」:
+
+ ![](images/sealos-license-activate4.png)
+
+ 选择刚刚下载的 License 文件进行上传,然后点击右下角的「激活 License」,便可激活 License。激活成功后,集群中的余额就变成了 304 元。
+
+ ![](images/sealos-cost-center.jpg)
\ No newline at end of file
diff --git a/docs/5.0/img/ai-applications/c++.png b/docs/5.0/img/ai-applications/c++.png
new file mode 100644
index 00000000000..f21cf1e1b2d
Binary files /dev/null and b/docs/5.0/img/ai-applications/c++.png differ
diff --git a/docs/5.0/img/ai-applications/python.png b/docs/5.0/img/ai-applications/python.png
new file mode 100644
index 00000000000..485d3f04b62
Binary files /dev/null and b/docs/5.0/img/ai-applications/python.png differ
diff --git a/docs/5.0/img/ai-applications/sealos4-run-k8s-2.png b/docs/5.0/img/ai-applications/sealos4-run-k8s-2.png
new file mode 100644
index 00000000000..4c139126058
Binary files /dev/null and b/docs/5.0/img/ai-applications/sealos4-run-k8s-2.png differ
diff --git a/docs/5.0/img/ai-applications/sealos4-run-k8s-3.png b/docs/5.0/img/ai-applications/sealos4-run-k8s-3.png
new file mode 100644
index 00000000000..79208c3fc11
Binary files /dev/null and b/docs/5.0/img/ai-applications/sealos4-run-k8s-3.png differ
diff --git a/docs/5.0/img/ai-applications/sealos4-run-k8s.png b/docs/5.0/img/ai-applications/sealos4-run-k8s.png
new file mode 100644
index 00000000000..4e2f8f750c2
Binary files /dev/null and b/docs/5.0/img/ai-applications/sealos4-run-k8s.png differ
diff --git a/docs/5.0/img/app-launchpad-1-zh.jpg b/docs/5.0/img/app-launchpad-1-zh.jpg
new file mode 100644
index 00000000000..56c9a434ddc
Binary files /dev/null and b/docs/5.0/img/app-launchpad-1-zh.jpg differ
diff --git a/docs/5.0/img/app-launchpad-1.jpg b/docs/5.0/img/app-launchpad-1.jpg
new file mode 100644
index 00000000000..c93e8368db9
Binary files /dev/null and b/docs/5.0/img/app-launchpad-1.jpg differ
diff --git a/docs/5.0/img/app-launchpad-zh.png b/docs/5.0/img/app-launchpad-zh.png
new file mode 100644
index 00000000000..b9a1af059e1
Binary files /dev/null and b/docs/5.0/img/app-launchpad-zh.png differ
diff --git a/docs/5.0/img/app-launchpad.png b/docs/5.0/img/app-launchpad.png
new file mode 100644
index 00000000000..e0afc48fffd
Binary files /dev/null and b/docs/5.0/img/app-launchpad.png differ
diff --git a/docs/5.0/img/bytebase.webp b/docs/5.0/img/bytebase.webp
new file mode 100644
index 00000000000..164aff68ff5
Binary files /dev/null and b/docs/5.0/img/bytebase.webp differ
diff --git a/docs/5.0/img/database-zh.jpg b/docs/5.0/img/database-zh.jpg
new file mode 100644
index 00000000000..8fb5b1a33e2
Binary files /dev/null and b/docs/5.0/img/database-zh.jpg differ
diff --git a/docs/5.0/img/database.jpg b/docs/5.0/img/database.jpg
new file mode 100644
index 00000000000..1394172749d
Binary files /dev/null and b/docs/5.0/img/database.jpg differ
diff --git a/docs/5.0/img/laf-zh.jpg b/docs/5.0/img/laf-zh.jpg
new file mode 100644
index 00000000000..457cda0050b
Binary files /dev/null and b/docs/5.0/img/laf-zh.jpg differ
diff --git a/docs/5.0/img/laf.jpg b/docs/5.0/img/laf.jpg
new file mode 100644
index 00000000000..85d7f1ccd0e
Binary files /dev/null and b/docs/5.0/img/laf.jpg differ
diff --git a/docs/5.0/img/metering/metering-1.png b/docs/5.0/img/metering/metering-1.png
new file mode 100644
index 00000000000..4b9a6d1e58e
Binary files /dev/null and b/docs/5.0/img/metering/metering-1.png differ
diff --git a/docs/5.0/img/metering/metering-2.png b/docs/5.0/img/metering/metering-2.png
new file mode 100644
index 00000000000..380614649ac
Binary files /dev/null and b/docs/5.0/img/metering/metering-2.png differ
diff --git a/docs/5.0/img/metering/metering-3.png b/docs/5.0/img/metering/metering-3.png
new file mode 100644
index 00000000000..696eefab1fb
Binary files /dev/null and b/docs/5.0/img/metering/metering-3.png differ
diff --git a/docs/5.0/img/metering/metering-4.png b/docs/5.0/img/metering/metering-4.png
new file mode 100644
index 00000000000..9acbce58235
Binary files /dev/null and b/docs/5.0/img/metering/metering-4.png differ
diff --git a/docs/5.0/img/postgresql.webp b/docs/5.0/img/postgresql.webp
new file mode 100644
index 00000000000..5df4a51d09e
Binary files /dev/null and b/docs/5.0/img/postgresql.webp differ
diff --git a/docs/5.0/img/sealos-app-store-1.jpg b/docs/5.0/img/sealos-app-store-1.jpg
new file mode 100644
index 00000000000..9f4d148e453
Binary files /dev/null and b/docs/5.0/img/sealos-app-store-1.jpg differ
diff --git a/docs/5.0/img/sealos-app-store-2.jpg b/docs/5.0/img/sealos-app-store-2.jpg
new file mode 100644
index 00000000000..df5aeabc8bf
Binary files /dev/null and b/docs/5.0/img/sealos-app-store-2.jpg differ
diff --git a/docs/5.0/img/sealos-desktop-zh.webp b/docs/5.0/img/sealos-desktop-zh.webp
new file mode 100644
index 00000000000..bead9952834
Binary files /dev/null and b/docs/5.0/img/sealos-desktop-zh.webp differ
diff --git a/docs/5.0/img/sealos-desktop.webp b/docs/5.0/img/sealos-desktop.webp
new file mode 100644
index 00000000000..a35a02d3634
Binary files /dev/null and b/docs/5.0/img/sealos-desktop.webp differ
diff --git a/docs/5.0/img/sealos-left-dark.png b/docs/5.0/img/sealos-left-dark.png
new file mode 100644
index 00000000000..4893d1b4bd2
Binary files /dev/null and b/docs/5.0/img/sealos-left-dark.png differ
diff --git a/docs/5.0/img/sealos-left.png b/docs/5.0/img/sealos-left.png
new file mode 100644
index 00000000000..91e67b39b3f
Binary files /dev/null and b/docs/5.0/img/sealos-left.png differ
diff --git a/docs/5.0/img/sealos-qr-code-300.png b/docs/5.0/img/sealos-qr-code-300.png
new file mode 100644
index 00000000000..01c74221563
Binary files /dev/null and b/docs/5.0/img/sealos-qr-code-300.png differ
diff --git a/docs/5.0/img/sealos-qr-code.jpg b/docs/5.0/img/sealos-qr-code.jpg
new file mode 100644
index 00000000000..a93bda5e93e
Binary files /dev/null and b/docs/5.0/img/sealos-qr-code.jpg differ
diff --git a/docs/5.0/img/templates-zh.jpg b/docs/5.0/img/templates-zh.jpg
new file mode 100644
index 00000000000..a4de6a217cf
Binary files /dev/null and b/docs/5.0/img/templates-zh.jpg differ
diff --git a/docs/5.0/img/templates.jpg b/docs/5.0/img/templates.jpg
new file mode 100644
index 00000000000..62bcc2efbd8
Binary files /dev/null and b/docs/5.0/img/templates.jpg differ
diff --git a/docs/5.0/img/terminal-zh.webp b/docs/5.0/img/terminal-zh.webp
new file mode 100644
index 00000000000..8f3e086e9fe
Binary files /dev/null and b/docs/5.0/img/terminal-zh.webp differ
diff --git a/docs/5.0/img/terminal.webp b/docs/5.0/img/terminal.webp
new file mode 100644
index 00000000000..60954399596
Binary files /dev/null and b/docs/5.0/img/terminal.webp differ
diff --git a/docs/5.0/sidebar.json b/docs/5.0/sidebar.json
new file mode 100644
index 00000000000..f77e8eb293d
--- /dev/null
+++ b/docs/5.0/sidebar.json
@@ -0,0 +1,244 @@
+[
+ "Intro",
+ {
+ "type": "category",
+ "label": "快速开始",
+ "link": {
+ "type": "generated-index"
+ },
+ "collapsible": true,
+ "collapsed": false,
+ "items": [
+ {
+ "type": "autogenerated",
+ "dirName": "quick-start"
+ }
+ ]
+ },
+ {
+ "type": "category",
+ "label": "用户文档",
+ "link": {
+ "type": "generated-index"
+ },
+ "collapsible": true,
+ "collapsed": false,
+ "items": [
+ {
+ "type": "category",
+ "label": "系统功能",
+ "link": {
+ "type": "generated-index"
+ },
+ "collapsible": true,
+ "collapsed": true,
+ "items": [
+ {
+ "type": "autogenerated",
+ "dirName": "user-doc/system-function"
+ }
+ ]
+ },
+ {
+ "type": "category",
+ "label": "应用",
+ "link": {
+ "type": "generated-index"
+ },
+ "collapsible": true,
+ "collapsed": true,
+ "items": [
+ {
+ "type": "autogenerated",
+ "dirName": "user-doc/application"
+ }
+ ]
+ },
+ {
+ "type": "category",
+ "label": "数据库",
+ "link": {
+ "type": "generated-index"
+ },
+ "collapsible": true,
+ "collapsed": true,
+ "items": [
+ {
+ "type": "autogenerated",
+ "dirName": "user-doc/database"
+ }
+ ]
+ },
+ {
+ "type": "category",
+ "label": "对象存储",
+ "link": {
+ "type": "generated-index"
+ },
+ "collapsible": true,
+ "collapsed": true,
+ "items": [
+ {
+ "type": "autogenerated",
+ "dirName": "user-doc/objectstorage"
+ }
+ ]
+ },
+ {
+ "type": "category",
+ "label": "定时任务",
+ "link": {
+ "type": "generated-index"
+ },
+ "collapsible": true,
+ "collapsed": true,
+ "items": [
+ {
+ "type": "autogenerated",
+ "dirName": "user-doc/cronjob"
+ }
+ ]
+ },
+ {
+ "type": "category",
+ "label": "管理与配置",
+ "link": {
+ "type": "generated-index"
+ },
+ "collapsible": true,
+ "collapsed": true,
+ "items": [
+ {
+ "type": "autogenerated",
+ "dirName": "user-doc/control"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "category",
+ "label": "开发者指南",
+ "link": {
+ "type": "generated-index"
+ },
+ "collapsible": true,
+ "collapsed": false,
+ "items": [
+ {
+ "type": "category",
+ "label": "系统设计",
+ "link": {
+ "type": "generated-index"
+ },
+ "collapsible": true,
+ "collapsed": true,
+ "items": [
+ {
+ "type": "autogenerated",
+ "dirName": "developer-guide/system-design"
+ }
+ ]
+ },
+ {
+ "type": "category",
+ "label": "私有化部署",
+ "link": {
+ "type": "generated-index"
+ },
+ "items": [
+ {
+ "type": "category",
+ "label": "部署Sealos",
+ "link": {
+ "type": "generated-index"
+ },
+ "items": [
+ {
+ "type": "autogenerated",
+ "dirName": "developer-guide/self-hosting/sealos"
+ }
+ ]
+ },
+ {
+ "type": "category",
+ "label": "K8s 集群生命周期管理",
+ "link": {
+ "type": "generated-index"
+ },
+ "items": [
+ {
+ "type": "category",
+ "label": "快速开始",
+ "link": {
+ "type": "generated-index"
+ },
+ "items": [
+ {
+ "type": "autogenerated",
+ "dirName": "developer-guide/self-hosting/lifecycle-management/quick-start"
+ }
+ ]
+ },
+ {
+ "type": "category",
+ "label": "操作说明",
+ "link": {
+ "type": "generated-index"
+ },
+ "items": [
+ {
+ "type": "autogenerated",
+ "dirName": "developer-guide/self-hosting/lifecycle-management/operations"
+ }
+ ]
+ },
+ {
+ "type": "category",
+ "label": "进阶指南",
+ "link": {
+ "type": "generated-index"
+ },
+ "items": [
+ {
+ "type": "autogenerated",
+ "dirName": "developer-guide/self-hosting/lifecycle-management/advanced-guide"
+ }
+ ]
+ },
+ {
+ "type": "category",
+ "label": "参考",
+ "link": {
+ "type": "generated-index"
+ },
+ "items": [
+ {
+ "type": "autogenerated",
+ "dirName": "developer-guide/self-hosting/lifecycle-management/reference"
+ }
+ ]
+ },
+ "developer-guide/self-hosting/lifecycle-management/QA"
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "category",
+ "label": "资源",
+ "link": {
+ "type": "generated-index"
+ },
+ "collapsible": true,
+ "collapsed": false,
+ "items": [
+ {
+ "type": "autogenerated",
+ "dirName": "resources"
+ }
+ ]
+ }
+]
\ No newline at end of file
diff --git a/docs/website/docusaurus.config.js b/docs/website/docusaurus.config.js
index a2be223f078..666ac6d0548 100644
--- a/docs/website/docusaurus.config.js
+++ b/docs/website/docusaurus.config.js
@@ -32,12 +32,12 @@ const config = {
/** @type {import('@docusaurus/preset-classic').Options} */
({
docs: {
- path: "../4.0/docs",
+ path: "../5.0/docs",
sidebarPath: require.resolve("./sidebars.js"),
// Please change this to your repo.
// Remove this to remove the "edit this page" links.
editUrl: ({ versionDocsDirPath, docPath, locale }) =>
- "https://github.com/labring/sealos/tree/main/docs/4.0/" +
+ "https://github.com/labring/sealos/tree/main/docs/5.0/" +
(locale === "en" ? `${versionDocsDirPath}` : `i18n/${locale}`) +
`/${docPath}`,
editLocalizedFiles: false,
diff --git a/docs/website/package.json b/docs/website/package.json
index 821e4a51786..795c36a658b 100644
--- a/docs/website/package.json
+++ b/docs/website/package.json
@@ -3,7 +3,7 @@
"version": "0.0.0",
"private": true,
"scripts": {
- "sync-zh-files": "mkdir -p i18n/zh-Hans/docusaurus-plugin-content-docs/current && cp -r ../4.0/i18n/zh-Hans/* i18n/zh-Hans/docusaurus-plugin-content-docs/current/ && cp ../4.0/i18n/zh-Hans/current.json i18n/zh-Hans/docusaurus-plugin-content-docs/current.json && cp ../4.0/code.json i18n/zh-Hans/code.json && mkdir -p i18n/zh-Hans/docusaurus-plugin-content-blog && cp -r ../blog/zh-Hans/* i18n/zh-Hans/docusaurus-plugin-content-blog/ && cp ../blog/zh-Hans/options.json i18n/zh-Hans/docusaurus-plugin-content-blog/options.json",
+ "sync-zh-files": "mkdir -p i18n/zh-Hans/docusaurus-plugin-content-docs/current && cp -r ../5.0/i18n/zh-Hans/* i18n/zh-Hans/docusaurus-plugin-content-docs/current/ && cp ../5.0/i18n/zh-Hans/current.json i18n/zh-Hans/docusaurus-plugin-content-docs/current.json && cp ../5.0/code.json i18n/zh-Hans/code.json && mkdir -p i18n/zh-Hans/docusaurus-plugin-content-blog && cp -r ../blog/zh-Hans/* i18n/zh-Hans/docusaurus-plugin-content-blog/ && cp ../blog/zh-Hans/options.json i18n/zh-Hans/docusaurus-plugin-content-blog/options.json",
"docusaurus": "docusaurus",
"start": "yarn sync-zh-files && tsc && docusaurus start",
"start-zh": "yarn write-translations-zh && tsc && docusaurus start --locale zh-Hans",
diff --git a/docs/website/sidebars.js b/docs/website/sidebars.js
index 1d66ee339a7..b92669e956a 100644
--- a/docs/website/sidebars.js
+++ b/docs/website/sidebars.js
@@ -9,7 +9,7 @@
Create as many sidebars as you want.
*/
-const sidebar = require('../4.0/sidebar.json')
+const sidebar = require('../5.0/sidebar.json')
// @ts-check