diff --git a/docs/zh/.DS_Store b/docs/zh/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..d871373970c6019a550d8dd46541b177aea26fc4
Binary files /dev/null and b/docs/zh/.DS_Store differ
diff --git a/docs/zh/docs/.DS_Store b/docs/zh/docs/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..6e98ee5836c5ce4ce973a3b9d11b54fb30222733
Binary files /dev/null and b/docs/zh/docs/.DS_Store differ
diff --git "a/docs/zh/docs/ClusterDeployment/K8s+iSulad\347\216\257\345\242\203\351\203\250\347\275\262.md" "b/docs/zh/docs/ClusterDeployment/K8s+iSulad\347\216\257\345\242\203\351\203\250\347\275\262.md"
new file mode 100644
index 0000000000000000000000000000000000000000..2eafc9cd7566181cc1fe14f9d4ee94b2e469648d
--- /dev/null
+++ "b/docs/zh/docs/ClusterDeployment/K8s+iSulad\347\216\257\345\242\203\351\203\250\347\275\262.md"
@@ -0,0 +1,386 @@
+# K8s+iSulad环境部署
+
+## 准备集群服务器
+
+需准备至少3台openEuler机器,建议在openEuler-22.03及以上版本运行。下表为示例搭建机器信息,仅供参考。
+
+| 主机名 | IP | 系统版本 | 角色 | 组件 |
+|-------|-------------|------------------------|----------|-----------|
+| lab1 | 197.xxx.xxx.xxx | openEuler 22.03 LTS SP3 | 控制节点 | iSulad/k8s |
+| lab2 | 197.xxx.xxx.xxx | openEuler 22.03 LTS SP3 | 工作节点1 | iSulad/k8s |
+| lab3 | 197.xxx.xxx.xxx | openEuler 22.03 LTS SP3 | 工作节点2 | iSulad/k8s |
+
+## 镜像/软件信息
+
+安装过程中需要用到的软件及镜像名称如下表,版本号为示例安装时用到的版本,仅供参考。
+
+| 软件 | 版本 |
+|------------------------------------|----------|
+| iSulad | 2.0.17-2 |
+| kubernetes-client | 1.20.2-9 |
+| kubernetes-kubeadm | 1.20.2-9 |
+| kubernetes-kubelet | 1.20.2-9 |
+
+| 镜像 | 版本 |
+|------------------------------------|----------|
+| k8s.gcr.io/kube-proxy | v1.20.2 |
+| k8s.gcr.io/kube-apiserver | v1.20.2 |
+| k8s.gcr.io/kube-controller-manager | v1.20.2 |
+| k8s.gcr.io/kube-scheduler | v1.20.2 |
+| k8s.gcr.io/etcd | 3.4.13-0 |
+| k8s.gcr.io/coredns | 1.7.0 |
+| k8s.gcr.io/pause | 3.2 |
+| calico/node | v3.14.2 |
+| calico/pod2daemon-flexvol | v3.14.2 |
+| calico/cni | v3.14.2 |
+| calico/kube-controllers | v3.14.2 |
+
+> 如果在无外网环境中搭建,可以从以下链接提前下载对应的软件包、相关依赖软件包及镜像。
+ 软件包下载地址:[https://repo.openeuler.org/openEuler-22.03-LTS-SP3/](https://repo.openeuler.org/openEuler-22.03-LTS-SP3/)
+ 镜像下载地址:[https://developer.aliyun.com/mirror/](https://developer.aliyun.com/mirror/)
+
+## 修改host文件
+
+1. 修改主机名,以其中一台机器为例。
+
+ ```shell
+ # hostnamectl set-hostname lab1
+ # sudo -i
+ ```
+
+2. 配置主机名解析,编辑三台服务器的/etc/hosts文件。
+
+ ```shell
+ # vim /etc/hosts
+ ```
+
+3. 在hosts文件中添加以下内容(IP+主机名)。
+
+ ```text
+ 197.xxx.xxx.xxx lab1
+ 197.xxx.xxx.xxx lab2
+ 197.xxx.xxx.xxx lab3
+ ```
+
+## 环境准备
+
+1. 关闭防火墙。
+
+ ```shell
+ # systemctl stop firewalld
+ # systemctl disable firewalld
+ ```
+
+2. 禁用selinux。
+
+ ```shell
+ # setenforce 0
+ ```
+
+3. 关闭系统swap。
+
+ ```shell
+ # swapoff -a
+ # sed -ri 's/.*swap.*/#&/' /etc/fstab
+ ```
+
+4. 网络配置,开启相应的转发机制。
+
+ ```shell
+ # cat > /etc/sysctl.d/kubernetes.conf <**说明** : 以下所下载的镜像版本均为示例,具体版本号以上条命令返回结果为准,下同。
+
+ ```shell
+ # isula pull k8smx/kube-apiserver:v1.20.15
+ # isula pull k8smx/kube-controller-manager:v1.20.15
+ # isula pull k8smx/kube-scheduler:v1.20.15
+ # isula pull k8smx/kube-proxy:v1.20.15
+ # isula pull k8smx/pause:3.2
+ # isula pull k8smx/coredns:1.7.0
+ # isula pull k8smx/etcd:3.4.13-0
+ ```
+
+3. 修改已下载的镜像标签。
+
+ ```shell
+ # isula tag k8smx/kube-apiserver:v1.20.15 k8s.gcr.io/kube-apiserver:v1.20.15
+ # isula tag k8smx/kube-controller-manager:v1.20.15 k8s.gcr.io/kube-controller-manager:v1.20.15
+ # isula tag k8smx/kube-scheduler:v1.20.15 k8s.gcr.io/kube-scheduler:v1.20.15
+ # isula tag k8smx/kube-proxy:v1.20.15 k8s.gcr.io/kube-proxy:v1.20.15
+ # isula tag k8smx/pause:3.2 k8s.gcr.io/pause:3.2
+ # isula tag k8smx/coredns:1.7.0 k8s.gcr.io/coredns:1.7.0
+ # isula tag k8smx/etcd:3.4.13-0 k8s.gcr.io/etcd:3.4.13-0
+ ```
+
+4. 删除旧镜像。
+
+ ```shell
+ # isula rmi k8smx/kube-apiserver:v1.20.15
+ # isula rmi k8smx/kube-controller-manager:v1.20.15
+ # isula rmi k8smx/kube-scheduler:v1.20.15
+ # isula rmi k8smx/kube-proxy:v1.20.15
+ # isula rmi k8smx/pause:3.2
+ # isula rmi k8smx/coredns:1.7.0
+ # isula rmi k8smx/etcd:3.4.13-0
+ ```
+
+5. 查看已拉取的镜像。
+
+ ```shell
+ # isula images
+ ```
+
+## 安装crictl工具
+
+```shell
+# yum install -y cri-tools
+```
+
+## 初始化master节点
+
+执行如下命令初始化master节点:
+
+```shell
+# kubeadm init --kubernetes-version v1.20.2 --cri-socket=/var/run/isulad.sock --pod-network-cidr=[指定pod分配IP段]
+
+//以上参数的解释
+kubernetes-version 为当前安装的版本
+cri-socket 指定引擎为isulad
+pod-network-cidr 指定pod分配的ip段
+```
+
+根据系统提示输入如下命令:
+
+```shell
+# mkdir -p $HOME/.kube
+# sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
+# sudo chown $(id -u):$(id -g) $HOME/.kube/config
+```
+
+初始化成功后,复制最后两行内容,在node节点上执行刚刚复制的命令,将节点加入master集群,如未记录上述命令可通过如下命令生成:
+
+```shell
+# kubeadm token create --print-join-command
+```
+
+## node节点添加进集群
+
+粘贴master上初始化生成的kubeadm join ...命令,并在discovery前添加--cri-socket=/var/run/isulad.sock,执行如下命令:
+
+```shell
+# kubeadm join [IP地址] --token bgyis4.euwkjqb7jwuenwvs --cri-socket=/var/run/isulad.sock --discovery-token-ca-cert-hash sha256:3792f02e136042e2091b245ac71c1b9cdcb97990311f9300e91e1c339e1dfcf6
+```
+
+## 安装calico网络插件
+
+1. 拉取calico镜像。
+
+ 需要在master节点配置calico网络插件,同时需要在每个节点中提前拉取需要版本的镜像。
+
+ ```shell
+ isula pull calico/node:v3.14.2
+ isula pull calico/cni:v3.14.2
+ isula pull calico/kube-controllers:v3.14.2
+ isula pull calico/pod2daemon-flexvol:v3.14.2
+ ```
+
+2. 在master节点上获取配置文件。
+
+ ```shell
+ wget https://docs.projectcalico.org/v3.14/manifests/calico.yaml
+ ```
+
+3. 修改后创建pod。
+
+ ```shell
+ # kubectl apply -f calico.yaml
+ ```
+
+ - 如需删除使用如下命令:
+
+ ```shell
+ # kubectl delete -f calico.yaml
+ ```
+
+4. 查看pod信息。
+
+ ```shell
+ # kubectl get pod -A -o wide
+ ```
+
+## 查看master节点node信息
+
+使用如下命令可查看节点的详细信息:
+
+```shell
+# kubectl get nodes -o wide
+```
+
+若需要重置node节点,可使用如下命令:
+
+```shell
+# kubeadm reset
+```
diff --git "a/docs/zh/docs/ClusterDeployment/figures/1.\346\237\245\347\234\213\351\234\200\350\246\201\351\225\234\345\203\217.png" "b/docs/zh/docs/ClusterDeployment/figures/1.\346\237\245\347\234\213\351\234\200\350\246\201\351\225\234\345\203\217.png"
new file mode 100644
index 0000000000000000000000000000000000000000..74cdae5726cec83d5d74b0b8bd01694fd388e342
Binary files /dev/null and "b/docs/zh/docs/ClusterDeployment/figures/1.\346\237\245\347\234\213\351\234\200\350\246\201\351\225\234\345\203\217.png" differ
diff --git "a/docs/zh/docs/ClusterDeployment/figures/10.\350\207\252\345\256\232\344\271\211\351\241\271\347\233\256\345\220\215\347\247\260.jpg" "b/docs/zh/docs/ClusterDeployment/figures/10.\350\207\252\345\256\232\344\271\211\351\241\271\347\233\256\345\220\215\347\247\260.jpg"
new file mode 100644
index 0000000000000000000000000000000000000000..2062c62a6aae63e9700f6ceedf73daea0876eb44
Binary files /dev/null and "b/docs/zh/docs/ClusterDeployment/figures/10.\350\207\252\345\256\232\344\271\211\351\241\271\347\233\256\345\220\215\347\247\260.jpg" differ
diff --git "a/docs/zh/docs/ClusterDeployment/figures/11.\350\256\276\347\275\256-cicd-runner.png" "b/docs/zh/docs/ClusterDeployment/figures/11.\350\256\276\347\275\256-cicd-runner.png"
new file mode 100644
index 0000000000000000000000000000000000000000..838cf1b6625439e44c7d09162fb71edbe1eaf3d3
Binary files /dev/null and "b/docs/zh/docs/ClusterDeployment/figures/11.\350\256\276\347\275\256-cicd-runner.png" differ
diff --git "a/docs/zh/docs/ClusterDeployment/figures/12.\350\256\260\344\270\213runner\345\234\260\345\235\200\344\270\216\344\273\244\347\211\214.jpg" "b/docs/zh/docs/ClusterDeployment/figures/12.\350\256\260\344\270\213runner\345\234\260\345\235\200\344\270\216\344\273\244\347\211\214.jpg"
new file mode 100644
index 0000000000000000000000000000000000000000..d3aaaf9ff4b66e4b536bc0afaa33c121bc6b53f6
Binary files /dev/null and "b/docs/zh/docs/ClusterDeployment/figures/12.\350\256\260\344\270\213runner\345\234\260\345\235\200\344\270\216\344\273\244\347\211\214.jpg" differ
diff --git "a/docs/zh/docs/ClusterDeployment/figures/13.\346\237\245\347\234\213\350\257\201\344\271\246\351\205\215\347\275\256\346\226\207\344\273\266.png" "b/docs/zh/docs/ClusterDeployment/figures/13.\346\237\245\347\234\213\350\257\201\344\271\246\351\205\215\347\275\256\346\226\207\344\273\266.png"
new file mode 100644
index 0000000000000000000000000000000000000000..8e9ce44af5a01670add1b8b2f5a7223a8bd0f35d
Binary files /dev/null and "b/docs/zh/docs/ClusterDeployment/figures/13.\346\237\245\347\234\213\350\257\201\344\271\246\351\205\215\347\275\256\346\226\207\344\273\266.png" differ
diff --git "a/docs/zh/docs/ClusterDeployment/figures/14.\350\257\201\344\271\246\345\257\274\345\205\245\346\226\207\344\273\266.png" "b/docs/zh/docs/ClusterDeployment/figures/14.\350\257\201\344\271\246\345\257\274\345\205\245\346\226\207\344\273\266.png"
new file mode 100644
index 0000000000000000000000000000000000000000..2a1fdb24d6f5c1c9d44cbce08276289adc5c876c
Binary files /dev/null and "b/docs/zh/docs/ClusterDeployment/figures/14.\350\257\201\344\271\246\345\257\274\345\205\245\346\226\207\344\273\266.png" differ
diff --git "a/docs/zh/docs/ClusterDeployment/figures/15.\346\263\250\345\206\214gitlab-runner.jpg" "b/docs/zh/docs/ClusterDeployment/figures/15.\346\263\250\345\206\214gitlab-runner.jpg"
new file mode 100644
index 0000000000000000000000000000000000000000..896f13bdc6411b719283f30d9973973950f27a1c
Binary files /dev/null and "b/docs/zh/docs/ClusterDeployment/figures/15.\346\263\250\345\206\214gitlab-runner.jpg" differ
diff --git "a/docs/zh/docs/ClusterDeployment/figures/16.web\347\253\257\345\267\262\345\212\240\345\205\245_LI.jpg" "b/docs/zh/docs/ClusterDeployment/figures/16.web\347\253\257\345\267\262\345\212\240\345\205\245_LI.jpg"
new file mode 100644
index 0000000000000000000000000000000000000000..fd8ae15ef7bce7120c7ba24b6240b33dbcf610b8
Binary files /dev/null and "b/docs/zh/docs/ClusterDeployment/figures/16.web\347\253\257\345\267\262\345\212\240\345\205\245_LI.jpg" differ
diff --git a/docs/zh/docs/ClusterDeployment/figures/17.png b/docs/zh/docs/ClusterDeployment/figures/17.png
new file mode 100644
index 0000000000000000000000000000000000000000..86f90a67185f532b362f4710ce8f7615cf40c9e1
Binary files /dev/null and b/docs/zh/docs/ClusterDeployment/figures/17.png differ
diff --git "a/docs/zh/docs/ClusterDeployment/figures/18.dns\351\205\215\347\275\256.png" "b/docs/zh/docs/ClusterDeployment/figures/18.dns\351\205\215\347\275\256.png"
new file mode 100644
index 0000000000000000000000000000000000000000..46b85396db34577b67679da759b6160ee707dec5
Binary files /dev/null and "b/docs/zh/docs/ClusterDeployment/figures/18.dns\351\205\215\347\275\256.png" differ
diff --git "a/docs/zh/docs/ClusterDeployment/figures/19.CICD\347\225\214\351\235\242.png" "b/docs/zh/docs/ClusterDeployment/figures/19.CICD\347\225\214\351\235\242.png"
new file mode 100644
index 0000000000000000000000000000000000000000..f8193e005253eb4a6bd036ec8afdf6566f9fd6d2
Binary files /dev/null and "b/docs/zh/docs/ClusterDeployment/figures/19.CICD\347\225\214\351\235\242.png" differ
diff --git "a/docs/zh/docs/ClusterDeployment/figures/2.calico\351\205\215\347\275\256.png" "b/docs/zh/docs/ClusterDeployment/figures/2.calico\351\205\215\347\275\256.png"
new file mode 100644
index 0000000000000000000000000000000000000000..d656f86d8ce5e110cf240a58e58b05b42aba8c15
Binary files /dev/null and "b/docs/zh/docs/ClusterDeployment/figures/2.calico\351\205\215\347\275\256.png" differ
diff --git "a/docs/zh/docs/ClusterDeployment/figures/20.yaml\346\226\207\344\273\266.png" "b/docs/zh/docs/ClusterDeployment/figures/20.yaml\346\226\207\344\273\266.png"
new file mode 100644
index 0000000000000000000000000000000000000000..9e7ec858abc2da72c7815a483f3011bf1225ec0f
Binary files /dev/null and "b/docs/zh/docs/ClusterDeployment/figures/20.yaml\346\226\207\344\273\266.png" differ
diff --git "a/docs/zh/docs/ClusterDeployment/figures/21.\346\265\201\346\260\264\347\272\277\347\212\266\346\200\201.png" "b/docs/zh/docs/ClusterDeployment/figures/21.\346\265\201\346\260\264\347\272\277\347\212\266\346\200\201.png"
new file mode 100644
index 0000000000000000000000000000000000000000..fff7063f17fd203390302a6245a8ce4a16cf428e
Binary files /dev/null and "b/docs/zh/docs/ClusterDeployment/figures/21.\346\265\201\346\260\264\347\272\277\347\212\266\346\200\201.png" differ
diff --git a/docs/zh/docs/ClusterDeployment/figures/3.png b/docs/zh/docs/ClusterDeployment/figures/3.png
new file mode 100644
index 0000000000000000000000000000000000000000..7394b5f21821ce8d352c2f935c3ea3e490dc0519
Binary files /dev/null and b/docs/zh/docs/ClusterDeployment/figures/3.png differ
diff --git "a/docs/zh/docs/ClusterDeployment/figures/4.gitlab\347\275\221\351\241\265\345\205\245\345\217\243.jpg" "b/docs/zh/docs/ClusterDeployment/figures/4.gitlab\347\275\221\351\241\265\345\205\245\345\217\243.jpg"
new file mode 100644
index 0000000000000000000000000000000000000000..d3eb0d59d6dee5051470621a4969651668687789
Binary files /dev/null and "b/docs/zh/docs/ClusterDeployment/figures/4.gitlab\347\275\221\351\241\265\345\205\245\345\217\243.jpg" differ
diff --git "a/docs/zh/docs/ClusterDeployment/figures/5.\346\237\245\350\257\242\345\257\206\347\240\201.jpg" "b/docs/zh/docs/ClusterDeployment/figures/5.\346\237\245\350\257\242\345\257\206\347\240\201.jpg"
new file mode 100644
index 0000000000000000000000000000000000000000..2e3902815108e9e91a07c382a4aae090b7cc6fe9
Binary files /dev/null and "b/docs/zh/docs/ClusterDeployment/figures/5.\346\237\245\350\257\242\345\257\206\347\240\201.jpg" differ
diff --git "a/docs/zh/docs/ClusterDeployment/figures/6.\347\231\273\345\275\225\345\220\216\351\241\265\351\235\242.png" "b/docs/zh/docs/ClusterDeployment/figures/6.\347\231\273\345\275\225\345\220\216\351\241\265\351\235\242.png"
new file mode 100644
index 0000000000000000000000000000000000000000..5f4d2c2a9a8bf337263028e859e49499155920b0
Binary files /dev/null and "b/docs/zh/docs/ClusterDeployment/figures/6.\347\231\273\345\275\225\345\220\216\351\241\265\351\235\242.png" differ
diff --git "a/docs/zh/docs/ClusterDeployment/figures/7.\351\225\234\345\203\217.png" "b/docs/zh/docs/ClusterDeployment/figures/7.\351\225\234\345\203\217.png"
new file mode 100644
index 0000000000000000000000000000000000000000..26c811ae616d2fe86e7b8b75c78ef88aff83616b
Binary files /dev/null and "b/docs/zh/docs/ClusterDeployment/figures/7.\351\225\234\345\203\217.png" differ
diff --git "a/docs/zh/docs/ClusterDeployment/figures/8.\346\226\260\345\273\272\351\241\271\347\233\256.png" "b/docs/zh/docs/ClusterDeployment/figures/8.\346\226\260\345\273\272\351\241\271\347\233\256.png"
new file mode 100644
index 0000000000000000000000000000000000000000..0c56662e6bdedcc78dea32b6e2afada466193096
Binary files /dev/null and "b/docs/zh/docs/ClusterDeployment/figures/8.\346\226\260\345\273\272\351\241\271\347\233\256.png" differ
diff --git "a/docs/zh/docs/ClusterDeployment/figures/9.\345\210\233\345\273\272\347\251\272\347\231\275\351\241\271\347\233\256.png" "b/docs/zh/docs/ClusterDeployment/figures/9.\345\210\233\345\273\272\347\251\272\347\231\275\351\241\271\347\233\256.png"
new file mode 100644
index 0000000000000000000000000000000000000000..117da11ee289d88b51539e027606cc9da526936a
Binary files /dev/null and "b/docs/zh/docs/ClusterDeployment/figures/9.\345\210\233\345\273\272\347\251\272\347\231\275\351\241\271\347\233\256.png" differ
diff --git "a/docs/zh/docs/ClusterDeployment/gitlab-runner\351\203\250\347\275\262.md" "b/docs/zh/docs/ClusterDeployment/gitlab-runner\351\203\250\347\275\262.md"
new file mode 100644
index 0000000000000000000000000000000000000000..edd24d546778c263ebe823eec227f44f831f032d
--- /dev/null
+++ "b/docs/zh/docs/ClusterDeployment/gitlab-runner\351\203\250\347\275\262.md"
@@ -0,0 +1,194 @@
+# gitlab runner部署及测试
+
+## 镜像/软件信息
+
+安装过程中需要用到的镜像名称如下表,版本号为示例安装时用到的版本,仅供参考。
+
+| 镜像 | 版本 |
+|------------------------------------|----------|
+| gitlab/gitlab-runner | alpine-v14.4.0 |
+| gitlab/gitlab-runner-helper | x86_64-54944146 |
+
+> 如果在无外网环境中搭建,可以从下方链接提前下载对应的镜像。
+ 镜像下载地址:dockerhub官网
+
+## 使用gitlab-runner.yaml启动runner容器
+
+配置gitlab-runner.yaml文件,修改文件中的镜像名,以下为yaml文件的示例参考,请根据实际搭建进行修改。
+
+```sh
+vim gitlab-runner.yaml
+```
+
+```conf
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: gitlab-runner
+ namespace: default
+spec:
+ replicas: 1
+ selector:
+ matchLabels:
+ name: gitlab-runner
+ template:
+ metadata:
+ labels:
+ name: gitlab-runner
+ spec:
+ containers:
+ - args:
+ - run
+ image: gitlab/gitlab-runner:alpine-v14.4.0
+ imagePullPolicy: IfNotPresent
+ name: gitlab-runner
+ volumeMounts:
+ - mountPath: /etc/gitlab-runner
+ name: config
+ readOnly: false
+ - mountPath: /etc/ssl/certs
+ name: cacerts
+ readOnly: true
+ restartPolicy: Always
+ volumes:
+ - hostPath:
+ path: /etc/gitlab-runner
+ name: config
+ - hostPath:
+ path: /etc/ssl/key
+ name: cacerts
+
+```
+
+启动容器:
+
+```sh
+# kubectl apply -f gitlab-runner.yaml
+# kubectl get pod -A -o wide
+```
+
+
+
+## 登录gitlab容器网页-用户证书认证
+
+1. 新建项目。
+
+ 
+
+2. 创建空白项目。
+
+ 
+
+3. 自定义项目名称。
+
+ 
+
+4. 设置--CI/CD--Runner--展开。
+
+ 
+
+5. 记录注册Runner的地址和令牌。
+
+ 
+
+6. 导入证书文件。
+
+ 在master节点上查看并生成证书文件,共三个文件admin.crt、admin.key、ca.crt。
+
+ - 查看证书信息
+
+ ```sh
+ # cat /etc/kubernetes/admin.conf
+ ```
+
+ 
+
+ - 加密生成admin.crt
+
+ ```sh
+ # echo “${client-certificate-data}” | base64 -d > admin.crt
+ ```
+
+ - 加密生成admin.key
+
+ ```sh
+ # echo “${client-key-data}” | base64 -d > admin.key
+ ```
+
+ - 在manager节点上获取ca的证书
+
+ ```sh
+ # cp /etc/kubernetes/pki/ca.crt ./
+ ```
+
+7. 在runner运行的节点处将三个证书文件导入gitlab-runner容器。
+
+ >**说明** :导入容器需查看gitlab-runner运行在哪个节点上,将三个证书文件拷贝至该节点,然后使用isula cp命令导入。
+
+ ```sh
+ # isula cp admin.crt [容器id]:存放位置
+ # isula cp admin.key [容器id]:存放位置
+ # isula cp ca.crt [容器id]:存放位置
+ ```
+
+ 注:isula cp 命令只能一次拷贝一个文件
+
+ 
+
+## 注册gitlab-runner
+
+进入到runner的容器内进行注册;目前采用交互式注册,注册信息在gitlab上获得,当前配置的 runner服务于项目组,此信息的界面在gitlab-\>项目组(group)-\>设置-\>CI/CD-\>runner中查看。
+
+
+
+
+
+将准备好的gitlab-runner-helper镜像提前上传至私有镜像仓,进入gitlab-runner容器中,修改配置文件。
+
+```sh
+# cd /etc/gitlab-runner
+# mkdir kubessl
+# cp /home/admin.crt /etc/gitlab-runner/kubessl
+# cp /home/ca.crt /etc/gitlab-runner/kubessl
+# cp /home/admin.key /etc/gitlab-runner/kubessl
+# vim /etc/gitlab-runner/config.toml
+```
+
+
+
+## 在manager节点进行如下操作添加gitlab容器的dns记录
+
+1. 查看gitlab容器的ip地址。
+
+ ```sh
+ # kubectl get pods –Aowide
+ ```
+
+2. 添加gitlabip地址到k8s dns配置文件。
+
+ ```sh
+ # kubectl edit configmaps coredns -n kube-system
+ ```
+
+ 
+
+3. 重启coredns服务。
+
+ ```sh
+ # kubectl scale deployment coredns -n kube-system --replicas=0
+ # kubectl scale deployment coredns -n kube-system --replicas=2
+ ```
+
+## gitlab运行测试
+
+返回gitlab的web界面,选择CI/CD--编辑器--创建CI/CD流水线。
+
+
+
+- 编译yaml文件如下:
+
+
+
+- 流水线-查看状态。
+
+
diff --git "a/docs/zh/docs/ClusterDeployment/gitlab\351\203\250\347\275\262.md" "b/docs/zh/docs/ClusterDeployment/gitlab\351\203\250\347\275\262.md"
new file mode 100644
index 0000000000000000000000000000000000000000..0c3de816a1f96152fe41ca43f45a714df8811c1a
--- /dev/null
+++ "b/docs/zh/docs/ClusterDeployment/gitlab\351\203\250\347\275\262.md"
@@ -0,0 +1,313 @@
+# gitlab部署
+
+## 文档说明
+
+gitlab部署 是场景一(基于gitlab-ci从“0”开始构建欧拉原生开发CICD部署)所需步骤,场景二(欧拉原生开发执行机集群被gitlab-ci纳管)可跳过此步骤进入gitlab-runner部署。
+
+## 准备服务器
+
+需准备1台openEuler机器,建议在openEuler-22.03及以上版本运行。
+
+## 启动gitlab
+
+将需要的yaml文件拷贝至/home目录,并启动对应的pod。
+> **说明**:gitlab相关的yaml文件可从官网获得。
+
+以下为yaml文件的示例参考,请根据实际情况进行修改。
+
+gitlab-redis.yaml:
+
+```conf
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: redis
+ namespace: default
+ labels:
+ name: redis
+spec:
+ selector:
+ matchLabels:
+ name: redis
+ template:
+ metadata:
+ name: redis
+ labels:
+ name: redis
+ spec:
+ containers:
+ - name: redis
+ image: 10.35.111.11:5000/redis:latest
+ imagePullPolicy: IfNotPresent
+ ports:
+ - name: redis
+ containerPort: 6379
+ volumeMounts:
+ - mountPath: /var/lib/redis
+ name: data
+ livenessProbe:
+ exec:
+ command:
+ - redis-cli
+ - ping
+ initialDelaySeconds: 30
+ timeoutSeconds: 5
+ readinessProbe:
+ exec:
+ command:
+ - redis-cli
+ - ping
+ initialDelaySeconds: 5
+ timeoutSeconds: 1
+ volumes:
+ - name: data
+ emptyDir: {}
+
+---
+apiVersion: v1
+kind: Service
+metadata:
+ name: redis
+ namespace: default
+ labels:
+ name: redis
+spec:
+ ports:
+ - name: redis
+ port: 6379
+ targetPort: redis
+ selector:
+ name: redis
+
+```
+
+gitlab-postgresql.yaml:
+
+```conf
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: postgresql
+ namespace: default
+ labels:
+ name: postgresql
+spec:
+ selector:
+ matchLabels:
+ name: postgresql
+ template:
+ metadata:
+ name: postgresql
+ labels:
+ name: postgresql
+ spec:
+ containers:
+ - name: postgresql
+ image: 10.35.111.11:5000/postgres:13.6
+ imagePullPolicy: IfNotPresent
+ env:
+ - name: POSTGRES_HOST_AUTH_METHOD
+ value: trust
+ - name: DB_USER
+ value: gitlab
+ - name: DB_PASS
+ value: passw0rd
+ - name: DB_NAME
+ value: gitlab_production
+ - name: DB_EXTENSION
+ value: pg_trgm
+ ports:
+ - name: postgres
+ containerPort: 5432
+ volumeMounts:
+ - mountPath: /var/lib/postgresql
+ name: data
+ livenessProbe:
+ exec:
+ command:
+ - pg_isready
+ - -h
+ - localhost
+ - -U
+ - postgres
+ initialDelaySeconds: 30
+ timeoutSeconds: 5
+ readinessProbe:
+ exec:
+ command:
+ - pg_isready
+ - -h
+ - localhost
+ - -U
+ - postgres
+ initialDelaySeconds: 5
+ timeoutSeconds: 1
+ volumes:
+ - name: data
+ emptyDir: {}
+
+---
+apiVersion: v1
+kind: Service
+metadata:
+ name: postgresql
+ namespace: default
+ labels:
+ name: postgresql
+spec:
+ ports:
+ - name: postgres
+ port: 5432
+ targetPort: postgres
+ selector:
+ name: postgresql
+
+```
+
+gitlab.yaml:
+
+```conf
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: gitlab
+ namespace: default
+ labels:
+ name: gitlab
+spec:
+ selector:
+ matchLabels:
+ name: gitlab
+ template:
+ metadata:
+ name: gitlab
+ labels:
+ name: gitlab
+ spec:
+ containers:
+ - name: gitlab
+ image: 10.35.111.11:5000/yrzr/gitlab-ce-arm64v8:14.3.2-ce.0
+ imagePullPolicy: IfNotPresent
+ env:
+ - name: TZ
+ value: Asia/Shanghai
+ - name: GITLAB_TIMEZONE
+ value: Beijing
+ - name: GITLAB_SECRETS_DB_KEY_BASE
+ value: long-and-random-alpha-numeric-string
+ - name: GITLAB_SECRETS_SECRET_KEY_BASE
+ value: long-and-random-alpha-numeric-string
+ - name: GITLAB_SECRETS_OTP_KEY_BASE
+ value: long-and-random-alpha-numeric-string
+ - name: GITLAB_ROOT_PASSWORD
+ value: admin321
+ - name: GITLAB_ROOT_EMAIL
+ value: 517554016@qq.com
+ - name: GITLAB_HOST
+ value: git.qikqiak.com
+ - name: GITLAB_PORT
+ value: "80"
+ - name: GITLAB_SSH_PORT
+ value: "22"
+ - name: GITLAB_NOTIFY_ON_BROKEN_BUILDS
+ value: "true"
+ - name: GITLAB_NOTIFY_PUSHER
+ value: "false"
+ - name: GITLAB_BACKUP_SCHEDULE
+ value: daily
+ - name: GITLAB_BACKUP_TIME
+ value: 01:00
+ - name: DB_TYPE
+ value: postgres
+ - name: DB_HOST
+ value: postgresql
+ - name: DB_PORT
+ value: "5432"
+ - name: DB_USER
+ value: gitlab
+ - name: DB_PASS
+ value: passw0rd
+ - name: DB_NAME
+ value: gitlab_production
+ - name: REDIS_HOST
+ value: redis
+ - name: REDIS_PORT
+ value: "6379"
+ ports:
+ - name: http
+ containerPort: 80
+ - name: ssh
+ containerPort: 22
+ volumeMounts:
+ - mountPath: /home/git/data
+ name: data
+ livenessProbe:
+ httpGet:
+ path: /
+ port: 80
+ initialDelaySeconds: 180
+ timeoutSeconds: 5
+ readinessProbe:
+ httpGet:
+ path: /
+ port: 80
+ initialDelaySeconds: 5
+ timeoutSeconds: 1
+ volumes:
+ - name: data
+ emptyDir: {}
+
+---
+apiVersion: v1
+kind: Service
+metadata:
+ name: gitlab
+ namespace: default
+ labels:
+ name: gitlab
+spec:
+ ports:
+ - name: http
+ port: 80
+ targetPort: http
+ nodePort: 30852
+ - name: ssh
+ port: 22
+ nodePort: 32353
+ targetPort: ssh
+ selector:
+ name: gitlab
+ type: NodePort
+```
+
+启动相应的容器:
+
+```sh
+# kubectl apply -f gitlab-redis.yaml
+# kubectl apply -f gitlab-postgresql.yaml
+# kubectl apply -f gitlab.yaml
+```
+
+可通过命令查看gitlab pod是否搭建完成:
+
+```sh
+# kubectl get pod -A -owide
+```
+
+## 登录gitlab
+
+查看是否可以登录gitlab网页,网址为ip地址加设定的端口。
+
+
+用户名为root,默认密码需进入容器后查看密码文件。
+
+```sh
+# kubectl exec -it gitlab-lab -n default /bin/sh
+# cat /etc/gitlab/initial_root_password
+```
+
+
+
+- 登录后界面如图:
+
+
diff --git "a/docs/zh/docs/ClusterDeployment/iSulad+K8s\351\233\206\347\276\244\351\203\250\347\275\262\346\214\207\345\215\227.md" "b/docs/zh/docs/ClusterDeployment/iSulad+K8s\351\233\206\347\276\244\351\203\250\347\275\262\346\214\207\345\215\227.md"
new file mode 100644
index 0000000000000000000000000000000000000000..40512c575ca42e3520f2a18d807002b0dc5f7371
--- /dev/null
+++ "b/docs/zh/docs/ClusterDeployment/iSulad+K8s\351\233\206\347\276\244\351\203\250\347\275\262\346\214\207\345\215\227.md"
@@ -0,0 +1,21 @@
+# iSulad+K8s集群部署指南
+
+本文档介绍在 openEuler 操作系统上,通过 kubeadm 部署 K8S 集群,搭建 K8S+iSulad 的环境,并在该环境上部署 gitlab-runner,指导部署欧拉原生开发环境集群。
+
+本文档主要包括以下两个场景内容:
+
+场景一: 基于 gitlab-ci 从 “0” 开始构建欧拉原生开发CICD部署指导。
+场景二: 欧拉原生开发执行机集群被 gitlab-ci 纳管指导。
+
+场景一中需要额外部署gitlab,步骤操作顺序为:
+
+1. K8s+iSulad 环境部署。
+2. gitlab 部署。
+3. gitlab runner 部署和测试。
+
+场景二中已有 gitlab-ci 平台,无需额外部署,步骤操作顺序为:
+
+1. K8s+iSulad 环境部署。
+2. gitlab runner 部署和测试。
+
+> **说明**:本文档所有操作均使用root权限执行。
diff --git a/docs/zh/menu/index.md b/docs/zh/menu/index.md
index 2049a39f1fcd8b665ed8955d4cdfe1b62fe29e22..254e71d512868c4699c50c39d37f7a12f369c05e 100644
--- a/docs/zh/menu/index.md
+++ b/docs/zh/menu/index.md
@@ -281,6 +281,10 @@ headless: true
- [运行测试pod]({{< relref "./docs/Kubernetes/运行测试pod.md" >}})
- [基于containerd部署集群]({{< relref "./docs/Kubernetes/Kubernetes集群部署指南 - containerd.md" >}})
- [常见问题与解决方法]({{< relref "./docs/Kubernetes/常见问题与解决方法.md" >}})
+ - [iSulad+K8s集群部署指南]({{< relref "./docs/ClusterDeployment/iSulad+K8s集群部署指南.md" >}})
+ - [K8s+iSulad环境部署]({{< relref "./docs/ClusterDeployment/K8s+iSulad环境部署.md" >}})
+ - [gitlab部署]({{< relref "./docs/ClusterDeployment/gitlab部署.md" >}})
+ - [gitlab-runner部署]({{< relref "./docs/ClusterDeployment/gitlab-runner部署.md" >}})
- [云原生混合部署rubik用户指南]({{< relref "./docs/rubik/overview.md" >}})
- [安装与部署]({{< relref "./docs/rubik/安装与部署.md" >}})
- [http接口文档]({{< relref "./docs/rubik/http接口文档.md" >}})