update deploy/k8s: add 5 mod 8 files

This commit is contained in:
jack ning
2025-08-04 11:26:50 +08:00
parent 0b72903e3a
commit 0b03e3f416
13 changed files with 805 additions and 21 deletions

View File

@@ -486,10 +486,6 @@ services:
# api-docs
SPRINGDOC_API_DOCS_ENABLED: true
SPRINGDOC_API_DOCS_PATH: /v3/api-docs
# knife4j
# http://服务器ip:9003/doc.html
KNIFE4J_ENABLED: true
KNIFE4J_SETTING_LANGUAGE: zh_cn
ports:
- 9003:9003
- 9885:9885

View File

@@ -456,10 +456,6 @@ services:
# api-docs
SPRINGDOC_API_DOCS_ENABLED: "true"
SPRINGDOC_API_DOCS_PATH: /v3/api-docs
# knife4j
# http://服务器ip:9003/doc.html
KNIFE4J_ENABLED: "true"
KNIFE4J_SETTING_LANGUAGE: zh_cn
# 增加数据库连接超时时间
SPRING_DATASOURCE_HIKARI_CONNECTION_TIMEOUT: 60000
SPRING_DATASOURCE_HIKARI_MAXIMUM_POOL_SIZE: 10

View File

@@ -0,0 +1,153 @@
# Bytedesk Kubernetes 依赖服务说明
## 新增的依赖服务
参考 `docker-compose.yaml` 文件,我们为 Kubernetes 部署添加了以下依赖服务:
### 1. Elasticsearch (向量数据库)
- **文件**: `elasticsearch-deployment.yaml`
- **镜像**: `docker.elastic.co/elasticsearch/elasticsearch:8.18.0`
- **端口**: 9200 (HTTP), 9300 (Transport)
- **用途**: 向量数据库用于AI知识库和语义搜索
- **存储**: 10Gi PVC
- **访问**: http://elasticsearch-service:9200
### 2. Artemis (ActiveMQ 消息队列)
- **文件**: `artemis-deployment.yaml`
- **镜像**: `apache/activemq-artemis:latest`
- **端口**:
- 61616 (JMS)
- 61617 (AMQP)
- 8161 (Web Console)
- 5672 (AMQP Alt)
- 61613 (STOMP)
- 1883 (MQTT)
- **用途**: 消息队列,用于异步消息处理
- **存储**: 5Gi PVC
- **Web Console**: http://artemis-service:8161/console
### 3. Zipkin (分布式追踪)
- **文件**: `zipkin-deployment.yaml`
- **镜像**: `openzipkin/zipkin:latest`
- **端口**: 9411 (HTTP)
- **用途**: 分布式追踪系统,用于监控和调试
- **存储**: 1Gi PVC
- **访问**: http://zipkin-service:9411
### 4. MinIO (对象存储)
- **文件**: `minio-deployment.yaml`
- **镜像**: `minio/minio:latest`
- **端口**: 9000 (API), 9001 (Console)
- **用途**: 对象存储服务,用于文件存储
- **存储**: 10Gi PVC
- **API**: http://minio-service:9000
- **Console**: http://minio-service:9001
## 配置更新
### Secret 配置
`secret.yaml` 中添加了以下密钥:
- `elasticsearch-password`: Elasticsearch 密码
- `elasticsearch-username`: Elasticsearch 用户名
- `artemis-username`: Artemis 用户名
- `artemis-password`: Artemis 密码
- `minio-root-user`: MinIO 根用户
- `minio-root-password`: MinIO 根密码
### Bytedesk 应用配置
`bytedesk-deployment.yaml` 中添加了以下环境变量:
#### Zipkin 配置
```yaml
- name: MANAGEMENT_ZIPKIN_TRACING_ENABLED
value: "false"
- name: MANAGEMENT_ZIPKIN_TRACING_ENDPOINT
value: "http://zipkin-service:9411/api/v2/spans"
```
#### MinIO 配置
```yaml
- name: BYTEDESK_MINIO_ENABLED
value: "false"
- name: BYTEDESK_MINIO_ENDPOINT
value: "http://minio-service:9000"
- name: BYTEDESK_MINIO_ACCESS_KEY
valueFrom:
secretKeyRef:
name: bytedesk-secrets
key: minio-root-user
- name: BYTEDESK_MINIO_SECRET_KEY
valueFrom:
secretKeyRef:
name: bytedesk-secrets
key: minio-root-password
- name: BYTEDESK_MINIO_BUCKET_NAME
value: "bytedesk"
- name: BYTEDESK_MINIO_REGION
value: "us-east-1"
- name: BYTEDESK_MINIO_SECURE
value: "false"
```
## 部署顺序
部署脚本 `deploy.sh` 已更新,按以下顺序部署:
1. 创建命名空间
2. 应用密钥配置
3. 清理旧的 PVC
4. 创建新的 PVC
5. 等待 PVC 绑定
6. 部署所有中间件服务
7. 等待中间件就绪
8. 部署 Bytedesk 应用
## 服务访问
### 内部访问
- MySQL: `mysql-service:3306`
- Redis: `redis-service:6379`
- Elasticsearch: `elasticsearch-service:9200`
- Artemis: `artemis-service:61616`
- Zipkin: `zipkin-service:9411`
- MinIO: `minio-service:9000`
### 外部访问
通过 Ingress 或 NodePort 服务暴露到外部。
## 注意事项
1. **资源需求**: 新增服务会增加集群资源消耗,请确保有足够的 CPU 和内存
2. **存储**: 确保有足够的存储空间用于 PVC
3. **网络**: 确保集群内服务间网络通信正常
4. **安全**: 生产环境中请修改默认密码和密钥
5. **监控**: 建议配置监控和日志收集
## 故障排除
### 检查服务状态
```bash
kubectl get pods -n bytedesk
kubectl get svc -n bytedesk
```
### 查看服务日志
```bash
kubectl logs -f deployment/elasticsearch -n bytedesk
kubectl logs -f deployment/artemis -n bytedesk
kubectl logs -f deployment/zipkin -n bytedesk
kubectl logs -f deployment/minio -n bytedesk
```
### 检查 PVC 状态
```bash
kubectl get pvc -n bytedesk
```
### 重启服务
```bash
kubectl rollout restart deployment/elasticsearch -n bytedesk
kubectl rollout restart deployment/artemis -n bytedesk
kubectl rollout restart deployment/zipkin -n bytedesk
kubectl rollout restart deployment/minio -n bytedesk
```

View File

@@ -0,0 +1,117 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: artemis
namespace: bytedesk
labels:
app: artemis
spec:
replicas: 1
selector:
matchLabels:
app: artemis
template:
metadata:
labels:
app: artemis
spec:
containers:
- name: artemis
image: apache/activemq-artemis:latest
ports:
- containerPort: 61616
name: jms
- containerPort: 61617
name: amqp
- containerPort: 8161
name: web-console
- containerPort: 5672
name: amqp-alt
- containerPort: 61613
name: stomp
- containerPort: 1883
name: mqtt
env:
- name: ARTEMIS_USER
valueFrom:
secretKeyRef:
name: bytedesk-secrets
key: artemis-username
- name: ARTEMIS_PASSWORD
valueFrom:
secretKeyRef:
name: bytedesk-secrets
key: artemis-password
- name: ANONYMOUS_LOGIN
value: "false"
- name: EXTRA_ARGS
value: "--http-host 0.0.0.0 --relax-jolokia"
volumeMounts:
- name: artemis-data
mountPath: /var/lib/artemis/data
resources:
requests:
memory: "512Mi"
cpu: "250m"
limits:
memory: "1Gi"
cpu: "500m"
livenessProbe:
httpGet:
path: /console/jolokia/
port: 8161
initialDelaySeconds: 60
periodSeconds: 30
readinessProbe:
httpGet:
path: /console/jolokia/
port: 8161
initialDelaySeconds: 30
periodSeconds: 10
volumes:
- name: artemis-data
persistentVolumeClaim:
claimName: artemis-pvc
---
apiVersion: v1
kind: Service
metadata:
name: artemis-service
namespace: bytedesk
labels:
app: artemis
spec:
selector:
app: artemis
ports:
- name: jms
port: 61616
targetPort: 61616
- name: amqp
port: 61617
targetPort: 61617
- name: web-console
port: 8161
targetPort: 8161
- name: amqp-alt
port: 5672
targetPort: 5672
- name: stomp
port: 61613
targetPort: 61613
- name: mqtt
port: 1883
targetPort: 1883
type: ClusterIP
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: artemis-pvc
namespace: bytedesk
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 5Gi

View File

@@ -75,7 +75,51 @@ spec:
- name: SPRING_JPA_HIBERNATE_DDL_AUTO
value: "update"
# 数据库连接池配置
- name: SPRING_DATASOURCE_HIKARI_CONNECTION_TIMEOUT
value: "60000"
- name: SPRING_DATASOURCE_HIKARI_MAXIMUM_POOL_SIZE
value: "10"
# Druid 配置
- name: SPRING_DATASOURCE_DRUID_STAT_VIEW_SERVLET_LOGIN_USERNAME
value: "admin@email.com"
- name: SPRING_DATASOURCE_DRUID_STAT_VIEW_SERVLET_LOGIN_PASSWORD
value: "admin"
# Actuator 配置
- name: MANAGEMENT_ENDPOINTS_ENABLED_BY_DEFAULT
value: "false"
- name: MANAGEMENT_ENDPOINTS_WEB_EXPOSURE_INCLUDE
value: ""
- name: MANAGEMENT_ENDPOINTS_WEB_EXPOSURE_EXCLUDE
value: "*"
- name: MANAGEMENT_ENDPOINT_HEALTH_ENABLED
value: "false"
- name: MANAGEMENT_ENDPOINT_INFO_ENABLED
value: "false"
- name: MANAGEMENT_ENDPOINTS_WEB_BASE_PATH
value: "/management"
# Spring Security 配置
- name: SPRING_SECURITY_BASIC_ENABLED
value: "true"
# 微信支付配置
- name: WECHAT_PAY_ENABLED
value: "false"
- name: WECHAT_PAY_CERTPATH
value: ""
# 阿里云短信配置
- name: ALIYUN_SMS_SIGNNAME
value: ""
- name: ALIYUN_SMS_TEMPLATECODE
value: ""
# Redis 配置
- name: SPRING_DATA_REDIS_DATABASE
value: "0"
- name: SPRING_DATA_REDIS_HOST
value: "redis-service"
- name: SPRING_DATA_REDIS_PORT
@@ -85,6 +129,92 @@ spec:
secretKeyRef:
name: bytedesk-secrets
key: redis-password
- name: SPRING_DATA_REDIS_TIMEOUT
value: "10000"
- name: SPRING_DATA_REDIS_REPOSITORIES_ENABLED
value: "false"
# 缓存配置
- name: BYTEDESK_CACHE_LEVEL
value: "0"
- name: BYTEDESK_CACHE_PREFIX
value: "bytedeskim"
- name: BYTEDESK_CACHE_REDIS_STREAM_KEY
value: "bytedeskim:stream"
# 上传配置
- name: BYTEDESK_UPLOAD_TYPE
value: "local"
- name: BYTEDESK_UPLOAD_DIR
value: "/app/uploads"
- name: BYTEDESK_UPLOAD_URL
value: "http://127.0.0.1:9003"
# 知识库配置
- name: BYTEDESK_KBASE_THEME
value: "default"
- name: BYTEDESK_KBASE_HTML_PATH
value: "helpcenter"
- name: BYTEDESK_KBASE_API_URL
value: "http://127.0.0.1:9003"
# Socket 配置
- name: BYTEDESK_SOCKET_HOST
value: "0.0.0.0"
- name: BYTEDESK_SOCKET_WEBSOCKET_PORT
value: "9885"
- name: BYTEDESK_SOCKET_LEAK_DETECTOR_LEVEL
value: "SIMPLE"
- name: BYTEDESK_SOCKET_PARENT_EVENT_LOOP_GROUP_THREAD_COUNT
value: "1"
- name: BYTEDESK_SOCKET_CHILD_EVENT_LOOP_GROUP_THREAD_COUNT
value: "8"
- name: BYTEDESK_SOCKET_MAX_PAYLOAD_SIZE
value: "10240"
# 集群配置
- name: BYTEDESK_CLUSTER_ENABLED
value: "false"
# 日志配置
- name: LOGGING_LEVEL_COM_BYTEDESK_AI
value: "DEBUG"
- name: LOGGING_LEVEL_COM_BYTEDESK_CORE
value: "DEBUG"
- name: LOGGING_LEVEL_COM_BYTEDESK_KBASE
value: "DEBUG"
- name: LOGGING_LEVEL_COM_BYTEDESK_SERVICE
value: "DEBUG"
- name: LOGGING_LEVEL_COM_BYTEDESK_SOCIAL
value: "DEBUG"
- name: LOGGING_LEVEL_COM_BYTEDESK_WECHAT
value: "DEBUG"
- name: LOGGING_LEVEL_COM_BYTEDESK_SHOP
value: "DEBUG"
- name: LOGGING_LEVEL_COM_BYTEDESK_TEAM
value: "DEBUG"
- name: LOGGING_LEVEL_COM_BYTEDESK_TICKET
value: "DEBUG"
- name: LOGGING_LEVEL_COM_BYTEDESK_STARTER
value: "DEBUG"
# Swagger 配置
- name: SPRINGDOC_SHOW_ACTUATOR
value: "false"
- name: SPRINGDOC_SWAGGER_UI_ENABLED
value: "true"
- name: SPRINGDOC_SWAGGER_UI_PATH
value: "/index.html"
- name: SPRINGDOC_API_DOCS_ENABLED
value: "true"
- name: SPRINGDOC_API_DOCS_PATH
value: "/v3/api-docs"
# Knife4j 配置
- name: KNIFE4J_ENABLED
value: "true"
- name: KNIFE4J_SETTING_LANGUAGE
value: "zh_cn"
# Elasticsearch 配置
- name: SPRING_ELASTICSEARCH_URIS
@@ -100,7 +230,21 @@ spec:
name: bytedesk-secrets
key: elasticsearch-password
# Elasticsearch 向量存储配置
- name: SPRING_AI_VECTORSTORE_ELASTICSEARCH_ENABLED
value: "true"
- name: SPRING_AI_VECTORSTORE_ELASTICSEARCH_INITIALIZE_SCHEMA
value: "true"
- name: SPRING_AI_VECTORSTORE_ELASTICSEARCH_INDEX_NAME
value: "bytedesk_vs_index"
- name: SPRING_AI_VECTORSTORE_ELASTICSEARCH_DIMENSIONS
value: "1024"
- name: SPRING_AI_VECTORSTORE_ELASTICSEARCH_SIMILARITY
value: "cosine"
# Artemis 配置
- name: SPRING_ARTEMIS_MODE
value: "native"
- name: SPRING_ARTEMIS_BROKER_URL
value: "tcp://artemis-service:61616"
- name: SPRING_ARTEMIS_USER
@@ -114,6 +258,58 @@ spec:
name: bytedesk-secrets
key: artemis-password
# JMS 配置
- name: SPRING_JMS_LISTENER_CONCURRENCY
value: "1"
- name: SPRING_JMS_LISTENER_MAX_CONCURRENCY
value: "10"
- name: SPRING_JMS_LISTENER_ACKNOWLEDGE_MODE
value: "client"
- name: SPRING_JMS_LISTENER_AUTO_STARTUP
value: "true"
- name: SPRING_JMS_LISTENER_MAX_ATTEMPTS
value: "5"
- name: SPRING_JMS_LISTENER_INITIAL_INTERVAL
value: "1000"
- name: SPRING_JMS_LISTENER_MAX_INTERVAL
value: "10000"
- name: SPRING_JMS_LISTENER_MULTIPLIER
value: "2.0"
- name: SPRING_JMS_LISTENER_RECEIVE_TIMEOUT
value: "1000"
- name: SPRING_JMS_LISTENER_MISSING_QUEUES_FATAL
value: "false"
- name: SPRING_ARTEMIS_EMBEDDED_QUEUES
value: "DLQ"
# Zipkin 配置
- name: MANAGEMENT_ZIPKIN_TRACING_ENABLED
value: "false"
- name: MANAGEMENT_ZIPKIN_TRACING_ENDPOINT
value: "http://zipkin-service:9411/api/v2/spans"
# MinIO 配置
- name: BYTEDESK_MINIO_ENABLED
value: "false"
- name: BYTEDESK_MINIO_ENDPOINT
value: "http://minio-service:9000"
- name: BYTEDESK_MINIO_ACCESS_KEY
valueFrom:
secretKeyRef:
name: bytedesk-secrets
key: minio-root-user
- name: BYTEDESK_MINIO_SECRET_KEY
valueFrom:
secretKeyRef:
name: bytedesk-secrets
key: minio-root-password
- name: BYTEDESK_MINIO_BUCKET_NAME
value: "bytedesk"
- name: BYTEDESK_MINIO_REGION
value: "us-east-1"
- name: BYTEDESK_MINIO_SECURE
value: "false"
# AI 配置
- name: SPRING_AI_MODEL_CHAT
value: "zhipuai"

View File

@@ -1,9 +1,6 @@
#!/bin/bash
# 微语系统 Kubernetes 部署脚本
set -e
echo "开始部署微语系统..."
echo "开始部署微语系统(修复版)..."
# 检查 kubectl
if ! command -v kubectl &> /dev/null; then
@@ -19,29 +16,78 @@ kubectl apply -f namespace.yaml
echo "应用密钥配置..."
kubectl apply -f secret.yaml
# 删除旧的 PVC如果存在
echo "清理旧的 PVC..."
kubectl delete pvc mysql-pvc redis-pvc uploads-pvc elasticsearch-pvc artemis-pvc zipkin-pvc minio-pvc -n bytedesk --ignore-not-found=true
# 等待删除完成
sleep 5
# 部署持久化存储
echo "部署持久化存储..."
kubectl apply -f pvc-mysql.yaml
kubectl apply -f pvc-redis.yaml
kubectl apply -f pvc-uploads.yaml
# 等待 PVC 绑定
echo "等待 PVC 绑定..."
kubectl wait --for=condition=bound pvc/mysql-pvc -n bytedesk --timeout=60s
kubectl wait --for=condition=bound pvc/redis-pvc -n bytedesk --timeout=60s
kubectl wait --for=condition=bound pvc/elasticsearch-pvc -n bytedesk --timeout=60s
kubectl wait --for=condition=bound pvc/artemis-pvc -n bytedesk --timeout=60s
kubectl wait --for=condition=bound pvc/zipkin-pvc -n bytedesk --timeout=60s
kubectl wait --for=condition=bound pvc/minio-pvc -n bytedesk --timeout=60s
# 部署中间件
echo "部署中间件..."
kubectl apply -f mysql-deployment.yaml
kubectl apply -f mysql-service.yaml
kubectl apply -f redis-deployment.yaml
kubectl apply -f redis-service.yaml
kubectl apply -f elasticsearch-deployment.yaml
kubectl apply -f artemis-deployment.yaml
kubectl apply -f zipkin-deployment.yaml
kubectl apply -f minio-deployment.yaml
# 等待中间件就绪
# 等待中间件就绪(增加重试机制)
echo "等待中间件就绪..."
kubectl wait --for=condition=ready pod -l app=mysql -n bytedesk --timeout=300s
kubectl wait --for=condition=ready pod -l app=redis -n bytedesk --timeout=300s
for i in {1..10}; do
echo "尝试 $i/10..."
# 检查 Pod 状态
mysql_status=$(kubectl get pods -l app=mysql -n bytedesk -o jsonpath='{.items[0].status.phase}' 2>/dev/null || echo "Unknown")
redis_status=$(kubectl get pods -l app=redis -n bytedesk -o jsonpath='{.items[0].status.phase}' 2>/dev/null || echo "Unknown")
elasticsearch_status=$(kubectl get pods -l app=elasticsearch -n bytedesk -o jsonpath='{.items[0].status.phase}' 2>/dev/null || echo "Unknown")
artemis_status=$(kubectl get pods -l app=artemis -n bytedesk -o jsonpath='{.items[0].status.phase}' 2>/dev/null || echo "Unknown")
zipkin_status=$(kubectl get pods -l app=zipkin -n bytedesk -o jsonpath='{.items[0].status.phase}' 2>/dev/null || echo "Unknown")
minio_status=$(kubectl get pods -l app=minio -n bytedesk -o jsonpath='{.items[0].status.phase}' 2>/dev/null || echo "Unknown")
echo "MySQL 状态: $mysql_status"
echo "Redis 状态: $redis_status"
echo "Elasticsearch 状态: $elasticsearch_status"
echo "Artemis 状态: $artemis_status"
echo "Zipkin 状态: $zipkin_status"
echo "MinIO 状态: $minio_status"
if [[ "$mysql_status" == "Running" && "$redis_status" == "Running" && "$elasticsearch_status" == "Running" && "$artemis_status" == "Running" && "$zipkin_status" == "Running" && "$minio_status" == "Running" ]]; then
echo "中间件启动成功!"
break
fi
if [[ $i -eq 10 ]]; then
echo "警告: 中间件启动超时,继续部署主应用..."
else
sleep 30
fi
done
# 部署微语应用
echo "部署微语应用..."
kubectl apply -f configmap.yaml
kubectl apply -f bytedesk-deployment.yaml
kubectl apply -f bytedesk-service.yaml
echo "部署完成!"
echo "查看状态: kubectl get pods -n bytedesk"
echo "查看服务: kubectl get svc -n bytedesk"
echo "查看服务: kubectl get svc -n bytedesk"
echo "查看日志: kubectl logs -f deployment/mysql -n bytedesk"

View File

@@ -0,0 +1,104 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: elasticsearch
namespace: bytedesk
labels:
app: elasticsearch
spec:
replicas: 1
selector:
matchLabels:
app: elasticsearch
template:
metadata:
labels:
app: elasticsearch
spec:
containers:
- name: elasticsearch
image: docker.elastic.co/elasticsearch/elasticsearch:8.18.0
ports:
- containerPort: 9200
name: http
- containerPort: 9300
name: transport
env:
- name: node.name
value: "bytedesk-es01"
- name: cluster.name
value: "bytedesk-es-cluster"
- name: discovery.type
value: "single-node"
- name: bootstrap.memory_lock
value: "true"
- name: ES_JAVA_OPTS
value: "-Xms512m -Xmx512m"
- name: xpack.security.enabled
value: "true"
- name: ELASTIC_PASSWORD
valueFrom:
secretKeyRef:
name: bytedesk-secrets
key: elasticsearch-password
volumeMounts:
- name: elasticsearch-data
mountPath: /usr/share/elasticsearch/data
resources:
requests:
memory: "1Gi"
cpu: "500m"
limits:
memory: "2Gi"
cpu: "1000m"
securityContext:
capabilities:
add:
- IPC_LOCK
livenessProbe:
httpGet:
path: /_cluster/health
port: 9200
initialDelaySeconds: 60
periodSeconds: 30
readinessProbe:
httpGet:
path: /_cluster/health
port: 9200
initialDelaySeconds: 30
periodSeconds: 10
volumes:
- name: elasticsearch-data
persistentVolumeClaim:
claimName: elasticsearch-pvc
---
apiVersion: v1
kind: Service
metadata:
name: elasticsearch-service
namespace: bytedesk
labels:
app: elasticsearch
spec:
selector:
app: elasticsearch
ports:
- name: http
port: 9200
targetPort: 9200
- name: transport
port: 9300
targetPort: 9300
type: ClusterIP
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: elasticsearch-pvc
namespace: bytedesk
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi

View File

@@ -0,0 +1,99 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: minio
namespace: bytedesk
labels:
app: minio
spec:
replicas: 1
selector:
matchLabels:
app: minio
template:
metadata:
labels:
app: minio
spec:
containers:
- name: minio
image: minio/minio:latest
ports:
- containerPort: 9000
name: api
- containerPort: 9001
name: console
env:
- name: MINIO_ROOT_USER
valueFrom:
secretKeyRef:
name: bytedesk-secrets
key: minio-root-user
- name: MINIO_ROOT_PASSWORD
valueFrom:
secretKeyRef:
name: bytedesk-secrets
key: minio-root-password
- name: TZ
value: "Asia/Shanghai"
command:
- /bin/bash
- -c
- minio server /data --console-address ":9001"
volumeMounts:
- name: minio-data
mountPath: /data
resources:
requests:
memory: "256Mi"
cpu: "100m"
limits:
memory: "512Mi"
cpu: "250m"
livenessProbe:
httpGet:
path: /minio/health/live
port: 9000
initialDelaySeconds: 30
periodSeconds: 30
readinessProbe:
httpGet:
path: /minio/health/ready
port: 9000
initialDelaySeconds: 10
periodSeconds: 10
volumes:
- name: minio-data
persistentVolumeClaim:
claimName: minio-pvc
---
apiVersion: v1
kind: Service
metadata:
name: minio-service
namespace: bytedesk
labels:
app: minio
spec:
selector:
app: minio
ports:
- name: api
port: 9000
targetPort: 9000
- name: console
port: 9001
targetPort: 9001
type: ClusterIP
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: minio-pvc
namespace: bytedesk
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi

View File

@@ -9,4 +9,4 @@ spec:
resources:
requests:
storage: 20Gi
storageClassName: "" # 使用默认存储类,请根据实际情况修改
storageClassName: "standard" # 使用默认存储类

View File

@@ -9,4 +9,4 @@ spec:
resources:
requests:
storage: 5Gi
storageClassName: "" # 使用默认存储类,请根据实际情况修改
storageClassName: "standard" # 使用默认存储类

View File

@@ -9,4 +9,4 @@ spec:
resources:
requests:
storage: 50Gi
storageClassName: "" # 使用默认存储类,请根据实际情况修改
storageClassName: "standard" # 使用默认存储类

View File

@@ -21,8 +21,8 @@ data:
jwt-secret-key: MWRmYWY4ZDAwNDIwN2I2MjhhOWE2Yjg1OWM0MjlmNDlhOWE3ZWFkOWZkODE2MWMxZTYwODQ3YWVlZjA2ZGJkMg== # 1dfaf8d004207b628a9a6b859c429f49a9a7ead9fd8161c1e60847aeef06dbd2
# MinIO 配置 (base64 encoded)
minio-access-key: bWluaW9hZG1pbg== # minioadmin
minio-secret-key: bWluaW9hZG1pbjEyMw== # minioadmin123
minio-root-user: bWluaW9hZG1pbg== # minioadmin
minio-root-password: bWluaW9hZG1pbjEyMw== # minioadmin123
# Artemis 配置 (base64 encoded)
artemis-username: YWRtaW4= # admin

View File

@@ -0,0 +1,77 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: zipkin
namespace: bytedesk
labels:
app: zipkin
spec:
replicas: 1
selector:
matchLabels:
app: zipkin
template:
metadata:
labels:
app: zipkin
spec:
containers:
- name: zipkin
image: openzipkin/zipkin:latest
ports:
- containerPort: 9411
name: http
volumeMounts:
- name: zipkin-data
mountPath: /data
resources:
requests:
memory: "256Mi"
cpu: "100m"
limits:
memory: "512Mi"
cpu: "250m"
livenessProbe:
httpGet:
path: /health
port: 9411
initialDelaySeconds: 30
periodSeconds: 30
readinessProbe:
httpGet:
path: /health
port: 9411
initialDelaySeconds: 10
periodSeconds: 10
volumes:
- name: zipkin-data
persistentVolumeClaim:
claimName: zipkin-pvc
---
apiVersion: v1
kind: Service
metadata:
name: zipkin-service
namespace: bytedesk
labels:
app: zipkin
spec:
selector:
app: zipkin
ports:
- name: http
port: 9411
targetPort: 9411
type: ClusterIP
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: zipkin-pvc
namespace: bytedesk
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi