update docs(CN)

Signed-off-by: ChrisLiu <chrisliu1995@163.com>
This commit is contained in:
ChrisLiu 2022-11-24 18:25:52 +08:00
parent 2ffd0cc9ad
commit c3b4e66dc7
5 changed files with 27 additions and 13 deletions

BIN
docs/images/hot-update.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

View File

@ -1,4 +1,16 @@
首先部署带有sidecar容器的游戏服在游戏场景下sidecar容器可能是游戏服脚本、场景资源等需要热更的文件。使用GameServerSet作为游戏服负载pod更新策略选择原地升级
## 功能概述
在游戏场景下游戏服脚本、场景资源等属于热更文件时常以sidecar的形式部署在pod中。
在更新这些文件时,我们往往希望不影响主程序(游戏服引擎侧)的正常运行。
然而在原生Kubernetes集群更新pod中任意容器都会导致pod重建无法满足游戏热更场景。
OKG 提供的原地升级能力可以针对性定向更新pod中某一个容器不影响整个pod的生命周期。
如下图所示蓝色部分为热更部分橘色部分为非热更部分。我们将Game Script容器从版本V1更新至版本V2后整个pod不会重建橘色部分不受到任何影响Game Engine正常平稳运行
![hot-update.png](../../images/hot-update.png)
## 使用示例
部署带有sidecar容器的游戏服使用GameServerSet作为游戏服负载pod更新策略选择原地升级
```bash
cat <<EOF | kubectl apply -f -

View File

@ -1,24 +1,28 @@
## 功能概述
OKG 提供了原地升级([热更新](../快速开始/游戏服热更新.md))、批量更新、按优先级更新等多种更新策略,满足在实际生产场景下,对于用户把控更新范围、更新节奏的需求。
OKG 提供了原地升级([热更新](../快速开始/游戏服热更新.md))、批量更新、按优先级更新等多种更新策略。
用户可设置GameServer的更新优先级配合partition参数实现在实际生产场景下把控更新范围、更新顺序、更新节奏。
如下图所示提高序号为1的游戏服优先级同时设置partition为2则会优先更新1号游戏服随后更改partition为0则会再更新其余游戏服。详情可参考使用示例。
![update-priority.png](../../images/update-priority.png)
## 使用示例
本示例中将一组游戏服分成两批次更新,模拟灰度更新,逐步验证的场景。
此时GameServerSet下有4个游戏服副本:
此时GameServerSet下有3个游戏服副本:
```shell
kubectl get gs
NAME STATE OPSSTATE DP UP
gs-demo-0 Ready None 0 0
gs-demo-1 Ready None 0 0
gs-demo-2 Ready None 0 0
gs-demo-3 Ready None 0 0
```
设置更新优先级将3号游戏服优先级调大
```shell
kubectl edit gs gs-demo-3
kubectl edit gs gs-demo-1
...
spec:
@ -39,7 +43,7 @@ kubectl edit gss gs-demo
updateStrategy:
rollingUpdate:
maxUnavailable: 5
partition: 3 # 设置保留的游戏服数目这里只更新一个所以要保留余下3
partition: 2 # 设置保留的游戏服数目这里只更新一个所以要保留余下2
podUpdatePolicy: InPlaceIfPossible
...
@ -50,9 +54,8 @@ kubectl edit gss gs-demo
kubectl get gs
NAME STATE OPSSTATE DP UP
gs-demo-0 Ready None 0 0
gs-demo-1 Ready None 0 0
gs-demo-1 Updating None 0 10
gs-demo-2 Ready None 0 0
gs-demo-3 Updating None 0 10
# 一段时间过后
@ -61,9 +64,8 @@ gs-demo-3 Updating None 0 10
kubectl get gs
NAME STATE OPSSTATE DP UP
gs-demo-0 Ready None 0 0
gs-demo-1 Ready None 0 0
gs-demo-1 Ready None 0 10
gs-demo-2 Ready None 0 0
gs-demo-3 Ready None 0 10
```
待gs-demo-3验证通过后更新其余游戏服

View File

@ -56,9 +56,9 @@ OpenKruiseGameOKG具有如下核心能力
### 进行下一步
* 查看快速开始安装并体验OpenKruiseGame。
* 查看开发指南为OpenKruiseGame(OKG)提交代码。
* 提交<a href="docs/中文/开发者手册/如何贡献代码.md">Issue</a>给OpenKruiseGame提建议或者讨论游戏云原生化的最佳实践。
* 查看[快速开始](./快速开始)安装并体验OpenKruiseGame。
* 查看[开发指南](./开发者手册/如何贡献代码.md)为OpenKruiseGame(OKG)提交代码。
* 提交[Issue](https://github.com/openkruise/kruise-game/issues)给OpenKruiseGame提建议或者讨论游戏云原生化的最佳实践。
* 加入钉钉群44862615在线和OpenKruiseGame(OKG)的核心贡献者讨论。
* 发送E-mail联系我们。邮箱地址zhongwei.lzw@alibaba-inc.com。