复制项目
This commit is contained in:
188
deployments/Readme.md
Normal file
188
deployments/Readme.md
Normal file
@@ -0,0 +1,188 @@
|
||||
# Kubernetes Deployment
|
||||
|
||||
## Resource Requests
|
||||
|
||||
- CPU: 2 cores
|
||||
- Memory: 4 GiB
|
||||
- Disk usage: 20 GiB (on Node)
|
||||
|
||||
## Preconditions
|
||||
|
||||
ensure that you have already deployed the following components:
|
||||
|
||||
- Redis
|
||||
- MongoDB
|
||||
- Kafka
|
||||
- MinIO
|
||||
|
||||
## Origin Deploy
|
||||
|
||||
### Enter the target dir
|
||||
|
||||
`cd ./deployments/deploy/`
|
||||
|
||||
### Deploy configs and dependencies
|
||||
|
||||
Upate your configMap `openim-config.yml`. **You can check the official docs for more details.**
|
||||
|
||||
In `openim-config.yml`, you need modify the following configurations:
|
||||
|
||||
**discovery.yml**
|
||||
|
||||
- `kubernetes.namespace`: default is `default`, you can change it to your namespace.
|
||||
|
||||
**mongodb.yml**
|
||||
|
||||
- `address`: set to your already mongodb address or mongo Service name and port in your deployed.
|
||||
- `database`: set to your mongodb database name.(Need have a created database.)
|
||||
- `authSource`: set to your mongodb authSource. (authSource is specify the database name associated with the user's credentials, user need create in this database.)
|
||||
|
||||
**kafka.yml**
|
||||
|
||||
- `address`: set to your already kafka address or kafka Service name and port in your deployed.
|
||||
|
||||
**redis.yml**
|
||||
|
||||
- `address`: set to your already redis address or redis Service name and port in your deployed.
|
||||
|
||||
**minio.yml**
|
||||
|
||||
- `internalAddress`: set to your minio Service name and port in your deployed.
|
||||
- `externalAddress`: set to your already expose minio external address.
|
||||
|
||||
### Set the secret
|
||||
|
||||
A Secret is an object that contains a small amount of sensitive data. Such as password and secret. Secret is similar to ConfigMaps.
|
||||
|
||||
#### Redis:
|
||||
|
||||
Update the `redis-password` value in `redis-secret.yml` to your Redis password encoded in base64.
|
||||
|
||||
```yaml
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: openim-redis-secret
|
||||
type: Opaque
|
||||
data:
|
||||
redis-password: b3BlbklNMTIz # update to your redis password encoded in base64, if need empty, you can set to ""
|
||||
```
|
||||
|
||||
#### Mongo:
|
||||
|
||||
Update the `mongo_openim_username`, `mongo_openim_password` value in `mongo-secret.yml` to your Mongo username and password encoded in base64.
|
||||
|
||||
```yaml
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: openim-mongo-secret
|
||||
type: Opaque
|
||||
data:
|
||||
mongo_openim_username: b3BlbklN # update to your mongo username encoded in base64, if need empty, you can set to "" (this user credentials need in authSource database).
|
||||
mongo_openim_password: b3BlbklNMTIz # update to your mongo password encoded in base64, if need empty, you can set to ""
|
||||
```
|
||||
|
||||
#### Minio:
|
||||
|
||||
Update the `minio-root-user` and `minio-root-password` value in `minio-secret.yml` to your MinIO accessKeyID and secretAccessKey encoded in base64.
|
||||
|
||||
```yaml
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: openim-minio-secret
|
||||
type: Opaque
|
||||
data:
|
||||
minio-root-user: cm9vdA== # update to your minio accessKeyID encoded in base64, if need empty, you can set to ""
|
||||
minio-root-password: b3BlbklNMTIz # update to your minio secretAccessKey encoded in base64, if need empty, you can set to ""
|
||||
```
|
||||
|
||||
#### Kafka:
|
||||
|
||||
Update the `kafka-password` value in `kafka-secret.yml` to your Kafka password encoded in base64.
|
||||
|
||||
```yaml
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: openim-kafka-secret
|
||||
type: Opaque
|
||||
data:
|
||||
kafka-password: b3BlbklNMTIz # update to your kafka password encoded in base64, if need empty, you can set to ""
|
||||
```
|
||||
|
||||
### Apply the secret.
|
||||
|
||||
```shell
|
||||
kubectl apply -f redis-secret.yml -f minio-secret.yml -f mongo-secret.yml -f kafka-secret.yml
|
||||
```
|
||||
|
||||
### Apply all config
|
||||
|
||||
`kubectl apply -f ./openim-config.yml`
|
||||
|
||||
> Attation: If you use `default` namespace, you can excute `clusterRile.yml` to create a cluster role binding for default service account.
|
||||
>
|
||||
> Namespace is modify to `discovery.yml` in `openim-config.yml`, you can change `kubernetes.namespace` to your namespace.
|
||||
|
||||
**Excute `clusterRole.yml`**
|
||||
|
||||
`kubectl apply -f ./clusterRole.yml`
|
||||
|
||||
### run all deployments and services
|
||||
|
||||
> Note: Ensure that infrastructure services like MinIO, Redis, and Kafka are running before deploying the main applications.
|
||||
|
||||
```bash
|
||||
kubectl apply \
|
||||
-f openim-api-deployment.yml \
|
||||
-f openim-api-service.yml \
|
||||
-f openim-crontask-deployment.yml \
|
||||
-f openim-rpc-user-deployment.yml \
|
||||
-f openim-rpc-user-service.yml \
|
||||
-f openim-msggateway-deployment.yml \
|
||||
-f openim-msggateway-service.yml \
|
||||
-f openim-push-deployment.yml \
|
||||
-f openim-push-service.yml \
|
||||
-f openim-msgtransfer-service.yml \
|
||||
-f openim-msgtransfer-deployment.yml \
|
||||
-f openim-rpc-conversation-deployment.yml \
|
||||
-f openim-rpc-conversation-service.yml \
|
||||
-f openim-rpc-auth-deployment.yml \
|
||||
-f openim-rpc-auth-service.yml \
|
||||
-f openim-rpc-group-deployment.yml \
|
||||
-f openim-rpc-group-service.yml \
|
||||
-f openim-rpc-friend-deployment.yml \
|
||||
-f openim-rpc-friend-service.yml \
|
||||
-f openim-rpc-msg-deployment.yml \
|
||||
-f openim-rpc-msg-service.yml \
|
||||
-f openim-rpc-third-deployment.yml \
|
||||
-f openim-rpc-third-service.yml
|
||||
```
|
||||
|
||||
### Verification
|
||||
|
||||
After deploying the services, verify that everything is running smoothly:
|
||||
|
||||
```bash
|
||||
# Check the status of all pods
|
||||
kubectl get pods
|
||||
|
||||
# Check the status of services
|
||||
kubectl get svc
|
||||
|
||||
# Check the status of deployments
|
||||
kubectl get deployments
|
||||
|
||||
# View all resources
|
||||
kubectl get all
|
||||
```
|
||||
|
||||
### clean all
|
||||
|
||||
`kubectl delete -f ./`
|
||||
|
||||
### Notes:
|
||||
|
||||
- If you use a specific namespace for your deployment, be sure to append the -n <namespace> flag to your kubectl commands.
|
||||
24
deployments/deploy/clusterRole.yml
Normal file
24
deployments/deploy/clusterRole.yml
Normal file
@@ -0,0 +1,24 @@
|
||||
# ClusterRole.yaml
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
name: service-reader
|
||||
rules:
|
||||
- apiGroups: [""]
|
||||
resources: ["services", "endpoints"]
|
||||
verbs: ["get", "list", "watch"]
|
||||
|
||||
---
|
||||
# ClusterRoleBinding.yaml
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
name: default-service-reader-binding
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: default
|
||||
namespace: default
|
||||
roleRef:
|
||||
kind: ClusterRole
|
||||
name: service-reader
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
25
deployments/deploy/ingress.yml
Normal file
25
deployments/deploy/ingress.yml
Normal file
@@ -0,0 +1,25 @@
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: openim-ingress
|
||||
annotations:
|
||||
nginx.ingress.kubernetes.io/rewrite-target: /
|
||||
spec:
|
||||
ingressClassName: openim-nginx
|
||||
rules:
|
||||
- http:
|
||||
paths:
|
||||
- path: /openim-api
|
||||
pathType: Prefix
|
||||
backend:
|
||||
service:
|
||||
name: openim-api-service
|
||||
port:
|
||||
number: 10002
|
||||
- path: /openim-msggateway
|
||||
pathType: Prefix
|
||||
backend:
|
||||
service:
|
||||
name: openim-msggateway-service
|
||||
port:
|
||||
number: 10001
|
||||
7
deployments/deploy/kafka-secret.yml
Normal file
7
deployments/deploy/kafka-secret.yml
Normal file
@@ -0,0 +1,7 @@
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: openim-kafka-secret
|
||||
type: Opaque
|
||||
data:
|
||||
kafka-password: ""
|
||||
20
deployments/deploy/kafka-service.yml
Normal file
20
deployments/deploy/kafka-service.yml
Normal file
@@ -0,0 +1,20 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: kafka-service
|
||||
labels:
|
||||
app: kafka
|
||||
spec:
|
||||
ports:
|
||||
- name: plaintext
|
||||
port: 9092
|
||||
targetPort: 9092
|
||||
- name: controller
|
||||
port: 9093
|
||||
targetPort: 9093
|
||||
- name: external
|
||||
port: 19094
|
||||
targetPort: 9094
|
||||
selector:
|
||||
app: kafka
|
||||
type: ClusterIP
|
||||
71
deployments/deploy/kafka-statefulset.yml
Normal file
71
deployments/deploy/kafka-statefulset.yml
Normal file
@@ -0,0 +1,71 @@
|
||||
apiVersion: apps/v1
|
||||
kind: StatefulSet
|
||||
metadata:
|
||||
name: kafka-statefulset
|
||||
labels:
|
||||
app: kafka
|
||||
spec:
|
||||
replicas: 2
|
||||
selector:
|
||||
matchLabels:
|
||||
app: kafka
|
||||
serviceName: "kafka-service"
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: kafka
|
||||
spec:
|
||||
containers:
|
||||
- name: kafka
|
||||
image: bitnami/kafka:3.5.1
|
||||
imagePullPolicy: IfNotPresent
|
||||
resources:
|
||||
limits:
|
||||
memory: "2Gi"
|
||||
cpu: "1000m"
|
||||
requests:
|
||||
memory: "1Gi"
|
||||
cpu: "500m"
|
||||
ports:
|
||||
- containerPort: 9092 # PLAINTEXT
|
||||
- containerPort: 9093 # CONTROLLER
|
||||
- containerPort: 9094 # EXTERNAL
|
||||
env:
|
||||
- name: TZ
|
||||
value: "Asia/Shanghai"
|
||||
- name: KAFKA_CFG_NODE_ID
|
||||
value: "0"
|
||||
- name: KAFKA_CFG_PROCESS_ROLES
|
||||
value: "controller,broker"
|
||||
- name: KAFKA_CFG_CONTROLLER_QUORUM_VOTERS
|
||||
value: "0@kafka-service:9093"
|
||||
- name: KAFKA_CFG_LISTENERS
|
||||
value: "PLAINTEXT://:9092,CONTROLLER://:9093,EXTERNAL://:9094"
|
||||
- name: KAFKA_CFG_ADVERTISED_LISTENERS
|
||||
value: "PLAINTEXT://kafka-service:9092,EXTERNAL://kafka-service:19094"
|
||||
- name: KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP
|
||||
value: "CONTROLLER:PLAINTEXT,EXTERNAL:PLAINTEXT,PLAINTEXT:PLAINTEXT"
|
||||
- name: KAFKA_CFG_CONTROLLER_LISTENER_NAMES
|
||||
value: "CONTROLLER"
|
||||
- name: KAFKA_CFG_AUTO_CREATE_TOPICS_ENABLE
|
||||
value: "true"
|
||||
volumeMounts:
|
||||
- name: kafka-data
|
||||
mountPath: /bitnami/kafka
|
||||
|
||||
volumes:
|
||||
- name: kafka-data
|
||||
persistentVolumeClaim:
|
||||
claimName: kafka-pvc
|
||||
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: kafka-pvc
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 10Gi
|
||||
8
deployments/deploy/minio-secret.yml
Normal file
8
deployments/deploy/minio-secret.yml
Normal file
@@ -0,0 +1,8 @@
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: openim-minio-secret
|
||||
type: Opaque
|
||||
data:
|
||||
minio-root-user: WjlNZ3F0ZG05T2N6emVSRw== # Base64 encoded "root"
|
||||
minio-root-password: dlY2Q3pOdnhZYU45alNaOGc3bk9oR0YxTjR5Z0xKYkU= # Base64 encoded "openIM123"
|
||||
18
deployments/deploy/minio-service.yml
Normal file
18
deployments/deploy/minio-service.yml
Normal file
@@ -0,0 +1,18 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: minio-service
|
||||
spec:
|
||||
selector:
|
||||
app: minio
|
||||
ports:
|
||||
- name: minio
|
||||
protocol: TCP
|
||||
port: 10005 # External port for accessing MinIO service
|
||||
targetPort: 9000 # Container port for MinIO service
|
||||
- name: minio-console
|
||||
protocol: TCP
|
||||
port: 19090 # External port for accessing MinIO console
|
||||
targetPort: 9090 # Container port for MinIO console
|
||||
type: NodePort
|
||||
79
deployments/deploy/minio-statefulset.yml
Normal file
79
deployments/deploy/minio-statefulset.yml
Normal file
@@ -0,0 +1,79 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: minio
|
||||
labels:
|
||||
app: minio
|
||||
spec:
|
||||
replicas: 2
|
||||
selector:
|
||||
matchLabels:
|
||||
app: minio
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: minio
|
||||
spec:
|
||||
containers:
|
||||
- name: minio
|
||||
image: minio/minio:RELEASE.2024-01-11T07-46-16Z
|
||||
ports:
|
||||
- containerPort: 9000 # MinIO service port
|
||||
- containerPort: 9090 # MinIO console port
|
||||
volumeMounts:
|
||||
- name: minio-data
|
||||
mountPath: /data
|
||||
- name: minio-config
|
||||
mountPath: /root/.minio
|
||||
env:
|
||||
- name: TZ
|
||||
value: "Asia/Shanghai"
|
||||
- name: MINIO_ROOT_USER
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: openim-minio-secret
|
||||
key: minio-root-user
|
||||
- name: MINIO_ROOT_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: openim-minio-secret
|
||||
key: minio-root-password
|
||||
command:
|
||||
- "/bin/sh"
|
||||
- "-c"
|
||||
- |
|
||||
mkdir -p /data && \
|
||||
minio server /data --console-address ":9090"
|
||||
volumes:
|
||||
- name: minio-data
|
||||
persistentVolumeClaim:
|
||||
claimName: minio-pvc
|
||||
- name: minio-config
|
||||
persistentVolumeClaim:
|
||||
claimName: minio-config-pvc
|
||||
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: minio-pvc
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 10Gi
|
||||
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: minio-config-pvc
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 2Gi
|
||||
|
||||
|
||||
8
deployments/deploy/mongo-secret.yml
Normal file
8
deployments/deploy/mongo-secret.yml
Normal file
@@ -0,0 +1,8 @@
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: openim-mongo-secret
|
||||
type: Opaque
|
||||
data:
|
||||
mongo_openim_username: cm9vdA== # base64 for "root"
|
||||
mongo_openim_password: bGNFdU11OHFzNDdyb2VCUzkzazExNVNPYzRnVTlVWFY= # base64 for "lcEuMu8qs47roeBS93k115SOc4gU9UXV"
|
||||
13
deployments/deploy/mongo-service.yml
Normal file
13
deployments/deploy/mongo-service.yml
Normal file
@@ -0,0 +1,13 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: mongo-service
|
||||
spec:
|
||||
selector:
|
||||
app: mongo
|
||||
ports:
|
||||
- name: mongodb-port
|
||||
protocol: TCP
|
||||
port: 37017
|
||||
targetPort: 27017
|
||||
type: NodePort
|
||||
108
deployments/deploy/mongo-statefulset.yml
Normal file
108
deployments/deploy/mongo-statefulset.yml
Normal file
@@ -0,0 +1,108 @@
|
||||
apiVersion: apps/v1
|
||||
kind: StatefulSet
|
||||
metadata:
|
||||
name: mongo-statefulset
|
||||
spec:
|
||||
serviceName: "mongo"
|
||||
replicas: 2
|
||||
selector:
|
||||
matchLabels:
|
||||
app: mongo
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: mongo
|
||||
spec:
|
||||
containers:
|
||||
- name: mongo
|
||||
image: mongo:7.0
|
||||
command: ["/bin/bash", "-c"]
|
||||
args:
|
||||
- >
|
||||
docker-entrypoint.sh mongod --wiredTigerCacheSizeGB ${wiredTigerCacheSizeGB} --auth &
|
||||
until mongosh -u ${MONGO_INITDB_ROOT_USERNAME} -p ${MONGO_INITDB_ROOT_PASSWORD} --authenticationDatabase admin --eval "db.runCommand({ ping: 1 })" &>/dev/null; do
|
||||
echo "Waiting for MongoDB to start...";
|
||||
sleep 1;
|
||||
done &&
|
||||
mongosh -u ${MONGO_INITDB_ROOT_USERNAME} -p ${MONGO_INITDB_ROOT_PASSWORD} --authenticationDatabase admin --eval "
|
||||
db = db.getSiblingDB(\"${MONGO_INITDB_DATABASE}\");
|
||||
if (!db.getUser(\"${MONGO_OPENIM_USERNAME}\")) {
|
||||
db.createUser({
|
||||
user: \"${MONGO_OPENIM_USERNAME}\",
|
||||
pwd: \"${MONGO_OPENIM_PASSWORD}\",
|
||||
roles: [{role: \"readWrite\", db: \"${MONGO_INITDB_DATABASE}\"}]
|
||||
});
|
||||
print(\"User created successfully: \");
|
||||
print(\"Username: ${MONGO_OPENIM_USERNAME}\");
|
||||
print(\"Password: ${MONGO_OPENIM_PASSWORD}\");
|
||||
print(\"Database: ${MONGO_INITDB_DATABASE}\");
|
||||
} else {
|
||||
print(\"User already exists in database: ${MONGO_INITDB_DATABASE}, Username: ${MONGO_OPENIM_USERNAME}\");
|
||||
}
|
||||
" &&
|
||||
tail -f /dev/null
|
||||
ports:
|
||||
- containerPort: 27017
|
||||
env:
|
||||
- name: MONGO_INITDB_ROOT_USERNAME
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: openim-mongo-init-secret
|
||||
key: mongo_initdb_root_username
|
||||
- name: MONGO_INITDB_ROOT_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: openim-mongo-init-secret
|
||||
key: mongo_initdb_root_password
|
||||
- name: MONGO_INITDB_DATABASE
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: openim-mongo-init-secret
|
||||
key: mongo_initdb_database
|
||||
- name: MONGO_OPENIM_USERNAME
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: openim-mongo-init-secret
|
||||
key: mongo_openim_username
|
||||
- name: MONGO_OPENIM_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: openim-mongo-init-secret
|
||||
key: mongo_openim_password
|
||||
- name: TZ
|
||||
value: "Asia/Shanghai"
|
||||
- name: wiredTigerCacheSizeGB
|
||||
value: "1"
|
||||
volumeMounts:
|
||||
- name: mongo-storage
|
||||
mountPath: /data/db
|
||||
|
||||
volumes:
|
||||
- name: mongo-storage
|
||||
persistentVolumeClaim:
|
||||
claimName: mongo-pvc
|
||||
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: mongo-pvc
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 5Gi
|
||||
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: openim-mongo-init-secret
|
||||
type: Opaque
|
||||
data:
|
||||
mongo_initdb_root_username: cm9vdA== # base64 for "root"
|
||||
mongo_initdb_root_password: b3BlbklNMTIz # base64 for "openIM123"
|
||||
mongo_initdb_database: b3BlbmltX3Yz # base64 for "openim_v3"
|
||||
mongo_openim_username: b3BlbklN # base64 for "openIM"
|
||||
mongo_openim_password: b3BlbklNMTIz # base64 for "openIM123"
|
||||
59
deployments/deploy/openim-api-deployment.yml
Normal file
59
deployments/deploy/openim-api-deployment.yml
Normal file
@@ -0,0 +1,59 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: openim-api
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: openim-api
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: openim-api
|
||||
spec:
|
||||
imagePullSecrets:
|
||||
- name: dockerhub-secret
|
||||
containers:
|
||||
- name: openim-api-container
|
||||
image: mag1666888/openim-api:prod
|
||||
imagePullPolicy: Always
|
||||
env:
|
||||
- name: CONFIG_PATH
|
||||
value: "/config"
|
||||
- name: IMENV_REDIS_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: openim-redis-secret
|
||||
key: redis-password
|
||||
- name: IMENV_MONGODB_USERNAME
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: openim-mongo-secret
|
||||
key: mongo_openim_username
|
||||
- name: IMENV_MONGODB_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: openim-mongo-secret
|
||||
key: mongo_openim_password
|
||||
|
||||
volumeMounts:
|
||||
- name: openim-config
|
||||
mountPath: "/config"
|
||||
readOnly: true
|
||||
ports:
|
||||
- containerPort: 10002
|
||||
- containerPort: 12002
|
||||
resources:
|
||||
requests:
|
||||
cpu: "200m"
|
||||
memory: "256Mi"
|
||||
ephemeral-storage: "2Gi"
|
||||
limits:
|
||||
cpu: "4000m"
|
||||
memory: "4Gi"
|
||||
ephemeral-storage: "20Gi"
|
||||
volumes:
|
||||
- name: openim-config
|
||||
configMap:
|
||||
name: openim-config
|
||||
17
deployments/deploy/openim-api-service.yml
Normal file
17
deployments/deploy/openim-api-service.yml
Normal file
@@ -0,0 +1,17 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: openim-api-service
|
||||
spec:
|
||||
selector:
|
||||
app: openim-api
|
||||
ports:
|
||||
- name: http-10002
|
||||
protocol: TCP
|
||||
port: 10002
|
||||
targetPort: 10002
|
||||
- name: prometheus-12002
|
||||
protocol: TCP
|
||||
port: 12002
|
||||
targetPort: 12002
|
||||
type: NodePort
|
||||
1060
deployments/deploy/openim-config.yml
Normal file
1060
deployments/deploy/openim-config.yml
Normal file
File diff suppressed because it is too large
Load Diff
31
deployments/deploy/openim-crontask-deployment.yml
Normal file
31
deployments/deploy/openim-crontask-deployment.yml
Normal file
@@ -0,0 +1,31 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: openim-crontask
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: crontask
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: crontask
|
||||
spec:
|
||||
imagePullSecrets:
|
||||
- name: dockerhub-secret
|
||||
containers:
|
||||
- name: crontask-container
|
||||
image: mag1666888/openim-crontask:prod
|
||||
imagePullPolicy: Always
|
||||
env:
|
||||
- name: CONFIG_PATH
|
||||
value: "/config"
|
||||
volumeMounts:
|
||||
- name: openim-config
|
||||
mountPath: "/config"
|
||||
readOnly: true
|
||||
volumes:
|
||||
- name: openim-config
|
||||
configMap:
|
||||
name: openim-config
|
||||
48
deployments/deploy/openim-msggateway-deployment.yml
Normal file
48
deployments/deploy/openim-msggateway-deployment.yml
Normal file
@@ -0,0 +1,48 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: messagegateway-rpc-server
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: messagegateway-rpc-server
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: messagegateway-rpc-server
|
||||
spec:
|
||||
imagePullSecrets:
|
||||
- name: dockerhub-secret
|
||||
containers:
|
||||
- name: openim-msggateway-container
|
||||
image: mag1666888/openim-msggateway:prod
|
||||
imagePullPolicy: Always
|
||||
env:
|
||||
- name: CONFIG_PATH
|
||||
value: "/config"
|
||||
- name: IMENV_REDIS_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: openim-redis-secret
|
||||
key: redis-password
|
||||
volumeMounts:
|
||||
- name: openim-config
|
||||
mountPath: "/config"
|
||||
readOnly: true
|
||||
ports:
|
||||
- containerPort: 10140
|
||||
- containerPort: 12001
|
||||
resources:
|
||||
requests:
|
||||
cpu: "200m"
|
||||
memory: "256Mi"
|
||||
ephemeral-storage: "2Gi"
|
||||
limits:
|
||||
cpu: "4000m"
|
||||
memory: "4Gi"
|
||||
ephemeral-storage: "20Gi"
|
||||
volumes:
|
||||
- name: openim-config
|
||||
configMap:
|
||||
name: openim-config
|
||||
21
deployments/deploy/openim-msggateway-service.yml
Normal file
21
deployments/deploy/openim-msggateway-service.yml
Normal file
@@ -0,0 +1,21 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: messagegateway-rpc-service
|
||||
spec:
|
||||
selector:
|
||||
app: messagegateway-rpc-server
|
||||
ports:
|
||||
- name: longconnserver-10001
|
||||
protocol: TCP
|
||||
port: 10001
|
||||
targetPort: 10001
|
||||
- name: grpc-10140
|
||||
protocol: TCP
|
||||
port: 10140
|
||||
targetPort: 10140
|
||||
- name: prometheus-12001
|
||||
protocol: TCP
|
||||
port: 12001
|
||||
targetPort: 12001
|
||||
type: NodePort
|
||||
60
deployments/deploy/openim-msgtransfer-deployment.yml
Normal file
60
deployments/deploy/openim-msgtransfer-deployment.yml
Normal file
@@ -0,0 +1,60 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: openim-msgtransfer-server
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: openim-msgtransfer-server
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: openim-msgtransfer-server
|
||||
spec:
|
||||
imagePullSecrets:
|
||||
- name: dockerhub-secret
|
||||
containers:
|
||||
- name: openim-msgtransfer-container
|
||||
image: mag1666888/openim-msgtransfer:prod
|
||||
imagePullPolicy: Always
|
||||
env:
|
||||
- name: CONFIG_PATH
|
||||
value: "/config"
|
||||
- name: IMENV_REDIS_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: openim-redis-secret
|
||||
key: redis-password
|
||||
- name: IMENV_MONGODB_USERNAME
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: openim-mongo-secret
|
||||
key: mongo_openim_username
|
||||
- name: IMENV_MONGODB_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: openim-mongo-secret
|
||||
key: mongo_openim_password
|
||||
- name: IMENV_KAFKA_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: openim-kafka-secret
|
||||
key: kafka-password
|
||||
volumeMounts:
|
||||
- name: openim-config
|
||||
mountPath: "/config"
|
||||
readOnly: true
|
||||
ports:
|
||||
- containerPort: 12020
|
||||
resources:
|
||||
requests:
|
||||
cpu: "500m"
|
||||
memory: "512Mi"
|
||||
limits:
|
||||
cpu: "1000m"
|
||||
memory: "1Gi"
|
||||
volumes:
|
||||
- name: openim-config
|
||||
configMap:
|
||||
name: openim-config
|
||||
13
deployments/deploy/openim-msgtransfer-service.yml
Normal file
13
deployments/deploy/openim-msgtransfer-service.yml
Normal file
@@ -0,0 +1,13 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: openim-msgtransfer-service
|
||||
spec:
|
||||
selector:
|
||||
app: openim-msgtransfer-server
|
||||
ports:
|
||||
- name: prometheus-12020
|
||||
protocol: TCP
|
||||
port: 12020
|
||||
targetPort: 12020
|
||||
type: ClusterIP
|
||||
51
deployments/deploy/openim-push-deployment.yml
Normal file
51
deployments/deploy/openim-push-deployment.yml
Normal file
@@ -0,0 +1,51 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: push-rpc-server
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: push-rpc-server
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: push-rpc-server
|
||||
spec:
|
||||
imagePullSecrets:
|
||||
- name: dockerhub-secret
|
||||
containers:
|
||||
- name: push-rpc-server-container
|
||||
image: mag1666888/openim-push:prod
|
||||
imagePullPolicy: Always
|
||||
env:
|
||||
- name: CONFIG_PATH
|
||||
value: "/config"
|
||||
- name: IMENV_REDIS_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: openim-redis-secret
|
||||
key: redis-password
|
||||
- name: IMENV_KAFKA_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: openim-kafka-secret
|
||||
key: kafka-password
|
||||
volumeMounts:
|
||||
- name: openim-config
|
||||
mountPath: "/config"
|
||||
readOnly: true
|
||||
ports:
|
||||
- containerPort: 10170
|
||||
- containerPort: 12170
|
||||
resources:
|
||||
requests:
|
||||
cpu: "500m"
|
||||
memory: "512Mi"
|
||||
limits:
|
||||
cpu: "1000m"
|
||||
memory: "1Gi"
|
||||
volumes:
|
||||
- name: openim-config
|
||||
configMap:
|
||||
name: openim-config
|
||||
17
deployments/deploy/openim-push-service.yml
Normal file
17
deployments/deploy/openim-push-service.yml
Normal file
@@ -0,0 +1,17 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: push-rpc-service
|
||||
spec:
|
||||
selector:
|
||||
app: push-rpc-server
|
||||
ports:
|
||||
- name: http-10170
|
||||
protocol: TCP
|
||||
port: 10170
|
||||
targetPort: 10170
|
||||
- name: prometheus-12170
|
||||
protocol: TCP
|
||||
port: 12170
|
||||
targetPort: 12170
|
||||
type: ClusterIP
|
||||
39
deployments/deploy/openim-rpc-auth-deployment.yml
Normal file
39
deployments/deploy/openim-rpc-auth-deployment.yml
Normal file
@@ -0,0 +1,39 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: auth-rpc-server
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: auth-rpc-server
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: auth-rpc-server
|
||||
spec:
|
||||
imagePullSecrets:
|
||||
- name: dockerhub-secret
|
||||
containers:
|
||||
- name: auth-rpc-server-container
|
||||
image: mag1666888/openim-rpc-auth:prod
|
||||
imagePullPolicy: Always
|
||||
env:
|
||||
- name: CONFIG_PATH
|
||||
value: "/config"
|
||||
- name: IMENV_REDIS_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: openim-redis-secret
|
||||
key: redis-password
|
||||
volumeMounts:
|
||||
- name: openim-config
|
||||
mountPath: "/config"
|
||||
readOnly: true
|
||||
ports:
|
||||
- containerPort: 10200
|
||||
- containerPort: 12200
|
||||
volumes:
|
||||
- name: openim-config
|
||||
configMap:
|
||||
name: openim-config
|
||||
17
deployments/deploy/openim-rpc-auth-service.yml
Normal file
17
deployments/deploy/openim-rpc-auth-service.yml
Normal file
@@ -0,0 +1,17 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: auth-rpc-service
|
||||
spec:
|
||||
selector:
|
||||
app: auth-rpc-server
|
||||
ports:
|
||||
- name: http-10200
|
||||
protocol: TCP
|
||||
port: 10200
|
||||
targetPort: 10200
|
||||
- name: prometheus-12200
|
||||
protocol: TCP
|
||||
port: 12200
|
||||
targetPort: 12200
|
||||
type: ClusterIP
|
||||
49
deployments/deploy/openim-rpc-conversation-deployment.yml
Normal file
49
deployments/deploy/openim-rpc-conversation-deployment.yml
Normal file
@@ -0,0 +1,49 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: conversation-rpc-server
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: conversation-rpc-server
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: conversation-rpc-server
|
||||
spec:
|
||||
imagePullSecrets:
|
||||
- name: dockerhub-secret
|
||||
containers:
|
||||
- name: conversation-rpc-server-container
|
||||
image: mag1666888/openim-rpc-conversation:prod
|
||||
imagePullPolicy: Always
|
||||
env:
|
||||
- name: CONFIG_PATH
|
||||
value: "/config"
|
||||
- name: IMENV_REDIS_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: openim-redis-secret
|
||||
key: redis-password
|
||||
- name: IMENV_MONGODB_USERNAME
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: openim-mongo-secret
|
||||
key: mongo_openim_username
|
||||
- name: IMENV_MONGODB_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: openim-mongo-secret
|
||||
key: mongo_openim_password
|
||||
volumeMounts:
|
||||
- name: openim-config
|
||||
mountPath: "/config"
|
||||
readOnly: true
|
||||
ports:
|
||||
- containerPort: 10220
|
||||
- containerPort: 12220
|
||||
volumes:
|
||||
- name: openim-config
|
||||
configMap:
|
||||
name: openim-config
|
||||
17
deployments/deploy/openim-rpc-conversation-service.yml
Normal file
17
deployments/deploy/openim-rpc-conversation-service.yml
Normal file
@@ -0,0 +1,17 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: conversation-rpc-service
|
||||
spec:
|
||||
selector:
|
||||
app: conversation-rpc-server
|
||||
ports:
|
||||
- name: http-10220
|
||||
protocol: TCP
|
||||
port: 10220
|
||||
targetPort: 10220
|
||||
- name: prometheus-12220
|
||||
protocol: TCP
|
||||
port: 12220
|
||||
targetPort: 12220
|
||||
type: ClusterIP
|
||||
49
deployments/deploy/openim-rpc-friend-deployment.yml
Normal file
49
deployments/deploy/openim-rpc-friend-deployment.yml
Normal file
@@ -0,0 +1,49 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: friend-rpc-server
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: friend-rpc-server
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: friend-rpc-server
|
||||
spec:
|
||||
imagePullSecrets:
|
||||
- name: dockerhub-secret
|
||||
containers:
|
||||
- name: friend-rpc-server-container
|
||||
image: mag1666888/openim-rpc-friend:prod
|
||||
imagePullPolicy: Always
|
||||
env:
|
||||
- name: CONFIG_PATH
|
||||
value: "/config"
|
||||
- name: IMENV_REDIS_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: openim-redis-secret
|
||||
key: redis-password
|
||||
- name: IMENV_MONGODB_USERNAME
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: openim-mongo-secret
|
||||
key: mongo_openim_username
|
||||
- name: IMENV_MONGODB_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: openim-mongo-secret
|
||||
key: mongo_openim_password
|
||||
volumeMounts:
|
||||
- name: openim-config
|
||||
mountPath: "/config"
|
||||
readOnly: true
|
||||
ports:
|
||||
- containerPort: 10240
|
||||
- containerPort: 12240
|
||||
volumes:
|
||||
- name: openim-config
|
||||
configMap:
|
||||
name: openim-config
|
||||
17
deployments/deploy/openim-rpc-friend-service.yml
Normal file
17
deployments/deploy/openim-rpc-friend-service.yml
Normal file
@@ -0,0 +1,17 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: friend-rpc-service
|
||||
spec:
|
||||
selector:
|
||||
app: friend-rpc-server
|
||||
ports:
|
||||
- name: http-10240
|
||||
protocol: TCP
|
||||
port: 10240
|
||||
targetPort: 10240
|
||||
- name: prometheus-12240
|
||||
protocol: TCP
|
||||
port: 12240
|
||||
targetPort: 12240
|
||||
type: ClusterIP
|
||||
49
deployments/deploy/openim-rpc-group-deployment.yml
Normal file
49
deployments/deploy/openim-rpc-group-deployment.yml
Normal file
@@ -0,0 +1,49 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: group-rpc-server
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: group-rpc-server
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: group-rpc-server
|
||||
spec:
|
||||
imagePullSecrets:
|
||||
- name: dockerhub-secret
|
||||
containers:
|
||||
- name: group-rpc-server-container
|
||||
image: mag1666888/openim-rpc-group:prod
|
||||
imagePullPolicy: Always
|
||||
env:
|
||||
- name: CONFIG_PATH
|
||||
value: "/config"
|
||||
- name: IMENV_REDIS_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: openim-redis-secret
|
||||
key: redis-password
|
||||
- name: IMENV_MONGODB_USERNAME
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: openim-mongo-secret
|
||||
key: mongo_openim_username
|
||||
- name: IMENV_MONGODB_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: openim-mongo-secret
|
||||
key: mongo_openim_password
|
||||
volumeMounts:
|
||||
- name: openim-config
|
||||
mountPath: "/config"
|
||||
readOnly: true
|
||||
ports:
|
||||
- containerPort: 10260
|
||||
- containerPort: 12260
|
||||
volumes:
|
||||
- name: openim-config
|
||||
configMap:
|
||||
name: openim-config
|
||||
17
deployments/deploy/openim-rpc-group-service.yml
Normal file
17
deployments/deploy/openim-rpc-group-service.yml
Normal file
@@ -0,0 +1,17 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: group-rpc-service
|
||||
spec:
|
||||
selector:
|
||||
app: group-rpc-server
|
||||
ports:
|
||||
- name: http-10260
|
||||
protocol: TCP
|
||||
port: 10260
|
||||
targetPort: 10260
|
||||
- name: prometheus-12260
|
||||
protocol: TCP
|
||||
port: 12260
|
||||
targetPort: 12260
|
||||
type: ClusterIP
|
||||
63
deployments/deploy/openim-rpc-msg-deployment.yml
Normal file
63
deployments/deploy/openim-rpc-msg-deployment.yml
Normal file
@@ -0,0 +1,63 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: msg-rpc-server
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: msg-rpc-server
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: msg-rpc-server
|
||||
spec:
|
||||
imagePullSecrets:
|
||||
- name: dockerhub-secret
|
||||
containers:
|
||||
- name: msg-rpc-server-container
|
||||
image: mag1666888/openim-rpc-msg:prod
|
||||
imagePullPolicy: Always
|
||||
env:
|
||||
- name: CONFIG_PATH
|
||||
value: "/config"
|
||||
- name: IMENV_REDIS_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: openim-redis-secret
|
||||
key: redis-password
|
||||
- name: IMENV_MONGODB_USERNAME
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: openim-mongo-secret
|
||||
key: mongo_openim_username
|
||||
- name: IMENV_MONGODB_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: openim-mongo-secret
|
||||
key: mongo_openim_password
|
||||
- name: IMENV_KAFKA_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: openim-kafka-secret
|
||||
key: kafka-password
|
||||
volumeMounts:
|
||||
- name: openim-config
|
||||
mountPath: "/config"
|
||||
readOnly: true
|
||||
ports:
|
||||
- containerPort: 10280
|
||||
- containerPort: 12280
|
||||
resources:
|
||||
requests:
|
||||
cpu: "200m"
|
||||
memory: "256Mi"
|
||||
ephemeral-storage: "2Gi"
|
||||
limits:
|
||||
cpu: "4000m"
|
||||
memory: "4Gi"
|
||||
ephemeral-storage: "20Gi"
|
||||
volumes:
|
||||
- name: openim-config
|
||||
configMap:
|
||||
name: openim-config
|
||||
17
deployments/deploy/openim-rpc-msg-service.yml
Normal file
17
deployments/deploy/openim-rpc-msg-service.yml
Normal file
@@ -0,0 +1,17 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: msg-rpc-service
|
||||
spec:
|
||||
selector:
|
||||
app: msg-rpc-server
|
||||
ports:
|
||||
- name: http-10280
|
||||
protocol: TCP
|
||||
port: 10280
|
||||
targetPort: 10280
|
||||
- name: prometheus-12280
|
||||
protocol: TCP
|
||||
port: 12280
|
||||
targetPort: 12280
|
||||
type: ClusterIP
|
||||
59
deployments/deploy/openim-rpc-third-deployment.yml
Normal file
59
deployments/deploy/openim-rpc-third-deployment.yml
Normal file
@@ -0,0 +1,59 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: third-rpc-server
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: third-rpc-server
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: third-rpc-server
|
||||
spec:
|
||||
imagePullSecrets:
|
||||
- name: dockerhub-secret
|
||||
containers:
|
||||
- name: third-rpc-server-container
|
||||
image: mag1666888/openim-rpc-third:prod
|
||||
imagePullPolicy: Always
|
||||
env:
|
||||
- name: CONFIG_PATH
|
||||
value: "/config"
|
||||
- name: IMENV_MINIO_ACCESSKEYID
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: openim-minio-secret
|
||||
key: minio-root-user
|
||||
- name: IMENV_MINIO_SECRETACCESSKEY
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: openim-minio-secret
|
||||
key: minio-root-password
|
||||
- name: IMENV_REDIS_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: openim-redis-secret
|
||||
key: redis-password
|
||||
- name: IMENV_MONGODB_USERNAME
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: openim-mongo-secret
|
||||
key: mongo_openim_username
|
||||
- name: IMENV_MONGODB_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: openim-mongo-secret
|
||||
key: mongo_openim_password
|
||||
volumeMounts:
|
||||
- name: openim-config
|
||||
mountPath: "/config"
|
||||
readOnly: true
|
||||
ports:
|
||||
- containerPort: 10300
|
||||
- containerPort: 12300
|
||||
volumes:
|
||||
- name: openim-config
|
||||
configMap:
|
||||
name: openim-config
|
||||
17
deployments/deploy/openim-rpc-third-service.yml
Normal file
17
deployments/deploy/openim-rpc-third-service.yml
Normal file
@@ -0,0 +1,17 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: third-rpc-service
|
||||
spec:
|
||||
selector:
|
||||
app: third-rpc-server
|
||||
ports:
|
||||
- name: http-10300
|
||||
protocol: TCP
|
||||
port: 10300
|
||||
targetPort: 10300
|
||||
- name: prometheus-12300
|
||||
protocol: TCP
|
||||
port: 12300
|
||||
targetPort: 12300
|
||||
type: ClusterIP
|
||||
63
deployments/deploy/openim-rpc-user-deployment.yml
Normal file
63
deployments/deploy/openim-rpc-user-deployment.yml
Normal file
@@ -0,0 +1,63 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: user-rpc-server
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: user-rpc-server
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: user-rpc-server
|
||||
spec:
|
||||
imagePullSecrets:
|
||||
- name: dockerhub-secret
|
||||
containers:
|
||||
- name: user-rpc-server-container
|
||||
image: mag1666888/openim-rpc-user:prod
|
||||
imagePullPolicy: Always
|
||||
env:
|
||||
- name: CONFIG_PATH
|
||||
value: "/config"
|
||||
- name: IMENV_REDIS_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: openim-redis-secret
|
||||
key: redis-password
|
||||
- name: IMENV_MONGODB_USERNAME
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: openim-mongo-secret
|
||||
key: mongo_openim_username
|
||||
- name: IMENV_MONGODB_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: openim-mongo-secret
|
||||
key: mongo_openim_password
|
||||
- name: IMENV_KAFKA_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: openim-kafka-secret
|
||||
key: kafka-password
|
||||
volumeMounts:
|
||||
- name: openim-config
|
||||
mountPath: "/config"
|
||||
readOnly: true
|
||||
ports:
|
||||
- containerPort: 10320
|
||||
- containerPort: 12320
|
||||
resources:
|
||||
requests:
|
||||
cpu: "200m"
|
||||
memory: "256Mi"
|
||||
ephemeral-storage: "2Gi"
|
||||
limits:
|
||||
cpu: "4000m"
|
||||
memory: "4Gi"
|
||||
ephemeral-storage: "20Gi"
|
||||
volumes:
|
||||
- name: openim-config
|
||||
configMap:
|
||||
name: openim-config
|
||||
17
deployments/deploy/openim-rpc-user-service.yml
Normal file
17
deployments/deploy/openim-rpc-user-service.yml
Normal file
@@ -0,0 +1,17 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: user-rpc-service
|
||||
spec:
|
||||
selector:
|
||||
app: user-rpc-server
|
||||
ports:
|
||||
- name: http-10320
|
||||
protocol: TCP
|
||||
port: 10320
|
||||
targetPort: 10320
|
||||
- name: prometheus-12320
|
||||
protocol: TCP
|
||||
port: 12320
|
||||
targetPort: 12320
|
||||
type: ClusterIP
|
||||
7
deployments/deploy/redis-secret.yml
Normal file
7
deployments/deploy/redis-secret.yml
Normal file
@@ -0,0 +1,7 @@
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: openim-redis-secret
|
||||
type: Opaque
|
||||
data:
|
||||
redis-password: WU9iaEI5S0dwRm9KT3dMc0dPVE1Ub0x6RU56elVYUXM= # "openIM123" in base64
|
||||
15
deployments/deploy/redis-service.yml
Normal file
15
deployments/deploy/redis-service.yml
Normal file
@@ -0,0 +1,15 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: redis-service
|
||||
labels:
|
||||
app: redis
|
||||
spec:
|
||||
type: ClusterIP
|
||||
selector:
|
||||
app: redis
|
||||
ports:
|
||||
- name: redis-port
|
||||
protocol: TCP
|
||||
port: 16379
|
||||
targetPort: 6379
|
||||
55
deployments/deploy/redis-statefulset.yml
Normal file
55
deployments/deploy/redis-statefulset.yml
Normal file
@@ -0,0 +1,55 @@
|
||||
apiVersion: apps/v1
|
||||
kind: StatefulSet
|
||||
metadata:
|
||||
name: redis-statefulset
|
||||
spec:
|
||||
serviceName: "redis"
|
||||
replicas: 2
|
||||
selector:
|
||||
matchLabels:
|
||||
app: redis
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: redis
|
||||
spec:
|
||||
containers:
|
||||
- name: redis
|
||||
image: redis:7.0.0
|
||||
ports:
|
||||
- containerPort: 6379
|
||||
env:
|
||||
- name: TZ
|
||||
value: "Asia/Shanghai"
|
||||
- name: REDIS_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: redis-secret
|
||||
key: redis-password
|
||||
volumeMounts:
|
||||
- name: redis-data
|
||||
mountPath: /data
|
||||
command:
|
||||
[
|
||||
"/bin/sh",
|
||||
"-c",
|
||||
'redis-server --requirepass "$REDIS_PASSWORD" --appendonly yes',
|
||||
]
|
||||
volumes:
|
||||
- name: redis-config-volume
|
||||
configMap:
|
||||
name: openim-config
|
||||
- name: redis-data
|
||||
persistentVolumeClaim:
|
||||
claimName: redis-pvc
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: redis-pvc
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 5Gi
|
||||
Reference in New Issue
Block a user