docker container for prober
This commit is contained in:
1 parent
550ce3fec4
commit
6f5aa35df5
7 files changed
+68
No files matched your search
Vendored
BIN
Binary file not shown.
Vendored
BIN
Binary file not shown.
@@ -0,0 +1,34 @@
|
|||||||
|
Сборка образа (из корня репозитория):
|
||||||
|
|
||||||
|
docker build --platform linux/amd64 -t cloud-ip-validator-prober -f deploy/docker/prober/Dockerfile .
|
||||||
|
|
||||||
|
Запуск контейнера-пробера:
|
||||||
|
|
||||||
|
docker run -d --platform linux/amd64 --cap-add NET_RAW --name prober \
|
||||||
|
-e PROBER_SITE_ID=<site_id> \
|
||||||
|
-e PROBER_CONTROL_API_URL=<http://control-api-host:port> \
|
||||||
|
-e PROBER_POLL_INTERVAL_SECONDS=5 \
|
||||||
|
-e PROBER_TCP_TIMEOUT_SECONDS=5 \
|
||||||
|
-e PROBER_ICMP_TIMEOUT_SECONDS=5 \
|
||||||
|
-e PROBER_ICMP_COUNT=3 \
|
||||||
|
cloud-ip-validator-prober
|
||||||
|
|
||||||
|
Рабочий пример (стенд 62.176.10.113):
|
||||||
|
|
||||||
|
docker run -d --platform linux/amd64 --cap-add NET_RAW --name prober \
|
||||||
|
-e PROBER_SITE_ID=sbas \
|
||||||
|
-e PROBER_CONTROL_API_URL=http://62.176.10.113:8081 \
|
||||||
|
cloud-ip-validator-prober
|
||||||
|
|
||||||
|
Переменные окружения:
|
||||||
|
PROBER_SITE_ID обязательная, должна быть зарегистрирована в
|
||||||
|
control-api (PUT /api/v1/admin/config/sites/{index})
|
||||||
|
PROBER_CONTROL_API_URL обязательная
|
||||||
|
PROBER_POLL_INTERVAL_SECONDS опциональная, дефолт 5
|
||||||
|
PROBER_TCP_TIMEOUT_SECONDS опциональная, дефолт 5
|
||||||
|
PROBER_ICMP_TIMEOUT_SECONDS опциональная, дефолт 5
|
||||||
|
PROBER_ICMP_COUNT опциональная, дефолт 3
|
||||||
|
|
||||||
|
Примечания:
|
||||||
|
--platform linux/amd64 бинарник в bin/ собран под Linux x86_64
|
||||||
|
--cap-add NET_RAW нужен проберу для ICMP-проверок
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
FROM alpine:3.20
|
||||||
|
|
||||||
|
RUN apk add --no-cache gettext
|
||||||
|
|
||||||
|
COPY bin/prober /usr/local/bin/prober
|
||||||
|
COPY deploy/docker/prober/prober.yaml.tmpl /etc/prober/prober.yaml.tmpl
|
||||||
|
COPY deploy/docker/prober/docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh
|
||||||
|
|
||||||
|
RUN chmod +x /usr/local/bin/docker-entrypoint.sh
|
||||||
|
|
||||||
|
ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"]
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
set -eu
|
||||||
|
|
||||||
|
: "${PROBER_SITE_ID:?PROBER_SITE_ID is required}"
|
||||||
|
: "${PROBER_CONTROL_API_URL:?PROBER_CONTROL_API_URL is required}"
|
||||||
|
|
||||||
|
export PROBER_POLL_INTERVAL_SECONDS="${PROBER_POLL_INTERVAL_SECONDS:-5}"
|
||||||
|
export PROBER_TCP_TIMEOUT_SECONDS="${PROBER_TCP_TIMEOUT_SECONDS:-5}"
|
||||||
|
export PROBER_ICMP_TIMEOUT_SECONDS="${PROBER_ICMP_TIMEOUT_SECONDS:-5}"
|
||||||
|
export PROBER_ICMP_COUNT="${PROBER_ICMP_COUNT:-3}"
|
||||||
|
|
||||||
|
envsubst '${PROBER_SITE_ID} ${PROBER_CONTROL_API_URL} ${PROBER_POLL_INTERVAL_SECONDS} ${PROBER_TCP_TIMEOUT_SECONDS} ${PROBER_ICMP_TIMEOUT_SECONDS} ${PROBER_ICMP_COUNT}' \
|
||||||
|
< /etc/prober/prober.yaml.tmpl > /etc/prober/prober.yaml
|
||||||
|
|
||||||
|
exec /usr/local/bin/prober -config /etc/prober/prober.yaml
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
site_id: "${PROBER_SITE_ID}"
|
||||||
|
control_api_url: "${PROBER_CONTROL_API_URL}"
|
||||||
|
poll_interval_seconds: ${PROBER_POLL_INTERVAL_SECONDS}
|
||||||
|
|
||||||
|
checks:
|
||||||
|
tcp_timeout_seconds: ${PROBER_TCP_TIMEOUT_SECONDS}
|
||||||
|
icmp_timeout_seconds: ${PROBER_ICMP_TIMEOUT_SECONDS}
|
||||||
|
icmp_count: ${PROBER_ICMP_COUNT}
|
||||||
Reference in new issue
Block a user