大量更新
This commit is contained in:
42
74-202603-新疆阿克苏地区/as_lite/as_lite/.env
Normal file
42
74-202603-新疆阿克苏地区/as_lite/as_lite/.env
Normal file
@@ -0,0 +1,42 @@
|
||||
##### 流媒体服务所有组件部署在同一台服务器上,配置项中IP的值都从下面两个变量获取 #####
|
||||
## PUBLIC: 外部设备、平台 访问 wvp, zlm 时使用的IP。
|
||||
## PRIVATE: 内部各组件相互访问时候用的IP。
|
||||
LIVE_IP_PUBLIC=120.205.80.23
|
||||
LIVE_IP_PRIVATE=192.168.5.41
|
||||
|
||||
LIVE_ZLM_API_PASSWD=035c7GB5cc
|
||||
LIVE_ZLM_NODE_ID=koisi_gb_216
|
||||
|
||||
LIVE_ZLM_PORT_HTTP=7088
|
||||
LIVE_ZLM_PORT_HTTPS=7089
|
||||
LIVE_ZLM_PORT_RTMP=51935
|
||||
LIVE_ZLM_PORT_RTSP=554
|
||||
LIVE_ZLM_PORT_WEBRTC=57090
|
||||
LIVE_ZLM_PORT_SRT=7556
|
||||
|
||||
LIVE_ZLM_PORT_RTP_PROXY=7100
|
||||
LIVE_ZLM_PORT_RTP_MIN=30100
|
||||
LIVE_ZLM_PORT_RTP_MAX=30150
|
||||
|
||||
############################ Begin: live-op & oss ############################
|
||||
## live-op 的http端口
|
||||
LIVE_OP_PORT_HTTP=9019
|
||||
|
||||
## live-op, oss 访问 → MinIO
|
||||
OSS_ENDPOINT=http://192.168.5.41:39000
|
||||
OSS_AK=cmii
|
||||
OSS_SK=B#923fC7mk
|
||||
|
||||
CLOUD_LIVE=http://192.168.34.245:32046
|
||||
|
||||
## live-op: 数据库默认使用中移凌云的,redis和wvp共用本地自带的。
|
||||
## wvp: 数据库和redis都用本地自带的。
|
||||
LIVE_OP_DB_ENDPOINT=192.168.5.41:33306
|
||||
LIVE_OP_DB_USERNAME=k8s_admin
|
||||
LIVE_OP_DB_PASSWORD=fP#UaH6qQ3)8
|
||||
LIVE_OP_DB_DATABASE=cmii_live_srs_op
|
||||
############################ End: live-op & oss ############################
|
||||
|
||||
LIVE_IMAGE_ZLM=harbor.cdcyy.com.cn/cmii/cmlc-live/v2.7.5-arm
|
||||
LIVE_IMAGE_ZLM_OSS=harbor.cdcyy.com.cn/cmii/cmii-zlm-oss-adaptor:v2.7.5-arm
|
||||
LIVE_IMAGE_LIVE_OP=harbor.cdcyy.com.cn/cmii/cmii-live-operator:v5.8.0-arm
|
||||
62
74-202603-新疆阿克苏地区/as_lite/as_lite/conf/DataCommitter.py
Normal file
62
74-202603-新疆阿克苏地区/as_lite/as_lite/conf/DataCommitter.py
Normal file
@@ -0,0 +1,62 @@
|
||||
from typing import Optional
|
||||
from loguru import logger
|
||||
|
||||
from boot.config import CONFIG
|
||||
from core.beans.enum.UploadStatus import UploadStatus
|
||||
from core.beans.po.FilePO import FilePO
|
||||
from core.dao.MysqlRecord import LiveOpRecord, IoTRecord
|
||||
from core.dao.RabbitMQClient import RabbitMQClient, VideoStreamInfo
|
||||
from core.pattern.singleton import singleton
|
||||
|
||||
|
||||
@singleton
|
||||
class DataCommitter:
|
||||
rabbit: Optional[RabbitMQClient]
|
||||
|
||||
def __init__(self):
|
||||
self.rabbit = RabbitMQClient() if CONFIG.app.modules.light or CONFIG.app.modules.uavms else None
|
||||
|
||||
def save_to_db(self, po: FilePO) -> bool:
|
||||
if CONFIG.app.modules.cmlc:
|
||||
r = LiveOpRecord(
|
||||
hub=po.app, stream=po.stream, type="ts", status=UploadStatus.SUCCESS,
|
||||
fileid=po.uuid, filename=po.relative_path, size=po.size,
|
||||
time_begin=po.begin, time_end=po.end
|
||||
).save(force_insert=True)
|
||||
if r != 1:
|
||||
logger.error(f"Failed to save LiveOpRecord to DB: {po.filename}, ret: {r}.")
|
||||
return False
|
||||
|
||||
if CONFIG.app.modules.uavms:
|
||||
r = IoTRecord(
|
||||
ts_file_name=po.relative_path, start_time=po.begin, end_time=po.end,
|
||||
file_size=po.size, device_id=po.stream_id, id=po.uuid,
|
||||
file_type="video", ref_id=po.ref_id, ext_json="{}",
|
||||
user_id=CONFIG.app.mysql.iot_default_biz_user, ai_object=None,
|
||||
).save(force_insert=True)
|
||||
if r != 1:
|
||||
logger.error(f"Failed to save IoTRecord to DB: {po.filename}, ret: {r}.")
|
||||
return False
|
||||
|
||||
if CONFIG.app.modules.light:
|
||||
start_timestamp = int(po.begin.timestamp() * 1000)
|
||||
end_timestamp = int( po.end.timestamp() * 1000)
|
||||
info = VideoStreamInfo(
|
||||
start_time=start_timestamp, duration=end_timestamp - start_timestamp,
|
||||
stream_id=po.stream_id, hub=po.app, stream=po.stream, file_id=po.uuid,
|
||||
md5=None, name=po.relative_path, type="ts", url=None,
|
||||
size=po.size, engine_type="zlm"
|
||||
)
|
||||
self.rabbit.send(info.to_json())
|
||||
|
||||
return True
|
||||
|
||||
@staticmethod
|
||||
def failed_to_sync_to_cloud_live(po: FilePO):
|
||||
(
|
||||
LiveOpRecord
|
||||
.update(status=UploadStatus.FAILED_TO_SYNC_TO_CLOUD_LIVE)
|
||||
.where(LiveOpRecord.fileid==po.uuid)
|
||||
.execute()
|
||||
)
|
||||
|
||||
91
74-202603-新疆阿克苏地区/as_lite/as_lite/conf/live-op.yaml
Normal file
91
74-202603-新疆阿克苏地区/as_lite/as_lite/conf/live-op.yaml
Normal file
@@ -0,0 +1,91 @@
|
||||
debug: false
|
||||
server:
|
||||
port: ${LIVE_OP_PORT_HTTP}
|
||||
|
||||
spring:
|
||||
application:
|
||||
name: cmii-live-operator
|
||||
platform:
|
||||
info:
|
||||
name: cmii-live-operator
|
||||
description: cmii-live-operator
|
||||
version: 5.7.0
|
||||
scanPackage: com.cmii.live.op
|
||||
jackson:
|
||||
time-zone: GMT+8
|
||||
mvc:
|
||||
pathmatch:
|
||||
matching-strategy: ANT_PATH_MATCHER
|
||||
|
||||
datasource:
|
||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||
type: com.alibaba.druid.pool.DruidDataSource
|
||||
url: jdbc:mysql://${LIVE_OP_DB_ENDPOINT:192.168.34.228:3306}/${LIVE_OP_DB_DATABASE}?characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true
|
||||
username: ${LIVE_OP_DB_USERNAME:koisi}
|
||||
password: ${LIVE_OP_DB_PASSWORD:poi.1122}
|
||||
|
||||
redis:
|
||||
host: ${LIVE_OP_REDIS_HOST:192.168.5.41}
|
||||
port: ${LIVE_OP_REDIS_PORT:6379}
|
||||
database: ${LIVE_OP_REDIS_DB:6}
|
||||
password: ${LIVE_OP_REDIS_PASSWD:koisi}
|
||||
|
||||
druid:
|
||||
mysql:
|
||||
usePingMethod: false
|
||||
|
||||
opentracing:
|
||||
jaeger:
|
||||
enabled: false
|
||||
|
||||
live:
|
||||
engine:
|
||||
type: zlm
|
||||
endpoint: "http://${LIVE_IP_PRIVATE}:${LIVE_ZLM_PORT_HTTP}"
|
||||
secret-key: ${LIVE_ZLM_API_PASSWD:035c7GB5cc}
|
||||
wvp: "http://${LIVE_IP_PRIVATE}:${LIVE_WVP_PORT_HTTP}"
|
||||
rtcPreferTcp: false
|
||||
|
||||
proto:
|
||||
rtmp: "rtmp://120.205.80.23:31935"
|
||||
rtsp: "rtsp://${LIVE_IP_PUBLIC}:${LIVE_ZLM_PORT_RTSP}"
|
||||
srt: "srt://${LIVE_IP_PUBLIC}:${LIVE_ZLM_PORT_HTTP}"
|
||||
flv: "http://120.205.80.23:9019/zlm/flv"
|
||||
hls: "http://120.205.80.23:9019/zlm/hls"
|
||||
rtc: "http://120.205.80.23:9019/zlm/webrtc"
|
||||
whip: "http://120.205.80.23:9019/zlm/whip"
|
||||
replay: "http://${LIVE_IP_PRIVATE}:${LIVE_OP_PORT_HTTP}"
|
||||
|
||||
hls:
|
||||
max-ts: 200
|
||||
interval-ms: 6000
|
||||
|
||||
minio:
|
||||
endpoint: ${OSS_ENDPOINT}
|
||||
access-key: ${OSS_AK}
|
||||
secret-key: ${OSS_SK}
|
||||
bucket: "live-srs-hls"
|
||||
|
||||
hook:
|
||||
on-push:
|
||||
- "http://127.0.0.1:9019/404"
|
||||
on-play:
|
||||
- "http://127.0.0.1:9019/404"
|
||||
|
||||
sync:
|
||||
onStart: false
|
||||
pool:
|
||||
core: 8
|
||||
max: 12
|
||||
queue: 0
|
||||
keepalive: 20
|
||||
interval:
|
||||
sync: 6000
|
||||
elect: 8
|
||||
keepalive: 20
|
||||
heartbeat: 8
|
||||
|
||||
logging:
|
||||
level:
|
||||
root: info
|
||||
com.cmii.live.op.mapper: info
|
||||
62
74-202603-新疆阿克苏地区/as_lite/as_lite/conf/zlm-oss.yaml
Normal file
62
74-202603-新疆阿克苏地区/as_lite/as_lite/conf/zlm-oss.yaml
Normal file
@@ -0,0 +1,62 @@
|
||||
app:
|
||||
env: default
|
||||
listen:
|
||||
host: 0.0.0.0
|
||||
port: 7081
|
||||
thread_pool: 12
|
||||
file_dir:
|
||||
shared: "/cmii/share/hls"
|
||||
backup: "/cmii/backup"
|
||||
log:
|
||||
path: "/cmii/logs"
|
||||
# TRACE DEBUG INFO WARNING ERROR
|
||||
level: INFO
|
||||
|
||||
modules:
|
||||
# 是否对接老的行业平台, 中移凌云
|
||||
cmlc: false
|
||||
# 是否对接监管平台: 报送封面
|
||||
uavms: false
|
||||
# 是否对接轻量化平台: 报送RabbitMQ信息
|
||||
light: true
|
||||
# 是否开启配额管理, 关闭可以忽略配额
|
||||
quota: false
|
||||
# 是否在MinIO异常时, 将文件移到备份目录, 需要正确配置 app.file_dir.backup, 并确保有足够空间
|
||||
backup: true
|
||||
# 是否开启调试模式: 即所有文件都录制
|
||||
debug: false
|
||||
|
||||
client:
|
||||
# 查询是否需要存储
|
||||
live_op: "http://gb-live-op:9019"
|
||||
# 查询业务信息(公司、用户), 存储配额
|
||||
cloud_live: "http://192.168.34.245:32046"
|
||||
|
||||
minio:
|
||||
endpoint: "http://192.168.5.141:39000"
|
||||
access_key: "cmii"
|
||||
secret_key: "B#923fC7mk"
|
||||
with_meta: true
|
||||
bucket_light: "ilm-detect"
|
||||
bucket_uavms: "ilm-detect"
|
||||
|
||||
mysql:
|
||||
host: 192.168.5.41
|
||||
port: 33306
|
||||
username: k8s_admin
|
||||
password: fP#UaH6qQ3)8
|
||||
live_op_db: "cmii_live_srs_op"
|
||||
live_op_table: "live_segment"
|
||||
iot_db: "uav_iot_dispatcher"
|
||||
iot_table: "cmii_uav_video_storage_management"
|
||||
iot_cache_table: "cmii_uav_video_cache_storage"
|
||||
# 目前监管系统用户体系不完善,但是素材仓库文件需要关联用户ID
|
||||
iot_default_biz_user: "233"
|
||||
|
||||
# 对接轻量化平台
|
||||
rabbitmq:
|
||||
host: 192.168.5.41
|
||||
port: 35672
|
||||
username: admin
|
||||
password: nYcRN91r._hj
|
||||
routing_key: "sky.live.video"
|
||||
217
74-202603-新疆阿克苏地区/as_lite/as_lite/conf/zlm.envsubst.ini
Normal file
217
74-202603-新疆阿克苏地区/as_lite/as_lite/conf/zlm.envsubst.ini
Normal file
@@ -0,0 +1,217 @@
|
||||
|
||||
[api]
|
||||
apiDebug = 0
|
||||
secret = ${LIVE_ZLM_API_PASSWD}
|
||||
snapRoot = ./www/snap/
|
||||
defaultSnap = ./www/logo.png
|
||||
downloadRoot = ./www
|
||||
|
||||
[ffmpeg]
|
||||
bin = /usr/bin/ffmpeg
|
||||
cmd = %s -stream_loop -1 -re -i %s -c:a copy -c:v copy -f flv %s
|
||||
snap = %s -i %s -y -f mjpeg -frames:v 1 -an %s
|
||||
log = ./ffmpeg/ffmpeg.log
|
||||
restart_sec = 0
|
||||
|
||||
[protocol]
|
||||
modify_stamp = 2
|
||||
enable_audio = 0
|
||||
add_mute_audio = 0
|
||||
# auto_close = 0, 通过 hook:on_none_reader 决定是否关闭流。
|
||||
# =1: 不触发 hook 回调,而是将直接关闭流。
|
||||
auto_close = 0
|
||||
#推流断开后可以在超时时间内重新连接上继续推流,这样播放器会接着播放。
|
||||
continue_push_ms = 4000
|
||||
#平滑发送定时器间隔,单位毫秒,置0则关闭;开启后影响cpu性能同时增加内存
|
||||
paced_sender_ms = 0
|
||||
|
||||
enable_hls = 1
|
||||
enable_hls_fmp4 = 0
|
||||
enable_rtmp = 1
|
||||
enable_ts = 1
|
||||
enable_fmp4 = 0
|
||||
# rtsp -> webrtc
|
||||
enable_rtsp = 1
|
||||
#是否开启MP4录制
|
||||
enable_mp4 = 0
|
||||
|
||||
mp4_as_player = 0
|
||||
mp4_max_second = 3600
|
||||
mp4_save_path = ./www
|
||||
|
||||
hls_save_path = ./www/zlm/hls
|
||||
|
||||
hls_demand = 0
|
||||
rtsp_demand = 0
|
||||
rtmp_demand = 0
|
||||
ts_demand = 1
|
||||
fmp4_demand = 1
|
||||
|
||||
[general]
|
||||
enableVhost = 0
|
||||
flowThreshold = 1024
|
||||
#如果在这个时间内,该流注册成功,那么会立即返回播放器播放成功
|
||||
#否则返回播放器未找到该流,该机制的目的是可以先播放再推流
|
||||
maxStreamWaitMS = 0
|
||||
#某个流无人观看时,触发hook.on_stream_none_reader事件的最大等待时间,单位毫秒
|
||||
streamNoneReaderDelayMS = 120000
|
||||
resetWhenRePlay = 1
|
||||
#低延迟模式
|
||||
mergeWriteMS = 0
|
||||
mediaServerId = ${LIVE_ZLM_NODE_ID}
|
||||
|
||||
wait_track_ready_ms = 8000
|
||||
wait_add_track_ms = 2000
|
||||
unready_frame_cache = 96
|
||||
|
||||
broadcast_player_count_changed = 0
|
||||
|
||||
[hls]
|
||||
fileBufSize = 65536
|
||||
segDur = 10
|
||||
segNum = 10
|
||||
segDelay = 0
|
||||
segRetain = 5000
|
||||
broadcastRecordTs = 0
|
||||
deleteDelaySec = 20
|
||||
segKeep = 0
|
||||
fastRegister = 1
|
||||
|
||||
[hook]
|
||||
enable = 1
|
||||
on_flow_report =
|
||||
on_http_access =
|
||||
on_play = http://${LIVE_IP_PRIVATE}:${LIVE_OP_PORT_HTTP}/hooks/on_play
|
||||
on_publish = http://${LIVE_IP_PRIVATE}:${LIVE_OP_PORT_HTTP}/hooks/on_push
|
||||
on_stream_changed = http://${LIVE_IP_PRIVATE}:${LIVE_WVP_PORT_HTTP}/index/hook/on_stream_changed
|
||||
on_stream_none_reader = http://${LIVE_IP_PRIVATE}:${LIVE_WVP_PORT_HTTP}/index/hook/on_stream_none_reader
|
||||
on_stream_not_found = http://${LIVE_IP_PRIVATE}:${LIVE_WVP_PORT_HTTP}/index/hook/on_stream_not_found
|
||||
on_rtp_server_timeout = http://${LIVE_IP_PRIVATE}:${LIVE_WVP_PORT_HTTP}/index/hook/on_rtp_server_timeout
|
||||
on_send_rtp_stopped = http://${LIVE_IP_PRIVATE}:${LIVE_WVP_PORT_HTTP}/index/hook/on_send_rtp_stopped
|
||||
on_server_started = http://${LIVE_IP_PRIVATE}:${LIVE_WVP_PORT_HTTP}/index/hook/on_server_started
|
||||
on_server_keepalive = http://${LIVE_IP_PRIVATE}:${LIVE_WVP_PORT_HTTP}/index/hook/on_server_keepalive
|
||||
on_server_exited =
|
||||
|
||||
# 置空,使用统一的 on_play 鉴权
|
||||
on_rtsp_auth =
|
||||
on_rtsp_realm =
|
||||
on_shell_login =
|
||||
on_record_mp4 =
|
||||
on_record_ts =
|
||||
|
||||
stream_changed_schemas = rtsp/rtmp/fmp4/ts/hls/hls.fmp4
|
||||
timeoutSec = 10
|
||||
alive_interval = 10.0
|
||||
retry = 1
|
||||
retry_delay = 4.0
|
||||
|
||||
[cluster]
|
||||
origin_url =
|
||||
timeout_sec = 15
|
||||
retry_count = 3
|
||||
|
||||
[http]
|
||||
port = ${LIVE_ZLM_PORT_HTTP}
|
||||
# 置 0,关闭。
|
||||
# docker-compose 端口不能为0,
|
||||
# 故使用 docker-compose + .env 部署时,不能关闭。
|
||||
sslport = ${LIVE_ZLM_PORT_HTTPS}
|
||||
charSet = utf-8
|
||||
keepAliveSecond = 20
|
||||
maxReqSize = 40960
|
||||
notFound = <html> <head><title>404 Not Found</title></head> <body><div>404 Not Found</div></body> </html>
|
||||
rootPath = ./www
|
||||
sendBufSize = 65536
|
||||
dirMenu = 0
|
||||
virtualPath =
|
||||
forbidCacheSuffix =
|
||||
forwarded_ip_header =
|
||||
allow_cross_domains = 1
|
||||
allow_ip_range = ::1,127.0.0.1,172.1.0.0-172.31.255.255,192.168.0.0-192.168.255.255,10.0.0.0-10.255.255.255,20.0.0.0-20.255.255.255,50.0.0.0-50.255.255.255
|
||||
|
||||
[multicast]
|
||||
addrMax = 239.255.255.255
|
||||
addrMin = 239.0.0.0
|
||||
udpTTL = 64
|
||||
|
||||
[record]
|
||||
appName = record
|
||||
fileBufSize = 65536
|
||||
sampleMS = 1000
|
||||
fastStart = 0
|
||||
fileRepeat = 0
|
||||
enableFmp4 = 0
|
||||
|
||||
[rtmp]
|
||||
port = ${LIVE_ZLM_PORT_RTMP}
|
||||
sslport = 0
|
||||
handshakeSecond = 8
|
||||
keepAliveSecond = 8
|
||||
directProxy = 0
|
||||
enhanced = 0
|
||||
|
||||
[rtp]
|
||||
audioMtuSize = 480
|
||||
videoMtuSize = 1400
|
||||
rtpMaxSize = 10
|
||||
# rtp 打包时,低延迟开关,默认关闭(为0),h264存在一帧多个slice(NAL)的情况,在这种情况下,如果开启可能会导致画面花屏
|
||||
lowLatency = 0
|
||||
# 1,兼容webrtc; 0,兼容老的rtsp设备
|
||||
h264_stap_a = 1
|
||||
|
||||
[rtp_proxy]
|
||||
port = ${LIVE_ZLM_PORT_RTP_PROXY}
|
||||
port_range = ${LIVE_ZLM_PORT_RTP_MIN}-${LIVE_ZLM_PORT_RTP_MAX}
|
||||
dumpDir =
|
||||
timeoutSec = 8
|
||||
h264_pt = 98
|
||||
h265_pt = 99
|
||||
ps_pt = 96
|
||||
opus_pt = 100
|
||||
gop_cache = 0
|
||||
|
||||
rtp_g711_dur_ms = 100
|
||||
#4*1024*1024=4196304
|
||||
udp_recv_socket_buffer = 4194304
|
||||
|
||||
[rtc]
|
||||
# 可以使用 ',' 提供多个 IP 。
|
||||
externIP = ${LIVE_IP_PUBLIC}
|
||||
port = ${LIVE_ZLM_PORT_WEBRTC}
|
||||
tcpPort = ${LIVE_ZLM_PORT_WEBRTC}
|
||||
timeoutSec = 8
|
||||
rembBitRate = 0
|
||||
preferredCodecA = PCMU,PCMA,opus,mpeg4-generic
|
||||
preferredCodecV = H264,H265,AV1,VP9,VP8
|
||||
|
||||
start_bitrate = 0
|
||||
max_bitrate = 0
|
||||
min_bitrate = 0
|
||||
|
||||
maxNackMS = 4000
|
||||
rtpCacheCheckInterval = 96
|
||||
nackMaxSize = 2048
|
||||
nackMaxMS = 4000
|
||||
nackMaxCount = 12
|
||||
nackIntervalRatio = 1.0
|
||||
nackRtpSize = 8
|
||||
|
||||
[srt]
|
||||
port = ${LIVE_ZLM_PORT_SRT}
|
||||
timeoutSec = 4
|
||||
latencyMul = 4
|
||||
pktBufSize = 8192
|
||||
|
||||
[rtsp]
|
||||
port = ${LIVE_ZLM_PORT_RTSP}
|
||||
sslport = 0
|
||||
authBasic = 0
|
||||
directProxy = 0
|
||||
handshakeSecond = 8
|
||||
keepAliveSecond = 8
|
||||
lowLatency = 1
|
||||
rtpTransportType = -1
|
||||
|
||||
[shell]
|
||||
maxReqSize = 1024
|
||||
port = 0
|
||||
217
74-202603-新疆阿克苏地区/as_lite/as_lite/conf/zlm.ini
Normal file
217
74-202603-新疆阿克苏地区/as_lite/as_lite/conf/zlm.ini
Normal file
@@ -0,0 +1,217 @@
|
||||
|
||||
[api]
|
||||
apiDebug = 0
|
||||
secret = 035c7GB5cc
|
||||
snapRoot = ./www/snap/
|
||||
defaultSnap = ./www/logo.png
|
||||
downloadRoot = ./www
|
||||
|
||||
[ffmpeg]
|
||||
bin = /usr/bin/ffmpeg
|
||||
cmd = %s -stream_loop -1 -re -i %s -c:a copy -c:v copy -f flv %s
|
||||
snap = %s -i %s -y -f mjpeg -frames:v 1 -an %s
|
||||
log = ./ffmpeg/ffmpeg.log
|
||||
restart_sec = 0
|
||||
|
||||
[protocol]
|
||||
modify_stamp = 2
|
||||
enable_audio = 0
|
||||
add_mute_audio = 0
|
||||
# auto_close = 0, 通过 hook:on_none_reader 决定是否关闭流。
|
||||
# =1: 不触发 hook 回调,而是将直接关闭流。
|
||||
auto_close = 0
|
||||
#推流断开后可以在超时时间内重新连接上继续推流,这样播放器会接着播放。
|
||||
continue_push_ms = 4000
|
||||
#平滑发送定时器间隔,单位毫秒,置0则关闭;开启后影响cpu性能同时增加内存
|
||||
paced_sender_ms = 0
|
||||
|
||||
enable_hls = 1
|
||||
enable_hls_fmp4 = 0
|
||||
enable_rtmp = 1
|
||||
enable_ts = 1
|
||||
enable_fmp4 = 0
|
||||
# rtsp -> webrtc
|
||||
enable_rtsp = 1
|
||||
#是否开启MP4录制
|
||||
enable_mp4 = 0
|
||||
|
||||
mp4_as_player = 0
|
||||
mp4_max_second = 3600
|
||||
mp4_save_path = ./www
|
||||
|
||||
hls_save_path = ./www/zlm/hls
|
||||
|
||||
hls_demand = 0
|
||||
rtsp_demand = 0
|
||||
rtmp_demand = 0
|
||||
ts_demand = 1
|
||||
fmp4_demand = 1
|
||||
|
||||
[general]
|
||||
enableVhost = 0
|
||||
flowThreshold = 1024
|
||||
#如果在这个时间内,该流注册成功,那么会立即返回播放器播放成功
|
||||
#否则返回播放器未找到该流,该机制的目的是可以先播放再推流
|
||||
maxStreamWaitMS = 0
|
||||
#某个流无人观看时,触发hook.on_stream_none_reader事件的最大等待时间,单位毫秒
|
||||
streamNoneReaderDelayMS = 120000
|
||||
resetWhenRePlay = 1
|
||||
#低延迟模式
|
||||
mergeWriteMS = 0
|
||||
mediaServerId = koisi_gb_228
|
||||
|
||||
wait_track_ready_ms = 8000
|
||||
wait_add_track_ms = 2000
|
||||
unready_frame_cache = 96
|
||||
|
||||
broadcast_player_count_changed = 0
|
||||
|
||||
[hls]
|
||||
fileBufSize = 65536
|
||||
segDur = 10
|
||||
segNum = 10
|
||||
segDelay = 0
|
||||
segRetain = 5000
|
||||
broadcastRecordTs = 1
|
||||
deleteDelaySec = 20
|
||||
segKeep = 0
|
||||
fastRegister = 1
|
||||
|
||||
[hook]
|
||||
enable = 1
|
||||
on_flow_report =
|
||||
on_http_access =
|
||||
on_play = http://127.0.0.1:9019/hooks/on_play
|
||||
on_publish = http://127.0.0.1:9019/hooks/on_push
|
||||
on_stream_changed =
|
||||
on_stream_none_reader =
|
||||
on_stream_not_found =
|
||||
on_rtp_server_timeout =
|
||||
on_send_rtp_stopped =
|
||||
on_server_started =
|
||||
on_server_keepalive =
|
||||
on_server_exited =
|
||||
|
||||
# 置空,使用统一的 on_play 鉴权
|
||||
on_rtsp_auth =
|
||||
on_rtsp_realm =
|
||||
on_shell_login =
|
||||
on_record_mp4 =
|
||||
on_record_ts = http://127.0.0.1:7081/hooks/on_record_ts
|
||||
|
||||
stream_changed_schemas = rtsp/rtmp/fmp4/ts/hls/hls.fmp4
|
||||
timeoutSec = 10
|
||||
alive_interval = 10.0
|
||||
retry = 1
|
||||
retry_delay = 4.0
|
||||
|
||||
[cluster]
|
||||
origin_url =
|
||||
timeout_sec = 15
|
||||
retry_count = 3
|
||||
|
||||
[http]
|
||||
port = 7088
|
||||
# 置 0,关闭。
|
||||
# docker-compose 端口不能为0,
|
||||
# 故使用 docker-compose + .env 部署时,不能关闭。
|
||||
sslport = 7089
|
||||
charSet = utf-8
|
||||
keepAliveSecond = 20
|
||||
maxReqSize = 40960
|
||||
notFound = <html> <head><title>404 Not Found</title></head> <body><div>404 Not Found</div></body> </html>
|
||||
rootPath = ./www
|
||||
sendBufSize = 65536
|
||||
dirMenu = 0
|
||||
virtualPath =
|
||||
forbidCacheSuffix =
|
||||
forwarded_ip_header =
|
||||
allow_cross_domains = 1
|
||||
allow_ip_range = ::1,127.0.0.1,172.1.0.0-172.31.255.255,192.168.0.0-192.168.255.255,10.0.0.0-10.255.255.255,20.0.0.0-20.255.255.255,50.0.0.0-50.255.255.255
|
||||
|
||||
[multicast]
|
||||
addrMax = 239.255.255.255
|
||||
addrMin = 239.0.0.0
|
||||
udpTTL = 64
|
||||
|
||||
[record]
|
||||
appName = record
|
||||
fileBufSize = 65536
|
||||
sampleMS = 1000
|
||||
fastStart = 0
|
||||
fileRepeat = 0
|
||||
enableFmp4 = 0
|
||||
|
||||
[rtmp]
|
||||
port = 31935
|
||||
sslport = 0
|
||||
handshakeSecond = 8
|
||||
keepAliveSecond = 8
|
||||
directProxy = 0
|
||||
enhanced = 0
|
||||
|
||||
[rtp]
|
||||
audioMtuSize = 480
|
||||
videoMtuSize = 1400
|
||||
rtpMaxSize = 10
|
||||
# rtp 打包时,低延迟开关,默认关闭(为0),h264存在一帧多个slice(NAL)的情况,在这种情况下,如果开启可能会导致画面花屏
|
||||
lowLatency = 0
|
||||
# 1,兼容webrtc; 0,兼容老的rtsp设备
|
||||
h264_stap_a = 1
|
||||
|
||||
[rtp_proxy]
|
||||
port = 7100
|
||||
port_range = 30100-30150
|
||||
dumpDir =
|
||||
timeoutSec = 8
|
||||
h264_pt = 98
|
||||
h265_pt = 99
|
||||
ps_pt = 96
|
||||
opus_pt = 100
|
||||
gop_cache = 0
|
||||
|
||||
rtp_g711_dur_ms = 100
|
||||
#4*1024*1024=4196304
|
||||
udp_recv_socket_buffer = 4194304
|
||||
|
||||
[rtc]
|
||||
# 可以使用 ',' 提供多个 IP 。
|
||||
externIP = 120.205.80.23
|
||||
port = 30090
|
||||
tcpPort = 30090
|
||||
timeoutSec = 8
|
||||
rembBitRate = 0
|
||||
preferredCodecA = PCMU,PCMA,opus,mpeg4-generic
|
||||
preferredCodecV = H264,H265,AV1,VP9,VP8
|
||||
|
||||
start_bitrate = 0
|
||||
max_bitrate = 0
|
||||
min_bitrate = 0
|
||||
|
||||
maxNackMS = 4000
|
||||
rtpCacheCheckInterval = 96
|
||||
nackMaxSize = 2048
|
||||
nackMaxMS = 4000
|
||||
nackMaxCount = 12
|
||||
nackIntervalRatio = 1.0
|
||||
nackRtpSize = 8
|
||||
|
||||
[srt]
|
||||
port = 7556
|
||||
timeoutSec = 4
|
||||
latencyMul = 4
|
||||
pktBufSize = 8192
|
||||
|
||||
[rtsp]
|
||||
port = 554
|
||||
sslport = 0
|
||||
authBasic = 0
|
||||
directProxy = 0
|
||||
handshakeSecond = 8
|
||||
keepAliveSecond = 8
|
||||
lowLatency = 1
|
||||
rtpTransportType = -1
|
||||
|
||||
[shell]
|
||||
maxReqSize = 1024
|
||||
port = 0
|
||||
75
74-202603-新疆阿克苏地区/as_lite/as_lite/docker-compose.yaml
Normal file
75
74-202603-新疆阿克苏地区/as_lite/as_lite/docker-compose.yaml
Normal file
@@ -0,0 +1,75 @@
|
||||
version: '2.4'
|
||||
services:
|
||||
gb-zlm:
|
||||
image: ${LIVE_IMAGE_ZLM}
|
||||
restart: always
|
||||
container_name: gb-zlm
|
||||
network_mode: host
|
||||
volumes:
|
||||
- "./conf/zlm.ini:/home/koisi/zlm.ini"
|
||||
- "./data/zlm/hls:/home/koisi/zlm/www/zlm/hls"
|
||||
|
||||
environment:
|
||||
TZ: "Asia/Shanghai"
|
||||
|
||||
gb-zlm-oss:
|
||||
image: ${LIVE_IMAGE_ZLM_OSS}
|
||||
restart: always
|
||||
container_name: gb-zlm-oss
|
||||
privileged: true
|
||||
cpus: 2.0
|
||||
networks:
|
||||
- gb28181_net
|
||||
ports:
|
||||
- "7081:7081"
|
||||
volumes:
|
||||
- "./data/zlm/hls:/cmii/share/hls"
|
||||
- "./conf/zlm-oss.yaml:/cmii/oss-adaptor/boot/config.yaml"
|
||||
- "./conf/DataCommitter.py:/cmii/oss-adaptor/core/dao/DataCommitter.py"
|
||||
|
||||
gb-live-op:
|
||||
image: ${LIVE_IMAGE_LIVE_OP}
|
||||
restart: always
|
||||
container_name: gb-live-op
|
||||
networks:
|
||||
- gb28181_net
|
||||
ports:
|
||||
- "${LIVE_OP_PORT_HTTP}:${LIVE_OP_PORT_HTTP}"
|
||||
volumes:
|
||||
- "./conf/live-op.yaml:/cmii/bootstrap.yaml"
|
||||
environment:
|
||||
LIVE_IP_PUBLIC: ${LIVE_IP_PUBLIC}
|
||||
LIVE_IP_PRIVATE: ${LIVE_IP_PRIVATE}
|
||||
|
||||
LIVE_OP_PORT_HTTP: ${LIVE_OP_PORT_HTTP}
|
||||
LIVE_WVP_PORT_HTTP: ${LIVE_WVP_PORT_HTTP}
|
||||
|
||||
LIVE_OP_REDIS_HOST: 192.168.5.41
|
||||
LIVE_OP_REDIS_PORT: 36379
|
||||
LIVE_OP_REDIS_PASSWD: Mcache@4522
|
||||
LIVE_OP_REDIS_DB: 6
|
||||
LIVE_OP_DB_ENDPOINT: ${LIVE_OP_DB_ENDPOINT}
|
||||
LIVE_OP_DB_USERNAME: ${LIVE_OP_DB_USERNAME}
|
||||
LIVE_OP_DB_PASSWORD: ${LIVE_OP_DB_PASSWORD}
|
||||
LIVE_OP_DB_DATABASE: ${LIVE_OP_DB_DATABASE}
|
||||
|
||||
LIVE_ZLM_PORT_HTTP: ${LIVE_ZLM_PORT_HTTP}
|
||||
LIVE_ZLM_PORT_HTTPS: ${LIVE_ZLM_PORT_HTTPS}
|
||||
LIVE_ZLM_PORT_RTMP: ${LIVE_ZLM_PORT_RTMP}
|
||||
LIVE_ZLM_PORT_RTSP: ${LIVE_ZLM_PORT_RTSP}
|
||||
LIVE_ZLM_PORT_SRT: ${LIVE_ZLM_PORT_SRT}
|
||||
LIVE_ZLM_API_PASSWD: ${LIVE_ZLM_API_PASSWD}
|
||||
|
||||
OSS_ENDPOINT: ${OSS_ENDPOINT}
|
||||
OSS_AK: ${OSS_AK}
|
||||
OSS_SK: ${OSS_SK}
|
||||
CLOUD_LIVE: ${CLOUD_LIVE}
|
||||
|
||||
networks:
|
||||
gb28181_net:
|
||||
driver: bridge
|
||||
ipam:
|
||||
driver: default
|
||||
config:
|
||||
- subnet: 172.5.14.0/24
|
||||
|
||||
191
74-202603-新疆阿克苏地区/k8s-app/uav-ai-core-nacos.yaml
Normal file
191
74-202603-新疆阿克苏地区/k8s-app/uav-ai-core-nacos.yaml
Normal file
@@ -0,0 +1,191 @@
|
||||
spring:
|
||||
cache:
|
||||
type: none
|
||||
mvc:
|
||||
pathmatch:
|
||||
matching-strategy: ant_path_matcher
|
||||
platform:
|
||||
info:
|
||||
name: AI原子能力
|
||||
description: AI原子能力
|
||||
version: 6.2.0
|
||||
datasource:
|
||||
dynamic:
|
||||
primary: uav_ai_core
|
||||
datasource:
|
||||
uav_ai_core:
|
||||
type: com.zaxxer.hikari.HikariDataSource
|
||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||
url: jdbc:mysql://helm-mysql:3306/uav_ai_core?characterEncoding=UTF-8&useSSL=true&zeroDateTimeBehavior=convertToNull&&allowMultiQueries=true&serverTimezone=GMT%2B8
|
||||
username: k8s_admin
|
||||
password: fP#UaH6qQ3)8
|
||||
redis:
|
||||
host: helm-redis-master
|
||||
port: 6379
|
||||
database: 0
|
||||
password: Mcache@4522
|
||||
redisson:
|
||||
model: SINGLE
|
||||
single-server-config:
|
||||
address: helm-redis-master:6379
|
||||
database: 0
|
||||
password: Mcache@4522
|
||||
rabbitmq:
|
||||
host: helm-rabbitmq
|
||||
port: 5672
|
||||
username: admin
|
||||
password: nYcRN91r._hj
|
||||
virtual-host: /
|
||||
server:
|
||||
compression:
|
||||
enabled: true
|
||||
min-response-size: 1024
|
||||
mime-types: text/html,text/xml,text/plain,text/css,text/javascript,application/javascript,application/json
|
||||
springdoc:
|
||||
api-docs:
|
||||
version: openapi_3_1
|
||||
group-configs:
|
||||
- group: common
|
||||
display-name: 公共能力
|
||||
paths-to-match:
|
||||
- /cmii/**
|
||||
- group: regulator
|
||||
display-name: 管理端
|
||||
paths-to-match:
|
||||
- /regulator/**
|
||||
- group: all
|
||||
display-name: 所有的服务能力
|
||||
paths-to-match:
|
||||
- /**
|
||||
override-with-generic-response: true
|
||||
info:
|
||||
title: AI原子能力
|
||||
description: AI原子能力
|
||||
version: 6.2.0
|
||||
com:
|
||||
cmii:
|
||||
chinamobile:
|
||||
request:
|
||||
mapping:
|
||||
scan:
|
||||
register-request-mapping: true
|
||||
group: regulator
|
||||
logging:
|
||||
level:
|
||||
com.cmii.chinamobile: info
|
||||
minio:
|
||||
srcId: 1323096648758464519
|
||||
mqtt:
|
||||
single:
|
||||
host: tcp://helm-emqxs:1883
|
||||
hosts: tcp://helm-emqxs:1883
|
||||
username: cmlc
|
||||
password: odD8#Ve7.B
|
||||
hosts: tcp://helm-emqxs:1883
|
||||
host: tcp://helm-emqxs:1883
|
||||
username: cmlc
|
||||
password: odD8#Ve7.B
|
||||
qos: 1
|
||||
connectionTimeout: 10
|
||||
keepAliveInterval: 20
|
||||
gzipPayload: false
|
||||
#消息发布者clientId
|
||||
publishClientId: ai_core
|
||||
#消息订阅者clientId
|
||||
subscribeClientId: ai_core_subscribe
|
||||
ai:
|
||||
core:
|
||||
srcId: 1323096648758464519
|
||||
ware:
|
||||
defaultTenant: zjcxy
|
||||
cityCode: 510100
|
||||
projCode: demo
|
||||
printMqttSendMsg: true
|
||||
printHttpReceiveMsg: true
|
||||
printMqttReceiveMsg: true
|
||||
closeLightMqtt: false
|
||||
cacheWithRedis: false
|
||||
closePublishStandardMqtt: true
|
||||
closePublishImageRecord: false
|
||||
callbackUrl: https://www.demo.uavcmlc.com/uas/api/community/aicore/client/aiware/order/reportAiRecord
|
||||
tenants:
|
||||
zjcxy:
|
||||
# host: https://cxy-stg-soul.vimvp.cn:50920
|
||||
host: https://soul.gateway.zjcloud.com:50443
|
||||
path: /uvsg-ai/order/cdfk
|
||||
ak: 332d17324133bae0
|
||||
sk: faa05b2072fc4ab881124eef62013066
|
||||
guochuang:
|
||||
host: http://api.tools.liandanlu.cn:50000
|
||||
path: /005
|
||||
ak: 1b59cfdb4e2d8d0d
|
||||
sk: e5e5644f41354be8a4acb27e9b1ff37b
|
||||
yitong:
|
||||
host: http://183.6.114.147:6007
|
||||
path:
|
||||
ak: 1b59cfdb4e2d8d0d
|
||||
sk: e5e5644f41354be8a4acb27e9b1ff37b
|
||||
# zyly:
|
||||
# host: http://192.168.75.14:2334
|
||||
# path: /uvsg-ai/order/cdfk
|
||||
# ak: 1b59cfdb4e2d8d0d
|
||||
# sk: e5e5644f41354be8a4acb27e9b1ff37b
|
||||
cyy1:
|
||||
host: http://192.168.36.49:2333
|
||||
path: /uvsg-ai/order/cdfk
|
||||
ak: 1b59cfdb4e2d8d0d
|
||||
sk: e5e5644f41354be8a4acb27e9b1ff37b
|
||||
cyy2:
|
||||
host: http://192.168.36.49:2334
|
||||
path: /uvsg-ai/order/cdfk
|
||||
ak: 1b59cfdb4e2d8d0d
|
||||
sk: e5e5644f41354be8a4acb27e9b1ff37b
|
||||
cyy3:
|
||||
host: http://192.168.36.49:2335
|
||||
path: /uvsg-ai/order/cdfk
|
||||
ak: 1b59cfdb4e2d8d0d
|
||||
sk: e5e5644f41354be8a4acb27e9b1ff37b
|
||||
cyy4:
|
||||
host: http://192.168.36.49:2336
|
||||
path: /uvsg-ai/order/cdfk
|
||||
ak: 1b59cfdb4e2d8d0d
|
||||
sk: e5e5644f41354be8a4acb27e9b1ff37b
|
||||
qjb:
|
||||
host: http://uav.qjb1000.com:57893
|
||||
path: /uvsg-ai/order/cdfk
|
||||
ak: 1b59cfdb4e2d8d0d
|
||||
sk: e5e5644f41354be8a4acb27e9b1ff37b
|
||||
zylybig:
|
||||
host: http://192.168.35.51:6526
|
||||
path: /uvsg-ai/order/cdfk
|
||||
ak: 1b59cfdb4e2d8d0d
|
||||
sk: e5e5644f41354be8a4acb27e9b1ff37b
|
||||
# jsj1:
|
||||
# host: http://183.47.59.221:20197
|
||||
# path: /uvsg-ai/order/cdfk
|
||||
# ak: abc
|
||||
# sk: axxxx
|
||||
# jsj2:
|
||||
# host: http://183.47.59.221:20198
|
||||
# path: /uvsg-ai/order/cdfk
|
||||
# ak: abc
|
||||
# sk: axxxx
|
||||
# jsj3:
|
||||
# host: http://183.47.59.221:20199
|
||||
# path: /uvsg-ai/order/cdfk
|
||||
# ak: abc
|
||||
# sk: axxxx
|
||||
# jsj4:
|
||||
# host: http://183.47.59.221:20194
|
||||
# path: /uvsg-ai/order/cdfk
|
||||
# ak: abc
|
||||
# sk: axxxx
|
||||
# yanfa2:
|
||||
# host: http://192.168.75.21:8000
|
||||
# path: /uvsg-ai/order/cdfk
|
||||
# ak: 1b59cfdb4e2d8d0d
|
||||
# sk: e5e5644f41354be8a4acb27e9b1ff37b
|
||||
#宜通
|
||||
video:
|
||||
process:
|
||||
getUrl: http://192.168.9.4:8088/api/v2/segments/info/batch?type=2
|
||||
194
74-202603-新疆阿克苏地区/k8s-app/uav-ai-core.yaml
Normal file
194
74-202603-新疆阿克苏地区/k8s-app/uav-ai-core.yaml
Normal file
@@ -0,0 +1,194 @@
|
||||
kind: Deployment
|
||||
apiVersion: apps/v1
|
||||
metadata:
|
||||
name: cmii-uav-ai-core
|
||||
namespace: xj-aks-uav-260304
|
||||
labels:
|
||||
app.kubernetes.io/app-version: 6.2.0
|
||||
app.kubernetes.io/managed-by: octopus
|
||||
cmii.app: cmii-uav-ai-core
|
||||
cmii.type: backend
|
||||
octopus/control: backend-app-1.0.0
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
cmii.app: cmii-uav-ai-core
|
||||
cmii.type: backend
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
cmii.app: cmii-uav-ai-core
|
||||
cmii.type: backend
|
||||
spec:
|
||||
volumes:
|
||||
- name: nfs-backend-log-volume
|
||||
persistentVolumeClaim:
|
||||
claimName: nfs-backend-log-pvc
|
||||
containers:
|
||||
- name: cmii-uav-ai-core
|
||||
image: 192.168.5.41:8033/cmii/cmii-uav-ai-core:2.0.0-2026033101-arm
|
||||
ports:
|
||||
- name: pod-port
|
||||
containerPort: 8080
|
||||
protocol: TCP
|
||||
env:
|
||||
- name: K8S_NAMESPACE
|
||||
value: xj-aks-uav-260304
|
||||
- name: APPLICATION_NAME
|
||||
value: cmii-uav-ai-core
|
||||
- name: CUST_JAVA_OPTS
|
||||
value: '-Xms200m -Xmx1500m -Dlog4j2.formatMsgNoLookups=true'
|
||||
- name: NACOS_REGISTRY
|
||||
value: helm-nacos.cqejpt.svc.cluster.local:8848
|
||||
- name: NACOS_DISCOVERY_IP
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
apiVersion: v1
|
||||
fieldPath: status.podIP
|
||||
- name: NACOS_DISCOVERY_PORT
|
||||
value: '8080'
|
||||
- name: BIZ_CONFIG_GROUP
|
||||
value: 6.2.0
|
||||
- name: SYS_CONFIG_GROUP
|
||||
value: 6.2.0
|
||||
- name: IMAGE_VERSION
|
||||
value: 6.2.0
|
||||
- name: NACOS_USERNAME
|
||||
value: developer
|
||||
- name: NACOS_PASSWORD
|
||||
value: Deve@9128201
|
||||
- name: POD_NAME
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
apiVersion: v1
|
||||
fieldPath: metadata.name
|
||||
- name: POD_NAMESPACE
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
apiVersion: v1
|
||||
fieldPath: metadata.namespace
|
||||
- name: NODE_NAME
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
apiVersion: v1
|
||||
fieldPath: spec.nodeName
|
||||
- name: NODE_IP
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
apiVersion: v1
|
||||
fieldPath: status.hostIP
|
||||
- name: LIMIT_CPU
|
||||
valueFrom:
|
||||
resourceFieldRef:
|
||||
containerName: cmii-uav-ai-core
|
||||
resource: limits.cpu
|
||||
divisor: '0'
|
||||
- name: LIMIT_MEMORY
|
||||
valueFrom:
|
||||
resourceFieldRef:
|
||||
containerName: cmii-uav-ai-core
|
||||
resource: limits.memory
|
||||
divisor: '0'
|
||||
- name: REQUEST_CPU
|
||||
valueFrom:
|
||||
resourceFieldRef:
|
||||
containerName: cmii-uav-ai-core
|
||||
resource: requests.cpu
|
||||
divisor: '0'
|
||||
- name: REQUEST_MEMORY
|
||||
valueFrom:
|
||||
resourceFieldRef:
|
||||
containerName: cmii-uav-ai-core
|
||||
resource: requests.memory
|
||||
divisor: '0'
|
||||
resources:
|
||||
limits:
|
||||
cpu: '2'
|
||||
memory: 3Gi
|
||||
requests:
|
||||
cpu: 300m
|
||||
memory: 512Mi
|
||||
volumeMounts:
|
||||
- name: nfs-backend-log-volume
|
||||
mountPath: /cmii/logs
|
||||
subPath: uavcloud-devflight/cmii-uav-ai-core
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
path: /cmii/health
|
||||
port: pod-port
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 60
|
||||
timeoutSeconds: 5
|
||||
periodSeconds: 20
|
||||
successThreshold: 1
|
||||
failureThreshold: 3
|
||||
readinessProbe:
|
||||
httpGet:
|
||||
path: /cmii/health
|
||||
port: pod-port
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 60
|
||||
timeoutSeconds: 5
|
||||
periodSeconds: 20
|
||||
successThreshold: 1
|
||||
failureThreshold: 3
|
||||
startupProbe:
|
||||
httpGet:
|
||||
path: /cmii/health
|
||||
port: pod-port
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 60
|
||||
timeoutSeconds: 3
|
||||
periodSeconds: 20
|
||||
successThreshold: 1
|
||||
failureThreshold: 5
|
||||
terminationMessagePath: /dev/termination-log
|
||||
terminationMessagePolicy: File
|
||||
imagePullPolicy: Always
|
||||
restartPolicy: Always
|
||||
terminationGracePeriodSeconds: 30
|
||||
dnsPolicy: ClusterFirst
|
||||
securityContext: {}
|
||||
imagePullSecrets:
|
||||
- name: harborsecret
|
||||
affinity:
|
||||
nodeAffinity:
|
||||
requiredDuringSchedulingIgnoredDuringExecution:
|
||||
nodeSelectorTerms:
|
||||
- matchExpressions:
|
||||
- key: uavcloud.env
|
||||
operator: In
|
||||
values:
|
||||
- yuansong
|
||||
schedulerName: default-scheduler
|
||||
strategy:
|
||||
type: RollingUpdate
|
||||
rollingUpdate:
|
||||
maxUnavailable: 1
|
||||
maxSurge: 25%
|
||||
revisionHistoryLimit: 10
|
||||
progressDeadlineSeconds: 600
|
||||
---
|
||||
kind: Service
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
name: cmii-uav-ai-core
|
||||
namespace: xj-aks-uav-260304
|
||||
labels:
|
||||
app.kubernetes.io/app-version: 6.2.0
|
||||
app.kubernetes.io/managed-by: octopus
|
||||
cmii.app: cmii-uav-ai-core
|
||||
cmii.type: backend
|
||||
octopus/control: backend-app-1.0.0
|
||||
spec:
|
||||
ports:
|
||||
- name: backend-tcp
|
||||
protocol: TCP
|
||||
port: 8080
|
||||
targetPort: 8080
|
||||
selector:
|
||||
cmii.app: cmii-uav-ai-core
|
||||
cmii.type: backend
|
||||
type: ClusterIP
|
||||
|
||||
Reference in New Issue
Block a user