ddns_client, used with coredns/etcd
Project description
DDNS
采用以下开源项目作为核心实现:
- CoreDNS: https://coredns.io/
- Etcd: https://etcd.io/
获取公网IP接口(多个容错):
日志/指标方案支持以下:
- fluentd: https://github.com/fluent/fluentd
- prometheus: https://github.com/prometheus/prometheus
- netdata/statsd: https://github.com/netdata/netdata, https://github.com/statsd/statsd
部署方案支持以下:
- systemd: https://github.com/systemd/systemd
- docker: https://github.com/moby/moby
- k8s: https://github.com/kubernetes/kubernetes
其他参数支持:
- pid
客户端采用技术:
- python3.6: https://docs.python.org/3.6/
- logging/asyncio:
- uvloop: https://github.com/MagicStack/uvloop
- etcd: https://github.com/kragniz/python-etcd3
fluentd: https://github.com/fluent/fluent-logger-python#使用tcp通信, 与架构兼容性不好- fluentd: https://docs.fluentd.org/input/udp
- statsd: https://github.com/jsocol/pystatsd
- prometheus: https://github.com/prometheus/client_python
- aiohttp: https://github.com/aio-libs/aiohttp
- color: https://github.com/tartley/colorama, https://github.com/xolox/python-coloredlogs
实现方案考虑
coredns + /etc/hosts + python server/client
coredns + etcd + python client
最终方案选择
降低对环境的耦合, 不对 /etc/hosts
进行操作(简单性能一般), 最终采用 coredns + etcd + python client
方案。
部署方案考虑
支持以下方案(平台支持: linux/amd64+arm64):
- 二进制/systemd
- Docker/docker-compose/docker-swarm
- k8s
周边生态考虑
支持以下项目:
-
参数配置
-
日志输出:
- 标准输出/错误
- 日志文件(根据信号支持重新打开): logging
- fluentd输出: fluentd-python
-
指标输出:
- http/https: prometheus
- netdata/statsd: statsd-python
-
信号处理:
- 重启加载日志
- stop/quit/reopen/reload
运行流程图
读取配置文件:
运行:
安装部署
# brotlipy(aiohttp[speedup]) requirements
apt install -y build-essential python3.6-dev libffi-dev
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
ddns_client-0.5.tar.gz
(7.7 kB
view hashes)
Built Distribution
ddns_client-0.5-py3-none-any.whl
(20.6 kB
view hashes)
Close
Hashes for ddns_client-0.5-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3f52c8fdd1765a947ac7b6ec7c14269ced8261d84f299120488adc482f974fbd |
|
MD5 | 1428dbce39467d6b75bf37b10dbbf897 |
|
BLAKE2b-256 | e6891328711ebe2ee74967b3957ee89939be1e84eb1176f29dd5ee461a58dcc2 |