add redis rocketmq xxljob
This commit is contained in:
parent
1611120b20
commit
b0079fbb31
|
|
@ -29,5 +29,5 @@ kubectl get svc nacos -n default
|
||||||
kubectl get ingress nacos-ingress -n default
|
kubectl get ingress nacos-ingress -n default
|
||||||
|
|
||||||
echo "Nacos 安装完成!"
|
echo "Nacos 安装完成!"
|
||||||
echo "访问地址: https://nacos-ops.t-aaron.com"
|
echo "访问地址: https://nacos-ops.t-aaron.com/nacos"
|
||||||
echo "默认用户名/密码: nacos/nacos"
|
echo "默认用户名/密码: nacos/nacos"
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,118 @@
|
||||||
|
# Redis 安装指南
|
||||||
|
|
||||||
|
本目录包含在 Kubernetes 集群中安装 Redis 的配置文件。
|
||||||
|
|
||||||
|
## 文件说明
|
||||||
|
|
||||||
|
- `install-redis.sh` - Redis 安装脚本
|
||||||
|
- `redis-deployment.yaml` - Redis Deployment 配置
|
||||||
|
- `redis-service.yaml` - Redis Service 配置
|
||||||
|
- `redis-configmap.yaml` - Redis 配置文件
|
||||||
|
|
||||||
|
## 安装步骤
|
||||||
|
|
||||||
|
1. 确保 kubectl 已安装并配置好集群连接
|
||||||
|
2. 运行安装脚本:
|
||||||
|
```bash
|
||||||
|
chmod +x install-redis.sh
|
||||||
|
./install-redis.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
## 配置说明
|
||||||
|
|
||||||
|
### Redis 配置
|
||||||
|
- **端口**: 6379
|
||||||
|
- **密码**: redis123
|
||||||
|
- **内存限制**: 512Mi
|
||||||
|
- **持久化**: 启用 RDB 和 AOF
|
||||||
|
- **数据目录**: /data
|
||||||
|
|
||||||
|
### 服务访问
|
||||||
|
- **集群内访问**: `redis.default.svc.cluster.local:6379`
|
||||||
|
- **密码**: redis123
|
||||||
|
|
||||||
|
## 使用示例
|
||||||
|
|
||||||
|
### 连接 Redis
|
||||||
|
```bash
|
||||||
|
# 获取 Redis Pod 名称
|
||||||
|
kubectl get pods -l app=redis
|
||||||
|
|
||||||
|
# 连接到 Redis
|
||||||
|
kubectl exec -it <redis-pod-name> -n default -- redis-cli -a redis123
|
||||||
|
```
|
||||||
|
|
||||||
|
### 基本操作
|
||||||
|
```bash
|
||||||
|
# 设置键值
|
||||||
|
SET mykey "Hello Redis"
|
||||||
|
|
||||||
|
# 获取值
|
||||||
|
GET mykey
|
||||||
|
|
||||||
|
# 查看所有键
|
||||||
|
KEYS *
|
||||||
|
|
||||||
|
# 查看 Redis 信息
|
||||||
|
INFO
|
||||||
|
```
|
||||||
|
|
||||||
|
### 从应用连接
|
||||||
|
```yaml
|
||||||
|
# 在应用的配置中使用
|
||||||
|
redis:
|
||||||
|
host: redis.default.svc.cluster.local
|
||||||
|
port: 6379
|
||||||
|
password: redis123
|
||||||
|
```
|
||||||
|
|
||||||
|
## 监控和维护
|
||||||
|
|
||||||
|
### 查看 Redis 状态
|
||||||
|
```bash
|
||||||
|
kubectl get pods -l app=redis
|
||||||
|
kubectl logs <redis-pod-name>
|
||||||
|
```
|
||||||
|
|
||||||
|
### 查看 Redis 信息
|
||||||
|
```bash
|
||||||
|
kubectl exec -it <redis-pod-name> -- redis-cli -a redis123 INFO
|
||||||
|
```
|
||||||
|
|
||||||
|
### 备份数据
|
||||||
|
```bash
|
||||||
|
# 创建快照
|
||||||
|
kubectl exec -it <redis-pod-name> -- redis-cli -a redis123 BGSAVE
|
||||||
|
|
||||||
|
# 查看备份文件
|
||||||
|
kubectl exec -it <redis-pod-name> -- ls -la /data/
|
||||||
|
```
|
||||||
|
|
||||||
|
## 故障排除
|
||||||
|
|
||||||
|
### 常见问题
|
||||||
|
|
||||||
|
1. **Pod 启动失败**
|
||||||
|
- 检查资源限制
|
||||||
|
- 查看 Pod 日志:`kubectl logs <pod-name>`
|
||||||
|
|
||||||
|
2. **连接被拒绝**
|
||||||
|
- 检查 Service 配置
|
||||||
|
- 验证网络策略
|
||||||
|
|
||||||
|
3. **内存不足**
|
||||||
|
- 调整 maxmemory 配置
|
||||||
|
- 增加 Pod 内存限制
|
||||||
|
|
||||||
|
### 日志查看
|
||||||
|
```bash
|
||||||
|
kubectl logs -f <redis-pod-name>
|
||||||
|
```
|
||||||
|
|
||||||
|
## 生产环境建议
|
||||||
|
|
||||||
|
1. **持久化存储**: 使用 PersistentVolume 替代 emptyDir
|
||||||
|
2. **高可用**: 考虑 Redis Sentinel 或 Redis Cluster
|
||||||
|
3. **监控**: 集成 Prometheus 监控
|
||||||
|
4. **备份**: 定期备份 RDB 和 AOF 文件
|
||||||
|
5. **安全**: 使用强密码和网络策略
|
||||||
|
|
@ -0,0 +1,50 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
echo "开始安装 Redis 到 Kubernetes 集群..."
|
||||||
|
|
||||||
|
# 检查 kubectl 是否可用
|
||||||
|
if ! command -v kubectl &> /dev/null; then
|
||||||
|
echo "错误: kubectl 命令未找到,请先安装 kubectl"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 应用 Redis 配置
|
||||||
|
echo "应用 Redis ConfigMap..."
|
||||||
|
kubectl apply -f redis-configmap.yaml
|
||||||
|
|
||||||
|
echo "应用 Redis Deployment..."
|
||||||
|
kubectl apply -f redis-deployment.yaml
|
||||||
|
|
||||||
|
echo "应用 Redis Service..."
|
||||||
|
kubectl apply -f redis-service.yaml
|
||||||
|
|
||||||
|
# 等待 Pod 启动
|
||||||
|
echo "等待 Redis Pod 启动..."
|
||||||
|
kubectl wait --for=condition=ready pod -l app=redis -n default --timeout=300s
|
||||||
|
|
||||||
|
# 检查状态
|
||||||
|
echo "检查 Redis 部署状态..."
|
||||||
|
kubectl get pods -l app=redis -n default
|
||||||
|
kubectl get svc redis -n default
|
||||||
|
|
||||||
|
# 测试 Redis 连接
|
||||||
|
echo "测试 Redis 连接..."
|
||||||
|
REDIS_POD=$(kubectl get pods -l app=redis -n default -o jsonpath='{.items[0].metadata.name}')
|
||||||
|
if [ ! -z "$REDIS_POD" ]; then
|
||||||
|
echo "在 Pod $REDIS_POD 中测试 Redis..."
|
||||||
|
kubectl exec -it $REDIS_POD -n default -- redis-cli ping
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
echo "Redis 连接测试成功!"
|
||||||
|
else
|
||||||
|
echo "Redis 连接测试失败!"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Redis 安装完成!"
|
||||||
|
echo "Redis 服务地址: redis.default.svc.cluster.local:6379"
|
||||||
|
echo "默认密码: redis123"
|
||||||
|
echo ""
|
||||||
|
echo "使用示例:"
|
||||||
|
echo "kubectl exec -it <redis-pod-name> -n default -- redis-cli -a redis123"
|
||||||
|
echo ""
|
||||||
|
echo "注意: 请确保已正确配置 Redis 密码和持久化存储"
|
||||||
|
|
@ -0,0 +1,61 @@
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: redis-config
|
||||||
|
namespace: default
|
||||||
|
labels:
|
||||||
|
app: redis
|
||||||
|
data:
|
||||||
|
redis.conf: |
|
||||||
|
# Redis 配置文件
|
||||||
|
|
||||||
|
# 网络配置
|
||||||
|
bind 0.0.0.0
|
||||||
|
port 6379
|
||||||
|
timeout 300
|
||||||
|
tcp-keepalive 60
|
||||||
|
|
||||||
|
# 安全配置
|
||||||
|
requirepass redis123
|
||||||
|
|
||||||
|
# 持久化配置
|
||||||
|
save 900 1
|
||||||
|
save 300 10
|
||||||
|
save 60 10000
|
||||||
|
|
||||||
|
# RDB 配置
|
||||||
|
rdbcompression yes
|
||||||
|
rdbchecksum yes
|
||||||
|
dbfilename dump.rdb
|
||||||
|
dir /data
|
||||||
|
|
||||||
|
# AOF 配置
|
||||||
|
appendonly yes
|
||||||
|
appendfilename "appendonly.aof"
|
||||||
|
appendfsync everysec
|
||||||
|
no-appendfsync-on-rewrite no
|
||||||
|
auto-aof-rewrite-percentage 100
|
||||||
|
auto-aof-rewrite-min-size 64mb
|
||||||
|
|
||||||
|
# 内存配置
|
||||||
|
maxmemory 256mb
|
||||||
|
maxmemory-policy allkeys-lru
|
||||||
|
|
||||||
|
# 日志配置
|
||||||
|
loglevel notice
|
||||||
|
logfile ""
|
||||||
|
|
||||||
|
# 其他配置
|
||||||
|
daemonize no
|
||||||
|
supervised no
|
||||||
|
pidfile /var/run/redis_6379.pid
|
||||||
|
|
||||||
|
# 客户端配置
|
||||||
|
maxclients 10000
|
||||||
|
|
||||||
|
# 慢查询日志
|
||||||
|
slowlog-log-slower-than 10000
|
||||||
|
slowlog-max-len 128
|
||||||
|
|
||||||
|
# 延迟监控
|
||||||
|
latency-monitor-threshold 100
|
||||||
|
|
@ -0,0 +1,70 @@
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: redis
|
||||||
|
namespace: default
|
||||||
|
labels:
|
||||||
|
app: redis
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: redis
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: redis
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: redis
|
||||||
|
image: registry.t-aaron.com/redis:7.2-alpine
|
||||||
|
ports:
|
||||||
|
- containerPort: 6379
|
||||||
|
name: redis
|
||||||
|
command:
|
||||||
|
- redis-server
|
||||||
|
- /etc/redis/redis.conf
|
||||||
|
env:
|
||||||
|
- name: REDIS_PASSWORD
|
||||||
|
value: "redis123"
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
memory: "256Mi"
|
||||||
|
cpu: "100m"
|
||||||
|
limits:
|
||||||
|
memory: "512Mi"
|
||||||
|
cpu: "200m"
|
||||||
|
livenessProbe:
|
||||||
|
exec:
|
||||||
|
command:
|
||||||
|
- redis-cli
|
||||||
|
- -a
|
||||||
|
- redis123
|
||||||
|
- ping
|
||||||
|
initialDelaySeconds: 30
|
||||||
|
periodSeconds: 10
|
||||||
|
timeoutSeconds: 5
|
||||||
|
failureThreshold: 3
|
||||||
|
readinessProbe:
|
||||||
|
exec:
|
||||||
|
command:
|
||||||
|
- redis-cli
|
||||||
|
- -a
|
||||||
|
- redis123
|
||||||
|
- ping
|
||||||
|
initialDelaySeconds: 5
|
||||||
|
periodSeconds: 5
|
||||||
|
timeoutSeconds: 3
|
||||||
|
failureThreshold: 3
|
||||||
|
volumeMounts:
|
||||||
|
- name: redis-config
|
||||||
|
mountPath: /etc/redis
|
||||||
|
- name: redis-data
|
||||||
|
mountPath: /data
|
||||||
|
volumes:
|
||||||
|
- name: redis-config
|
||||||
|
configMap:
|
||||||
|
name: redis-config
|
||||||
|
- name: redis-data
|
||||||
|
emptyDir: {}
|
||||||
|
restartPolicy: Always
|
||||||
|
|
@ -0,0 +1,16 @@
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: redis
|
||||||
|
namespace: default
|
||||||
|
labels:
|
||||||
|
app: redis
|
||||||
|
spec:
|
||||||
|
type: ClusterIP
|
||||||
|
ports:
|
||||||
|
- name: redis
|
||||||
|
port: 6379
|
||||||
|
targetPort: 6379
|
||||||
|
protocol: TCP
|
||||||
|
selector:
|
||||||
|
app: redis
|
||||||
|
|
@ -0,0 +1,216 @@
|
||||||
|
# RocketMQ 安装指南
|
||||||
|
|
||||||
|
本目录包含在 Kubernetes 集群中安装 RocketMQ 的配置文件。
|
||||||
|
|
||||||
|
## 文件说明
|
||||||
|
|
||||||
|
- `install-rocketmq.sh` - RocketMQ 安装脚本
|
||||||
|
- `rocketmq-nameserver-deployment.yaml` - NameServer Deployment 配置
|
||||||
|
- `rocketmq-broker-deployment.yaml` - Broker Deployment 配置
|
||||||
|
- `rocketmq-nameserver-service.yaml` - NameServer Service 配置
|
||||||
|
- `rocketmq-broker-service.yaml` - Broker Service 配置
|
||||||
|
- `rocketmq-configmap.yaml` - RocketMQ 配置文件
|
||||||
|
|
||||||
|
## RocketMQ 架构
|
||||||
|
|
||||||
|
RocketMQ 由两个核心组件组成:
|
||||||
|
|
||||||
|
### 1. NameServer
|
||||||
|
- **作用**: 注册中心,管理 Broker 和 Topic 的路由信息
|
||||||
|
- **端口**: 9876
|
||||||
|
- **服务地址**: `rocketmq-nameserver.default.svc.cluster.local:9876`
|
||||||
|
|
||||||
|
### 2. Broker
|
||||||
|
- **作用**: 消息存储和转发
|
||||||
|
- **端口**: 10911 (主端口), 10912 (VIP端口)
|
||||||
|
- **服务地址**: `rocketmq-broker.default.svc.cluster.local:10911`
|
||||||
|
|
||||||
|
## 安装步骤
|
||||||
|
|
||||||
|
1. 确保 kubectl 已安装并配置好集群连接
|
||||||
|
2. 运行安装脚本:
|
||||||
|
```bash
|
||||||
|
chmod +x install-rocketmq.sh
|
||||||
|
./install-rocketmq.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
## 配置说明
|
||||||
|
|
||||||
|
### 镜像配置
|
||||||
|
- **NameServer**: `registry.t-aaron.com/apache/rocketmq:4.9.7`
|
||||||
|
- **Broker**: `registry.t-aaron.com/apache/rocketmq:4.9.7`
|
||||||
|
|
||||||
|
### 资源限制
|
||||||
|
- **NameServer**: 512Mi-1Gi 内存, 200m-500m CPU
|
||||||
|
- **Broker**: 1Gi-2Gi 内存, 300m-1000m CPU
|
||||||
|
|
||||||
|
### 存储配置
|
||||||
|
- **日志目录**: `/opt/rocketmq-4.9.7/logs`
|
||||||
|
- **数据目录**: `/opt/rocketmq-4.9.7/store`
|
||||||
|
- **配置目录**: `/opt/rocketmq-4.9.7/conf`
|
||||||
|
|
||||||
|
## 使用示例
|
||||||
|
|
||||||
|
### 查看服务状态
|
||||||
|
```bash
|
||||||
|
# 查看 NameServer Pod
|
||||||
|
kubectl get pods -l app=rocketmq-nameserver
|
||||||
|
|
||||||
|
# 查看 Broker Pod
|
||||||
|
kubectl get pods -l app=rocketmq-broker
|
||||||
|
|
||||||
|
# 查看服务
|
||||||
|
kubectl get svc -l app=rocketmq
|
||||||
|
```
|
||||||
|
|
||||||
|
### 查看日志
|
||||||
|
```bash
|
||||||
|
# NameServer 日志
|
||||||
|
kubectl logs -f <nameserver-pod-name>
|
||||||
|
|
||||||
|
# Broker 日志
|
||||||
|
kubectl logs -f <broker-pod-name>
|
||||||
|
```
|
||||||
|
|
||||||
|
### 进入容器
|
||||||
|
```bash
|
||||||
|
# 进入 NameServer 容器
|
||||||
|
kubectl exec -it <nameserver-pod-name> -- sh
|
||||||
|
|
||||||
|
# 进入 Broker 容器
|
||||||
|
kubectl exec -it <broker-pod-name> -- sh
|
||||||
|
```
|
||||||
|
|
||||||
|
### 测试连接
|
||||||
|
```bash
|
||||||
|
# 测试 NameServer 连接
|
||||||
|
kubectl exec -it <nameserver-pod-name> -- netstat -tlnp | grep 9876
|
||||||
|
|
||||||
|
# 测试 Broker 连接
|
||||||
|
kubectl exec -it <broker-pod-name> -- netstat -tlnp | grep 10911
|
||||||
|
```
|
||||||
|
|
||||||
|
## 应用集成
|
||||||
|
|
||||||
|
### Java 应用配置
|
||||||
|
```properties
|
||||||
|
# application.properties
|
||||||
|
rocketmq.name-server=rocketmq-nameserver.default.svc.cluster.local:9876
|
||||||
|
rocketmq.producer.group=producer-group
|
||||||
|
rocketmq.consumer.group=consumer-group
|
||||||
|
```
|
||||||
|
|
||||||
|
### Spring Boot 集成
|
||||||
|
```xml
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.rocketmq</groupId>
|
||||||
|
<artifactId>rocketmq-spring-boot-starter</artifactId>
|
||||||
|
<version>2.2.3</version>
|
||||||
|
</dependency>
|
||||||
|
```
|
||||||
|
|
||||||
|
```java
|
||||||
|
@RestController
|
||||||
|
public class MessageController {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private RocketMQTemplate rocketMQTemplate;
|
||||||
|
|
||||||
|
@PostMapping("/send")
|
||||||
|
public String sendMessage(@RequestParam String message) {
|
||||||
|
rocketMQTemplate.convertAndSend("test-topic", message);
|
||||||
|
return "Message sent: " + message;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## 监控和维护
|
||||||
|
|
||||||
|
### 健康检查
|
||||||
|
```bash
|
||||||
|
# 检查 NameServer 健康状态
|
||||||
|
kubectl get pods -l app=rocketmq-nameserver -o wide
|
||||||
|
|
||||||
|
# 检查 Broker 健康状态
|
||||||
|
kubectl get pods -l app=rocketmq-broker -o wide
|
||||||
|
```
|
||||||
|
|
||||||
|
### 性能监控
|
||||||
|
```bash
|
||||||
|
# 查看资源使用情况
|
||||||
|
kubectl top pods -l app=rocketmq
|
||||||
|
|
||||||
|
# 查看详细资源信息
|
||||||
|
kubectl describe pods -l app=rocketmq
|
||||||
|
```
|
||||||
|
|
||||||
|
### 数据备份
|
||||||
|
```bash
|
||||||
|
# 备份 Broker 数据
|
||||||
|
kubectl exec -it <broker-pod-name> -- tar -czf /tmp/rocketmq-backup.tar.gz /opt/rocketmq-4.9.7/store
|
||||||
|
|
||||||
|
# 复制备份文件到本地
|
||||||
|
kubectl cp <broker-pod-name>:/tmp/rocketmq-backup.tar.gz ./rocketmq-backup.tar.gz
|
||||||
|
```
|
||||||
|
|
||||||
|
## 故障排除
|
||||||
|
|
||||||
|
### 常见问题
|
||||||
|
|
||||||
|
1. **NameServer 启动失败**
|
||||||
|
- 检查内存配置
|
||||||
|
- 查看启动日志
|
||||||
|
- 验证端口占用
|
||||||
|
|
||||||
|
2. **Broker 连接 NameServer 失败**
|
||||||
|
- 检查网络连接
|
||||||
|
- 验证 NameServer 地址配置
|
||||||
|
- 查看 Broker 日志
|
||||||
|
|
||||||
|
3. **消息发送失败**
|
||||||
|
- 检查 Topic 是否存在
|
||||||
|
- 验证 Producer 配置
|
||||||
|
- 查看 Broker 状态
|
||||||
|
|
||||||
|
4. **消息消费失败**
|
||||||
|
- 检查 Consumer 配置
|
||||||
|
- 验证 Topic 和 Tag 配置
|
||||||
|
- 查看消费日志
|
||||||
|
|
||||||
|
### 日志分析
|
||||||
|
```bash
|
||||||
|
# 查看错误日志
|
||||||
|
kubectl logs <pod-name> | grep ERROR
|
||||||
|
|
||||||
|
# 查看警告日志
|
||||||
|
kubectl logs <pod-name> | grep WARN
|
||||||
|
|
||||||
|
# 实时查看日志
|
||||||
|
kubectl logs -f <pod-name>
|
||||||
|
```
|
||||||
|
|
||||||
|
## 生产环境建议
|
||||||
|
|
||||||
|
1. **高可用部署**: 部署多个 NameServer 和 Broker 实例
|
||||||
|
2. **持久化存储**: 使用 PersistentVolume 替代 emptyDir
|
||||||
|
3. **资源监控**: 集成 Prometheus 和 Grafana 监控
|
||||||
|
4. **日志管理**: 配置日志收集和分析
|
||||||
|
5. **安全配置**: 启用 ACL 和网络策略
|
||||||
|
6. **备份策略**: 定期备份消息数据
|
||||||
|
7. **性能调优**: 根据业务需求调整 JVM 参数
|
||||||
|
|
||||||
|
## 扩展功能
|
||||||
|
|
||||||
|
### 管理控制台
|
||||||
|
可以部署 RocketMQ Console 来管理消息队列:
|
||||||
|
```bash
|
||||||
|
# 部署 Console
|
||||||
|
kubectl apply -f rocketmq-console-deployment.yaml
|
||||||
|
kubectl apply -f rocketmq-console-service.yaml
|
||||||
|
```
|
||||||
|
|
||||||
|
### 集群部署
|
||||||
|
对于生产环境,建议部署 RocketMQ 集群:
|
||||||
|
- 多个 NameServer 实例
|
||||||
|
- 多个 Broker 实例(Master-Slave)
|
||||||
|
- 负载均衡配置
|
||||||
|
|
@ -0,0 +1,65 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
echo "开始安装 RocketMQ 到 Kubernetes 集群..."
|
||||||
|
|
||||||
|
# 检查 kubectl 是否可用
|
||||||
|
if ! command -v kubectl &> /dev/null; then
|
||||||
|
echo "错误: kubectl 命令未找到,请先安装 kubectl"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 应用 RocketMQ 配置
|
||||||
|
echo "应用 RocketMQ ConfigMap..."
|
||||||
|
kubectl apply -f rocketmq-configmap.yaml
|
||||||
|
|
||||||
|
echo "应用 RocketMQ NameServer Deployment..."
|
||||||
|
kubectl apply -f rocketmq-nameserver-deployment.yaml
|
||||||
|
|
||||||
|
echo "应用 RocketMQ NameServer Service..."
|
||||||
|
kubectl apply -f rocketmq-nameserver-service.yaml
|
||||||
|
|
||||||
|
echo "应用 RocketMQ Broker Deployment..."
|
||||||
|
kubectl apply -f rocketmq-broker-deployment.yaml
|
||||||
|
|
||||||
|
echo "应用 RocketMQ Broker Service..."
|
||||||
|
kubectl apply -f rocketmq-broker-service.yaml
|
||||||
|
|
||||||
|
# 等待 Pod 启动
|
||||||
|
echo "等待 RocketMQ NameServer Pod 启动..."
|
||||||
|
kubectl wait --for=condition=ready pod -l app=rocketmq-nameserver -n default --timeout=300s
|
||||||
|
|
||||||
|
echo "等待 RocketMQ Broker Pod 启动..."
|
||||||
|
kubectl wait --for=condition=ready pod -l app=rocketmq-broker -n default --timeout=300s
|
||||||
|
|
||||||
|
# 检查状态
|
||||||
|
echo "检查 RocketMQ 部署状态..."
|
||||||
|
echo "=== NameServer Pods ==="
|
||||||
|
kubectl get pods -l app=rocketmq-nameserver -n default
|
||||||
|
echo "=== Broker Pods ==="
|
||||||
|
kubectl get pods -l app=rocketmq-broker -n default
|
||||||
|
echo "=== Services ==="
|
||||||
|
kubectl get svc -l app=rocketmq -n default
|
||||||
|
|
||||||
|
# 测试 RocketMQ 连接
|
||||||
|
echo "测试 RocketMQ NameServer 连接..."
|
||||||
|
NAMESERVER_POD=$(kubectl get pods -l app=rocketmq-nameserver -n default -o jsonpath='{.items[0].metadata.name}')
|
||||||
|
if [ ! -z "$NAMESERVER_POD" ]; then
|
||||||
|
echo "在 Pod $NAMESERVER_POD 中测试 NameServer..."
|
||||||
|
kubectl exec -it $NAMESERVER_POD -n default -- sh -c "netstat -tlnp | grep 9876"
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
echo "RocketMQ NameServer 连接测试成功!"
|
||||||
|
else
|
||||||
|
echo "RocketMQ NameServer 连接测试失败!"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "RocketMQ 安装完成!"
|
||||||
|
echo "NameServer 地址: rocketmq-nameserver.default.svc.cluster.local:9876"
|
||||||
|
echo "Broker 地址: rocketmq-broker.default.svc.cluster.local:10911"
|
||||||
|
echo ""
|
||||||
|
echo "使用示例:"
|
||||||
|
echo "1. 查看 NameServer 日志: kubectl logs -f <nameserver-pod-name> -n default"
|
||||||
|
echo "2. 查看 Broker 日志: kubectl logs -f <broker-pod-name> -n default"
|
||||||
|
echo "3. 进入 NameServer 容器: kubectl exec -it <nameserver-pod-name> -n default -- sh"
|
||||||
|
echo ""
|
||||||
|
echo "注意: 请确保已正确配置 RocketMQ 的存储和网络策略"
|
||||||
|
|
@ -0,0 +1,57 @@
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: rocketmq-broker
|
||||||
|
namespace: default
|
||||||
|
labels:
|
||||||
|
app: rocketmq-broker
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: rocketmq-broker
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: rocketmq-broker
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: rocketmq-broker
|
||||||
|
image: registry.t-aaron.com/apache/rocketmq:5.3.2
|
||||||
|
command:
|
||||||
|
- sh
|
||||||
|
- mqbroker
|
||||||
|
ports:
|
||||||
|
- containerPort: 10909
|
||||||
|
name: broker-admin
|
||||||
|
- containerPort: 10911
|
||||||
|
name: broker
|
||||||
|
- containerPort: 10912
|
||||||
|
name: broker-vip
|
||||||
|
env:
|
||||||
|
- name: JAVA_OPT_EXT
|
||||||
|
value: "-Xms1g -Xmx1g -Xmn512m"
|
||||||
|
- name: NAMESRV_ADDR
|
||||||
|
value: "rocketmq-nameserver:9876"
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
memory: "1Gi"
|
||||||
|
cpu: "300m"
|
||||||
|
limits:
|
||||||
|
memory: "2Gi"
|
||||||
|
cpu: "1000m"
|
||||||
|
livenessProbe:
|
||||||
|
tcpSocket:
|
||||||
|
port: 10911
|
||||||
|
initialDelaySeconds: 60
|
||||||
|
periodSeconds: 10
|
||||||
|
timeoutSeconds: 5
|
||||||
|
failureThreshold: 3
|
||||||
|
readinessProbe:
|
||||||
|
tcpSocket:
|
||||||
|
port: 10911
|
||||||
|
initialDelaySeconds: 30
|
||||||
|
periodSeconds: 5
|
||||||
|
timeoutSeconds: 3
|
||||||
|
failureThreshold: 3
|
||||||
|
restartPolicy: Always
|
||||||
|
|
@ -0,0 +1,24 @@
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: rocketmq-broker
|
||||||
|
namespace: default
|
||||||
|
labels:
|
||||||
|
app: rocketmq-broker
|
||||||
|
spec:
|
||||||
|
type: ClusterIP
|
||||||
|
ports:
|
||||||
|
- name: broker-admin
|
||||||
|
port: 10909
|
||||||
|
targetPort: 10909
|
||||||
|
protocol: TCP
|
||||||
|
- name: broker
|
||||||
|
port: 10911
|
||||||
|
targetPort: 10911
|
||||||
|
protocol: TCP
|
||||||
|
- name: broker-vip
|
||||||
|
port: 10912
|
||||||
|
targetPort: 10912
|
||||||
|
protocol: TCP
|
||||||
|
selector:
|
||||||
|
app: rocketmq-broker
|
||||||
Binary file not shown.
|
|
@ -0,0 +1,144 @@
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: rocketmq-config
|
||||||
|
namespace: default
|
||||||
|
labels:
|
||||||
|
app: rocketmq
|
||||||
|
data:
|
||||||
|
broker.conf: |
|
||||||
|
# RocketMQ Broker 配置文件
|
||||||
|
|
||||||
|
# Broker 集群名称
|
||||||
|
brokerClusterName=DefaultCluster
|
||||||
|
|
||||||
|
# Broker 名称
|
||||||
|
brokerName=broker-a
|
||||||
|
|
||||||
|
# Broker ID (0 表示 Master)
|
||||||
|
brokerId=0
|
||||||
|
|
||||||
|
# 删除文件时间点,默认凌晨4点
|
||||||
|
deleteWhen=04
|
||||||
|
|
||||||
|
# 文件保留时间,默认48小时
|
||||||
|
fileReservedTime=48
|
||||||
|
|
||||||
|
# Broker 角色
|
||||||
|
# - ASYNC_MASTER 异步复制Master
|
||||||
|
# - SYNC_MASTER 同步双写Master
|
||||||
|
# - SLAVE
|
||||||
|
brokerRole=ASYNC_MASTER
|
||||||
|
|
||||||
|
# 刷盘方式
|
||||||
|
# - ASYNC_FLUSH 异步刷盘
|
||||||
|
# - SYNC_FLUSH 同步刷盘
|
||||||
|
flushDiskType=ASYNC_FLUSH
|
||||||
|
|
||||||
|
# NameServer 地址
|
||||||
|
namesrvAddr=rocketmq-nameserver:9876
|
||||||
|
|
||||||
|
# Broker 监听端口
|
||||||
|
listenPort=10911
|
||||||
|
|
||||||
|
# Broker 对外服务端口
|
||||||
|
brokerIP1=
|
||||||
|
|
||||||
|
# Broker 对外服务端口2
|
||||||
|
brokerIP2=
|
||||||
|
|
||||||
|
# 存储路径
|
||||||
|
storePathRootDir=/home/rocketmq/store
|
||||||
|
|
||||||
|
# CommitLog 存储路径
|
||||||
|
storePathCommitLog=/home/rocketmq/store/commitlog
|
||||||
|
|
||||||
|
# 消息队列存储路径
|
||||||
|
storePathConsumeQueue=/home/rocketmq/store/consumequeue
|
||||||
|
|
||||||
|
# 消息索引存储路径
|
||||||
|
storePathIndex=/home/rocketmq/store/index
|
||||||
|
|
||||||
|
# checkpoint 文件存储路径
|
||||||
|
storeCheckpoint=/home/rocketmq/store/checkpoint
|
||||||
|
|
||||||
|
# abort 文件存储路径
|
||||||
|
abortFile=/home/rocketmq/store/abort
|
||||||
|
|
||||||
|
# 限制的消息大小
|
||||||
|
maxMessageSize=65536
|
||||||
|
|
||||||
|
# 发送消息线程池数量
|
||||||
|
sendMessageThreadPoolNums=128
|
||||||
|
|
||||||
|
# 拉消息线程池数量
|
||||||
|
pullMessageThreadPoolNums=128
|
||||||
|
|
||||||
|
# 注册Broker到NameServer的超时时间
|
||||||
|
registerBrokerTimeoutMills=3000
|
||||||
|
|
||||||
|
# 发送心跳间隔
|
||||||
|
heartbeatBrokerInterval=30000
|
||||||
|
|
||||||
|
# 持久化Consumer消费进度间隔
|
||||||
|
persistConsumerOffsetInterval=5000
|
||||||
|
|
||||||
|
# 是否允许 Broker 自动创建Topic
|
||||||
|
autoCreateTopicEnable=true
|
||||||
|
|
||||||
|
# 是否允许 Broker 自动创建订阅组
|
||||||
|
autoCreateSubscriptionGroup=true
|
||||||
|
|
||||||
|
# 是否启动时允许重复注册Broker
|
||||||
|
checkThreadPoolQueueSize=1000
|
||||||
|
|
||||||
|
# 客户端回调线程池数量
|
||||||
|
clientCallbackExecutorThreads=8
|
||||||
|
|
||||||
|
# 消费线程池最小线程数
|
||||||
|
consumeThreadMin=20
|
||||||
|
|
||||||
|
# 消费线程池最大线程数
|
||||||
|
consumeThreadMax=20
|
||||||
|
|
||||||
|
# 消费线程池队列大小
|
||||||
|
consumeConcurrentlyMaxSpan=2000
|
||||||
|
|
||||||
|
# 消费超时时间
|
||||||
|
consumeTimeout=15m
|
||||||
|
|
||||||
|
# 消费失败重试次数
|
||||||
|
maxReconsumeTimes=16
|
||||||
|
|
||||||
|
# 消费失败重试间隔
|
||||||
|
retryMaxTimes=16
|
||||||
|
|
||||||
|
# 发送消息超时时间
|
||||||
|
sendMessageTimeout=3000
|
||||||
|
|
||||||
|
# 压缩消息体阈值
|
||||||
|
compressMsgBodyOverHowmuch=4096
|
||||||
|
|
||||||
|
# 是否压缩消息体
|
||||||
|
compressedReadEnable=true
|
||||||
|
|
||||||
|
# 是否启用消息轨迹
|
||||||
|
traceTopicEnable=false
|
||||||
|
|
||||||
|
# ACL 配置
|
||||||
|
aclEnable=false
|
||||||
|
|
||||||
|
# 消息过滤
|
||||||
|
messageFilterClass=
|
||||||
|
|
||||||
|
# 是否启用消息过滤
|
||||||
|
enablePropertyFilter=false
|
||||||
|
|
||||||
|
# 是否启用消息过滤
|
||||||
|
enableConsumeMessageExtProperty=false
|
||||||
|
|
||||||
|
# 是否启用消息过滤
|
||||||
|
enableConsumeMessageExtProperty=false
|
||||||
|
|
||||||
|
# 是否启用消息过滤
|
||||||
|
enableConsumeMessageExtProperty=false
|
||||||
|
|
@ -0,0 +1,51 @@
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: rocketmq-nameserver
|
||||||
|
namespace: default
|
||||||
|
labels:
|
||||||
|
app: rocketmq-nameserver
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: rocketmq-nameserver
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: rocketmq-nameserver
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: rocketmq-nameserver
|
||||||
|
image: registry.t-aaron.com/apache/rocketmq:5.3.2
|
||||||
|
command:
|
||||||
|
- sh
|
||||||
|
- mqnamesrv
|
||||||
|
ports:
|
||||||
|
- containerPort: 9876
|
||||||
|
name: nameserver
|
||||||
|
env:
|
||||||
|
- name: JAVA_OPT_EXT
|
||||||
|
value: "-Xms512m -Xmx512m -Xmn128m"
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
memory: "512Mi"
|
||||||
|
cpu: "200m"
|
||||||
|
limits:
|
||||||
|
memory: "1Gi"
|
||||||
|
cpu: "500m"
|
||||||
|
livenessProbe:
|
||||||
|
tcpSocket:
|
||||||
|
port: 9876
|
||||||
|
initialDelaySeconds: 30
|
||||||
|
periodSeconds: 10
|
||||||
|
timeoutSeconds: 5
|
||||||
|
failureThreshold: 3
|
||||||
|
readinessProbe:
|
||||||
|
tcpSocket:
|
||||||
|
port: 9876
|
||||||
|
initialDelaySeconds: 10
|
||||||
|
periodSeconds: 5
|
||||||
|
timeoutSeconds: 3
|
||||||
|
failureThreshold: 3
|
||||||
|
restartPolicy: Always
|
||||||
|
|
@ -0,0 +1,16 @@
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: rocketmq-nameserver
|
||||||
|
namespace: default
|
||||||
|
labels:
|
||||||
|
app: rocketmq-nameserver
|
||||||
|
spec:
|
||||||
|
type: ClusterIP
|
||||||
|
ports:
|
||||||
|
- name: nameserver
|
||||||
|
port: 9876
|
||||||
|
targetPort: 9876
|
||||||
|
protocol: TCP
|
||||||
|
selector:
|
||||||
|
app: rocketmq-nameserver
|
||||||
|
|
@ -0,0 +1,100 @@
|
||||||
|
# XXL-JOB 安装说明
|
||||||
|
|
||||||
|
## 概述
|
||||||
|
XXL-JOB 是一个分布式任务调度平台,本目录包含了在 Kubernetes 集群中部署 XXL-JOB 的所有配置文件。
|
||||||
|
|
||||||
|
## 文件说明
|
||||||
|
- `xxljob-deployment.yaml` - XXL-JOB Admin 部署配置
|
||||||
|
- `xxljob-service.yaml` - XXL-JOB Admin 服务配置
|
||||||
|
- `xxljob-ingress.yaml` - XXL-JOB Admin 入口配置
|
||||||
|
- `install-xxljob.sh` - 自动安装脚本
|
||||||
|
|
||||||
|
## 安装前准备
|
||||||
|
|
||||||
|
### 1. 数据库准备
|
||||||
|
确保 MySQL 数据库已安装并运行,并创建 `xxl_job` 数据库:
|
||||||
|
|
||||||
|
```sql
|
||||||
|
CREATE DATABASE xxl_job DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. 数据库初始化
|
||||||
|
执行 XXL-JOB 提供的数据库初始化脚本 `/sql/xxl_job.sql`
|
||||||
|
|
||||||
|
### 3. 镜像准备
|
||||||
|
确保以下镜像已推送到镜像仓库:
|
||||||
|
- `registry.t-aaron.com/xxl-job/xxl-job-admin:latest`
|
||||||
|
|
||||||
|
## 安装步骤
|
||||||
|
|
||||||
|
### 方法一:使用安装脚本(推荐)
|
||||||
|
```bash
|
||||||
|
chmod +x install-xxljob.sh
|
||||||
|
./install-xxljob.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
### 方法二:手动安装
|
||||||
|
```bash
|
||||||
|
# 应用部署配置
|
||||||
|
kubectl apply -f xxljob-deployment.yaml
|
||||||
|
|
||||||
|
# 应用服务配置
|
||||||
|
kubectl apply -f xxljob-service.yaml
|
||||||
|
|
||||||
|
# 应用入口配置
|
||||||
|
kubectl apply -f xxljob-ingress.yaml
|
||||||
|
```
|
||||||
|
|
||||||
|
## 访问信息
|
||||||
|
- **访问地址**: https://xxljob-ops.t-aaron.com
|
||||||
|
- **默认用户名**: admin
|
||||||
|
- **默认密码**: 123456
|
||||||
|
|
||||||
|
## 配置说明
|
||||||
|
|
||||||
|
### 数据库连接
|
||||||
|
默认配置连接到名为 `mysql` 的 MySQL 服务:
|
||||||
|
- 数据库: xxl_job
|
||||||
|
- 用户名: root
|
||||||
|
- 密码: 123456
|
||||||
|
|
||||||
|
如需修改数据库连接信息,请编辑 `xxljob-deployment.yaml` 文件中的 `PARAMS` 环境变量。
|
||||||
|
|
||||||
|
### 访问令牌
|
||||||
|
默认访问令牌为 `default_token`,如需修改请编辑 `xxljob-deployment.yaml` 文件。
|
||||||
|
|
||||||
|
## 验证安装
|
||||||
|
安装完成后,可以通过以下命令检查部署状态:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 检查 Pod 状态
|
||||||
|
kubectl get pods -l app=xxl-job-admin
|
||||||
|
|
||||||
|
# 检查服务状态
|
||||||
|
kubectl get svc xxl-job-admin
|
||||||
|
|
||||||
|
# 检查入口状态
|
||||||
|
kubectl get ingress xxl-job-admin-ingress
|
||||||
|
```
|
||||||
|
|
||||||
|
## 故障排除
|
||||||
|
|
||||||
|
### 常见问题
|
||||||
|
1. **Pod 启动失败**: 检查数据库连接配置是否正确
|
||||||
|
2. **无法访问**: 检查 Ingress 配置和域名解析
|
||||||
|
3. **数据库连接失败**: 确认 MySQL 服务是否正常运行
|
||||||
|
|
||||||
|
### 日志查看
|
||||||
|
```bash
|
||||||
|
kubectl logs -l app=xxl-job-admin
|
||||||
|
```
|
||||||
|
|
||||||
|
## 卸载
|
||||||
|
如需卸载 XXL-JOB,执行以下命令:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
kubectl delete -f xxljob-ingress.yaml
|
||||||
|
kubectl delete -f xxljob-service.yaml
|
||||||
|
kubectl delete -f xxljob-deployment.yaml
|
||||||
|
```
|
||||||
|
|
||||||
|
|
@ -0,0 +1,37 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
echo "开始安装 XXL-JOB 到 Kubernetes 集群..."
|
||||||
|
|
||||||
|
# 检查 kubectl 是否可用
|
||||||
|
if ! command -v kubectl &> /dev/null; then
|
||||||
|
echo "错误: kubectl 命令未找到,请先安装 kubectl"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 应用 XXL-JOB 配置
|
||||||
|
echo "应用 XXL-JOB Deployment..."
|
||||||
|
kubectl apply -f xxljob-deployment.yaml
|
||||||
|
|
||||||
|
echo "应用 XXL-JOB Service..."
|
||||||
|
kubectl apply -f xxljob-service.yaml
|
||||||
|
|
||||||
|
echo "应用 XXL-JOB Ingress..."
|
||||||
|
kubectl apply -f xxljob-ingress.yaml
|
||||||
|
|
||||||
|
# 等待 Pod 启动
|
||||||
|
echo "等待 XXL-JOB Pod 启动..."
|
||||||
|
kubectl wait --for=condition=ready pod -l app=xxl-job-admin -n default --timeout=300s
|
||||||
|
|
||||||
|
# 检查状态
|
||||||
|
echo "检查 XXL-JOB 部署状态..."
|
||||||
|
kubectl get pods -l app=xxl-job-admin -n default
|
||||||
|
kubectl get svc xxl-job-admin -n default
|
||||||
|
kubectl get ingress xxl-job-admin-ingress -n default
|
||||||
|
|
||||||
|
echo "XXL-JOB 安装完成!"
|
||||||
|
echo "访问地址: https://xxljob-ops.t-aaron.com"
|
||||||
|
echo "默认用户名/密码: admin/123456"
|
||||||
|
echo ""
|
||||||
|
echo "注意: 请确保MySQL数据库已正确配置,并且xxl_job数据库已创建"
|
||||||
|
echo "数据库初始化脚本: /sql/xxl_job.sql"
|
||||||
|
|
||||||
|
|
@ -0,0 +1,57 @@
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: xxl-job-admin
|
||||||
|
namespace: default
|
||||||
|
labels:
|
||||||
|
app: xxl-job-admin
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: xxl-job-admin
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: xxl-job-admin
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: xxl-job-admin
|
||||||
|
image: registry.t-aaron.com/xxl-job/xxl-job-admin:latest
|
||||||
|
ports:
|
||||||
|
- containerPort: 8080
|
||||||
|
name: http
|
||||||
|
env:
|
||||||
|
- name: PARAMS
|
||||||
|
value: "--spring.datasource.url=jdbc:mysql://mysql:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai --spring.datasource.username=root --spring.datasource.password=123456 --xxl.job.accessToken=default_token"
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
memory: "512Mi"
|
||||||
|
cpu: "250m"
|
||||||
|
limits:
|
||||||
|
memory: "1Gi"
|
||||||
|
cpu: "500m"
|
||||||
|
livenessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /actuator/health
|
||||||
|
port: 8080
|
||||||
|
initialDelaySeconds: 60
|
||||||
|
periodSeconds: 10
|
||||||
|
timeoutSeconds: 5
|
||||||
|
failureThreshold: 3
|
||||||
|
readinessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /actuator/health
|
||||||
|
port: 8080
|
||||||
|
initialDelaySeconds: 30
|
||||||
|
periodSeconds: 5
|
||||||
|
timeoutSeconds: 3
|
||||||
|
failureThreshold: 3
|
||||||
|
volumeMounts:
|
||||||
|
- name: xxl-job-logs
|
||||||
|
mountPath: /data/applogs
|
||||||
|
volumes:
|
||||||
|
- name: xxl-job-logs
|
||||||
|
emptyDir: {}
|
||||||
|
restartPolicy: Always
|
||||||
|
|
||||||
|
|
@ -0,0 +1,25 @@
|
||||||
|
apiVersion: networking.k8s.io/v1
|
||||||
|
kind: Ingress
|
||||||
|
metadata:
|
||||||
|
name: xxl-job-admin-ingress
|
||||||
|
namespace: default
|
||||||
|
annotations:
|
||||||
|
traefik.ingress.kubernetes.io/router.entrypoints: web,websecure
|
||||||
|
traefik.ingress.kubernetes.io/router.tls: "true"
|
||||||
|
spec:
|
||||||
|
tls:
|
||||||
|
- hosts:
|
||||||
|
- xxljob-ops.t-aaron.com
|
||||||
|
secretName: tls
|
||||||
|
rules:
|
||||||
|
- host: xxljob-ops.t-aaron.com
|
||||||
|
http:
|
||||||
|
paths:
|
||||||
|
- path: /
|
||||||
|
pathType: Prefix
|
||||||
|
backend:
|
||||||
|
service:
|
||||||
|
name: xxl-job-admin
|
||||||
|
port:
|
||||||
|
number: 8080
|
||||||
|
|
||||||
|
|
@ -0,0 +1,17 @@
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: xxl-job-admin
|
||||||
|
namespace: default
|
||||||
|
labels:
|
||||||
|
app: xxl-job-admin
|
||||||
|
spec:
|
||||||
|
type: ClusterIP
|
||||||
|
ports:
|
||||||
|
- name: http
|
||||||
|
port: 8080
|
||||||
|
targetPort: 8080
|
||||||
|
protocol: TCP
|
||||||
|
selector:
|
||||||
|
app: xxl-job-admin
|
||||||
|
|
||||||
Loading…
Reference in New Issue