update docs(CN)
Signed-off-by: ChrisLiu <chrisliu1995@163.com>
This commit is contained in:
parent
2ffd0cc9ad
commit
c3b4e66dc7
Binary file not shown.
|
After Width: | Height: | Size: 40 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 50 KiB |
|
|
@ -1,4 +1,16 @@
|
|||
首先,部署带有sidecar容器的游戏服,在游戏场景下,sidecar容器可能是游戏服脚本、场景资源等需要热更的文件。使用GameServerSet作为游戏服负载,pod更新策略选择原地升级:
|
||||
## 功能概述
|
||||
在游戏场景下,游戏服脚本、场景资源等属于热更文件,时常以sidecar的形式部署在pod中。
|
||||
在更新这些文件时,我们往往希望不影响主程序(游戏服引擎侧)的正常运行。
|
||||
然而,在原生Kubernetes集群,更新pod中任意容器都会导致pod重建,无法满足游戏热更场景。
|
||||
|
||||
OKG 提供的原地升级能力,可以针对性定向更新pod中某一个容器,不影响整个pod的生命周期。
|
||||
如下图所示,蓝色部分为热更部分,橘色部分为非热更部分。我们将Game Script容器从版本V1更新至版本V2后,整个pod不会重建,橘色部分不受到任何影响,Game Engine正常平稳运行
|
||||
|
||||

|
||||
|
||||
## 使用示例
|
||||
|
||||
部署带有sidecar容器的游戏服,使用GameServerSet作为游戏服负载,pod更新策略选择原地升级:
|
||||
|
||||
```bash
|
||||
cat <<EOF | kubectl apply -f -
|
||||
|
|
|
|||
|
|
@ -1,24 +1,28 @@
|
|||
## 功能概述
|
||||
|
||||
OKG 提供了原地升级([热更新](../快速开始/游戏服热更新.md))、批量更新、按优先级更新等多种更新策略,满足在实际生产场景下,对于用户把控更新范围、更新节奏的需求。
|
||||
OKG 提供了原地升级([热更新](../快速开始/游戏服热更新.md))、批量更新、按优先级更新等多种更新策略。
|
||||
|
||||
用户可设置GameServer的更新优先级,配合partition参数,实现在实际生产场景下,把控更新范围、更新顺序、更新节奏。
|
||||
如下图所示,提高序号为1的游戏服优先级,同时设置partition为2,则会优先更新1号游戏服;随后更改partition为0,则会再更新其余游戏服。详情可参考使用示例。
|
||||
|
||||

|
||||
|
||||
## 使用示例
|
||||
|
||||
本示例中将一组游戏服分成两批次更新,模拟灰度更新,逐步验证的场景。
|
||||
|
||||
此时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验证通过后,更新其余游戏服:
|
||||
|
|
|
|||
|
|
@ -56,9 +56,9 @@ OpenKruiseGame(OKG)具有如下核心能力:
|
|||
|
||||
### 进行下一步
|
||||
|
||||
* 查看快速开始,安装并体验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。
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue