Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/zhangguanzhang/dummy-tool
Linux dummy 接口工具,支持 x86_64/arm64/loong64/mips64le
https://github.com/zhangguanzhang/dummy-tool
amd64 arm64 dummy linux loong64 loopback mips64
Last synced: about 4 hours ago
JSON representation
Linux dummy 接口工具,支持 x86_64/arm64/loong64/mips64le
- Host: GitHub
- URL: https://github.com/zhangguanzhang/dummy-tool
- Owner: zhangguanzhang
- License: apache-2.0
- Created: 2021-02-18T12:07:14.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2024-09-12T09:32:43.000Z (about 2 months ago)
- Last Synced: 2024-09-12T20:39:41.153Z (about 2 months ago)
- Topics: amd64, arm64, dummy, linux, loong64, loopback, mips64
- Language: Go
- Homepage:
- Size: 26.4 KB
- Stars: 8
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# dummy tool
## 描述
参照 [node-cache](https://github.com/kubernetes/dns/tree/master/cmd/node-cache) 代码,扣出 dummy 接口的部分,可以用在 k8s 里 initContainer阶段设置一个 dummy 接口, 以及守护进程,kube-proxy 的 ipvs 模式就是把 svc 的 ip 配置在 dummy 接口上,然后 lvs 的 nat 规则。
## docker images
```
registry.aliyuncs.com/zhangguanzhang/dummy-tool:v0.1.1
# https://cr.loongnix.cn/search loongarch64 镜像
registry.aliyuncs.com/zhangguanzhang/dummy-tool:v0.1.1-loong64
```## 参数
```
Usage of /dummy-tool:
Run as a dummy interface tool at initContainer or a Container in kubernetes pod
-check-interval duration
interval(in seconds) to check for interface status and addr (default 5s)
-health-port string
port used by health check, ex: 0.0.0.0:8080 (default "8080")
-interface-name string
name of the interface to be created (default "nodelocaldns")
-local-ip string
comma-separated string of ip addresses to bind localdns process to
-setup-interface
indicates whether network interface should be setup (default true)
-exit-remove
will remove the interface when exit (default true)
-version
print version info and exit
```## example run
### cli run
```
/dummy-tool -local-ip 169.254.10.10,172.26.0.2 -health-port 8070/dummy-tool -local-ip 169.254.10.10 -health-port 8070
/dummy-tool -local-ip 169.254.10.10 -health-port=""
```### docker-compose
部署一个本地 dns
`docker-compose.yml`:
```yaml
version: '3.5'
services:
dns: # port: tcp/80
image: coredns/coredns:1.8.3
hostname: coredns
restart: always
container_name: wps-coredns
network_mode: host
cap_drop:
- ALL
cap_add:
- NET_BIND_SERVICE
depends_on:
- dummy
volumes:
- ./coredns/:/etc/coredns
- /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime:ro
command: ["-conf", "/etc/coredns/Corefile"]
logging:
driver: json-file
options:
max-file: '3'
max-size: 70mdummy:
image: registry.aliyuncs.com/zhangguanzhang/dummy-tool:v0.1.1
hostname: dummy
restart: always
container_name: wps-dummy
network_mode: host
cap_add:
- NET_ADMIN
volumes:
- /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime:ro
command:
- -local-ip=169.254.20.10
- -check-interval=5s
- -health-port=
- -interface-name=nodelocaldns
- -setup-interface
- -exit-remove=false
logging:
driver: json-file
options:
max-file: '3'
max-size: 7m
````./coredns/Corefile`:
```
.:53 {
bind 169.254.20.10
errors
health :8079
hosts /etc/coredns/hosts {
no_reverse
reload 5s
fallthrough
}prometheus :9153
forward . /etc/resolv.conf
cache 30
loop
reload
loadbalance
}```