This commit is contained in:
wangchuxiao 2022-07-01 12:14:15 +08:00
parent 0835ecf0ed
commit 8849cd46c9
3 changed files with 34 additions and 15 deletions

View File

@ -14,30 +14,30 @@
### 2. 项目根目录创建im configMap到k8s openim namespace ### 2. 项目根目录创建im configMap到k8s openim namespace
1. 为open-IM项目创建单独命名空间 1. 为open-IM项目创建单独命名空间
``` ```
kubectl create namespace openim kubectl create namespace openim
``` ```
2. 在项目根目录通过config/config.yaml 2. 在项目根目录通过config/config.yaml
``` ```
kubectl -n openim create configmap config --from-file=config/config.yaml kubectl -n openim create configmap config --from-file=config/config.yaml
``` ```
查看configmap 查看configmap
``` ```
kubectl -n openim get configmap kubectl -n openim get configmap
``` ```
### 3(可选). 修改每个deployment.yml ### 3(可选). 修改每个deployment.yml
每个rpc的deployment在Open-IM-SERVER根目录deploy_k8s下 每个rpc的deployment在Open-IM-SERVER根目录deploy_k8s下
给需要调度的node打上标签 给需要调度的node打上标签
``` ```
kubectl get nodes kubectl get nodes
kubectl label node k8s-node1 role=openIMworker kubectl label node k8s-node1 role=openIMworker
``` ```
在deployment的spec.template.spec加上 在deployment的spec.template.spec加上
``` ```
nodeSelector: nodeSelector:
role: openIMworker role: openIMworker
``` ```
创建资源清单时添加上nodeSelector属性对应即可, 创建资源清单时添加上nodeSelector属性对应即可,
修改每种服务数量建议至少每种2个rpc。 修改每种服务数量建议至少每种2个rpc。
如果修改了config/config.yaml某些配置比如端口同时需要修改对应deployment端口和ingress端口 如果修改了config/config.yaml某些配置比如端口同时需要修改对应deployment端口和ingress端口
@ -78,3 +78,22 @@ kubectl 启动所有deployment, services, ingress
telnet demo.openim.xxx.com {{your_ingress_port}} telnet demo.openim.xxx.com {{your_ingress_port}}
``` ```
#### openIM k8s更新
1. 暂存配置文件,拉取代码
```
git stash push config/config.yaml
git pull
```
2. 合并配置文件, 解决冲突
```
git stash pop
```
3. 重新生成configmap
```
kubectl -n openim create configmap config --from-file=config/config.yaml
```
4.修改所有deployment文件的spec.template.spec.image 改为新版本后在/deploy_k8s下重新执行
```
./kubectl_stop.sh
./kubectl_start.sh
```

View File

@ -23,7 +23,7 @@ func callbackUserOnline(operationID, userID string, platformID int, token string
PlatformID: int32(platformID), PlatformID: int32(platformID),
Platform: constant.PlatformIDToName(platformID), Platform: constant.PlatformIDToName(platformID),
}, },
Seq: time.Now().Nanosecond() / 1e6, Seq: int(time.Now().UnixNano() / 1e6),
} }
callbackUserOnlineResp := &cbApi.CallbackUserOnlineResp{CommonCallbackResp: callbackResp} callbackUserOnlineResp := &cbApi.CallbackUserOnlineResp{CommonCallbackResp: callbackResp}
if err := http.PostReturn(config.Config.Callback.CallbackUrl, callbackUserOnlineReq, callbackUserOnlineResp, config.Config.Callback.CallbackUserOnline.CallbackTimeOut); err != nil { if err := http.PostReturn(config.Config.Callback.CallbackUrl, callbackUserOnlineReq, callbackUserOnlineResp, config.Config.Callback.CallbackUserOnline.CallbackTimeOut); err != nil {
@ -46,7 +46,7 @@ func callbackUserOffline(operationID, userID string, platformID int) cbApi.Commo
PlatformID: int32(platformID), PlatformID: int32(platformID),
Platform: constant.PlatformIDToName(platformID), Platform: constant.PlatformIDToName(platformID),
}, },
Seq: time.Now().Nanosecond() / 1e6, Seq: int(time.Now().UnixNano() / 1e6),
} }
callbackUserOfflineResp := &cbApi.CallbackUserOfflineResp{CommonCallbackResp: callbackResp} callbackUserOfflineResp := &cbApi.CallbackUserOfflineResp{CommonCallbackResp: callbackResp}
if err := http.PostReturn(config.Config.Callback.CallbackUrl, callbackOfflineReq, callbackUserOfflineResp, config.Config.Callback.CallbackUserOffline.CallbackTimeOut); err != nil { if err := http.PostReturn(config.Config.Callback.CallbackUrl, callbackOfflineReq, callbackUserOfflineResp, config.Config.Callback.CallbackUserOffline.CallbackTimeOut); err != nil {

View File

@ -5,7 +5,7 @@ import commonPb "Open_IM/pkg/proto/sdk_ws"
type CallbackOfflinePushReq struct { type CallbackOfflinePushReq struct {
UserStatusCallbackReq UserStatusCallbackReq
*commonPb.OfflinePushInfo *commonPb.OfflinePushInfo
CommonCallbackReq //CommonCallbackReq
SendID string `json:"sendID"` SendID string `json:"sendID"`
GroupID string `json:"groupID"` GroupID string `json:"groupID"`
ContentType int32 `json:"contentType"` ContentType int32 `json:"contentType"`