diff --git "a/product/\350\256\241\347\256\227\344\270\216\347\275\221\347\273\234/\345\256\271\345\231\250\346\234\215\345\212\241/\346\234\200\344\275\263\345\256\236\350\267\265/\351\233\206\347\276\244\350\277\201\347\247\273/\344\275\277\347\224\250Velero\350\267\250\344\272\221\345\271\263\345\217\260\350\277\201\347\247\273\351\233\206\347\276\244\350\265\204\346\272\220\345\210\260TKE.md" "b/product/\350\256\241\347\256\227\344\270\216\347\275\221\347\273\234/\345\256\271\345\231\250\346\234\215\345\212\241/\346\234\200\344\275\263\345\256\236\350\267\265/\351\233\206\347\276\244\350\277\201\347\247\273/\344\275\277\347\224\250Velero\350\267\250\344\272\221\345\271\263\345\217\260\350\277\201\347\247\273\351\233\206\347\276\244\350\265\204\346\272\220\345\210\260TKE.md" index f4535ac72bd2..aeeb890915fa 100644 --- "a/product/\350\256\241\347\256\227\344\270\216\347\275\221\347\273\234/\345\256\271\345\231\250\346\234\215\345\212\241/\346\234\200\344\275\263\345\256\236\350\267\265/\351\233\206\347\276\244\350\277\201\347\247\273/\344\275\277\347\224\250Velero\350\267\250\344\272\221\345\271\263\345\217\260\350\277\201\347\247\273\351\233\206\347\276\244\350\265\204\346\272\220\345\210\260TKE.md" +++ "b/product/\350\256\241\347\256\227\344\270\216\347\275\221\347\273\234/\345\256\271\345\231\250\346\234\215\345\212\241/\346\234\200\344\275\263\345\256\236\350\267\265/\351\233\206\347\276\244\350\277\201\347\247\273/\344\275\277\347\224\250Velero\350\267\250\344\272\221\345\271\263\345\217\260\350\277\201\347\247\273\351\233\206\347\276\244\350\265\204\346\272\220\345\210\260TKE.md" @@ -63,7 +63,7 @@ xxx-StorageClass xxx-Provider Delete Immediate true ``` 2. 修改 [with-pv.yaml](https://github.com/vmware-tanzu/velero/blob/v1.5.1/examples/nginx-app/with-pv.yaml) 文件中的 PVC 资源清单,使用集群中存储类名为 “xxx-StorageClass” 的存储类来动态创建。示例如下: -::: yaml +```yaml ... --- kind: PersistentVolumeClaim @@ -82,9 +82,11 @@ spec: requests: storage: 20Gi # 由于该云平台限制存储最小为20Gi,本示例需要同步修改此值为20Gi ... -::: +``` + 3. 执行以下命令,应用示例中的 with-pv.yaml,创建如下的集群资源(nginx-example 命名空间)。示例如下: + ```bash $ kubectl apply -f with-pv.yaml namespace/nginx-example created @@ -92,9 +94,10 @@ persistentvolumeclaim/nginx-logs created deployment.apps/nginx-deployment created service/my-nginx created ``` + 4. 创建的 PVC “nginx-logs” 已挂载至 Nginx 容器的 `/var/log/nginx` 目录,作为服务的日志存储。本文示例通过在浏览器测试访问 Nginx 服务,为挂载的 PVC 生产日志数据,以便后续还原后进行数据比对。示例如下: -::: bash +``` bash $ kubectl exec -it nginx-deployment-5ccc99bffb-6nm5w bash -n nginx-example kubectl exec [POD] [COMMAND] is DEPRECATED and will be removed in a future version. Use kubectl kubectl exec [POD] -- [COMMAND] Defaulting container name to nginx. @@ -111,7 +114,7 @@ $ head -n 2 /var/log/nginx/access.log $ head -n 2 /var/log/nginx/error.log 2020/12/29 03:02:32 [error] 6#6: *597 open() "/usr/share/nginx/html/favicon.ico" failed (2: No such file or directory), client: 192.168.0.73, server: localhost, request: "GET /favicon.ico HTTP/1.1", host: "47.242.233.22", referrer: "http://47.242.233.22/?spm=5176.2020520152.0.0.22d016ddHXZumX" 2020/12/29 03:07:21 [error] 6#6: *1172 open() "/usr/share/nginx/html/0bef" failed (2: No such file or directory), client: 192.168.0.73, server: localhost, request: "GET /0bef HTTP/1.0" -::: +``` @@ -134,7 +137,7 @@ kubectl api-resources --verbs=list -o name | xargs -n 1 kubectl get --show-kind ``` 2. 可以根据实际情况筛选出需要被迁移的资源清单。本文示例将直接从该云平台迁移 “nginx-example” 命名空间下 Nginx 工作负载相关的资源到容器服务 TKE,涉及资源如下所示: -::: bash +``` bash $ kubectl get all -n nginx-example NAME READY STATUS RESTARTS AGE pod/nginx-deployment-5ccc99bffb-tn2sh 2/2 Running 0 2d19h @@ -155,7 +158,7 @@ nginx-logs Bound d-j6ccrq4k1moziu1l6l5r 20Gi RWO xxx-Sto $ kubectl get pv NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE d-j6ccrq4k1moziu1l6l5r 20Gi RWO Delete Bound nginx-example/nginx-logs xxx-StorageClass 2d19h -::: +``` @@ -165,7 +168,7 @@ d-j6ccrq4k1moziu1l6l5r 20Gi RWO Delete Bound ngi 本文示例在 [with-pv.yaml](https://github.com/vmware-tanzu/velero/blob/v1.5.1/examples/nginx-app/with-pv.yaml) 中已配置“备份 Nginx 工作负载前将文件系统设置为只读,在备份后恢复读写”的 Hook 策略,YAML 文件如下所示: -::: yaml +``` yaml ... annotations: # 备份 Hook 策略的注解表示:在开始备份之前将 nginx 日志目录设置为只读模式,备份完成后恢复读写模式 @@ -195,7 +198,7 @@ d-j6ccrq4k1moziu1l6l5r 20Gi RWO Delete Bound ngi - mountPath: "/var/log/nginx" name: nginx-logs ... -::: +```