第81节 OpenIM 的 GitOps 的设计


❤️💕💕新时代拥抱云原生,云原生具有环境统一、按需付费、即开即用、稳定性强特点。Myblog:http://nsddd.topopen in new window


[TOC]

需求

最近OpenIM 线上出现一些故障,在 https://web-enterprise.rentsoft.cn/ 环境中,我们有一个同学因为使用修复 make lint 的错误,所以就有一个很大的 PR, 但是这个 PR 针对一些错误的处理没有包裹,所以就出现问题了,结果导致我们的 IM 很长时间没办法用。

思考这一现象到底是什么问题导致的,很明显,我们确实是可以回滚的,但是更多的是回滚后,我们也会有很多的问题,代码总归是要继续提交的,无非就是延迟了进度。还有我们对外部的测试环境和体验环节中,可能会带来一些不好的体验,这总归不是我们想要的。

既然我们自己在做部署方案,集群化方案,我们应该是把这套方案完美的应用到自己的身上,这样才能更多的在生产中发现问题并且解决问题,这才是我们想要去做的。

Note

If the OpenIM cluster is deployed in the openim namespace, use the -n argument to specify the namespace. If the namespace does not exist, you can use --create-namespace to create a new namespace. Please do not modify the following chart names: im-mysql, im-kafka, im-minio, im-mongodb, im-redis, otherwise, you will need to synchronize the serviceName information to config-imserver.yaml and config-chatserver.yaml. Please do not modify the account information in these five configuration files, otherwise, you will need to synchronize the middleware account information to config-imserver.yaml and config-chatserver.yaml.

These configuration files include account information, for example, minio-config.yaml also includes domain information.

Install OpenIM Server Service

helm install openimserver -f k8s-open-im-server-config.yaml -f config-imserver.yaml -f notification.yaml  ./openim/openim-server/ -n openim

Ensure that the domain information is configured in open-im-server-config.yaml. Account information defaults to sync with the middleware (infra/) -config.yaml files. If config.yaml was modified when installing the middleware, please sync modify open-im-server-config.yaml.

Install OpenIM Chat Service

helm install openim-chat -f k8s-chat-server-config.yaml ./openim/openim-chat/ -n openim

Ensure that the domain information is configured in k8s-chat-server-config.yaml. Account information defaults to sync with the middleware -config.yaml files. If config.yaml was modified when installing the middleware, please sync modify k8s-chat-server-config.yaml.

Install Web Frontend

helm install imwebfront -f k8s-webfront-config.yaml ./webfront/

Note: Please configure the domain information in k8s-webfront-config.yaml, and modify it to your actual domain and TLS name.

Install Admin Frontend

helm install imadminfront -f k8s-adminfront-config.yaml ./adminfront/

Note: Please configure the domain information in k8s-adminfront-config.yaml, and modify it to your actual domain and TLS name.

END 链接