彩虹聚合DNS管理系统 是一款基于ThinkPHP开发的网站程序,可实现在单一网站内管理多个平台的域名解析,目前已支持的域名解析平台有:阿里云、腾讯云、华为云、百度云、西部数码、火山引擎、DNSLA、CloudFlare、Namesilo、PowerDNS
效果图如下


功能特性
- 多用户管理,可为每个用户可分配不同的域名解析权限;
- 提供API接口,可获取域名单独的登录链接,方便各种IDC系统对接;
- 容灾切换功能,支持ping、tcp、http(s)检测协议并自动暂停/修改域名解析,并支持发送通知;
- CF优选IP功能,支持获取最新的Cloudflare优选IP,并自动更新到解析记录;
- SSL证书申请与自动部署功能,支持从Let's Encrypt等渠道申请SSL证书,并自动部署到各种面板、云服务商、服务器等;
- 支持邮件、微信公众号、Telegram、钉钉、飞书、企业微信等多种通知渠道。
Linux及Docker部署
查阅官方文档
https://github.com/netcccyun/dnsmgr
Kubernetes 部署
依赖组件
- Mysql
- K8s 1.29
- namespace 我这里统一使用tools
创建PVC持久化数据
我这里使用StorageClass
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: dnsmgr-web-pvc
namespace: tools
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 30Gi
storageClassName: dsm7-nfs-client
检查PVC是否为绑定状态
root@k8s-master-01:~/dns_web# kubectl get pvc -n tools |grep dns
dnsmgr-web-pvc Bound pvc-d3833465-9c24-408e-8170-5aa112b5b06a 30Gi RWX dsm7-nfs-client <unset> 13s
部署应用
- 这里我使用PVC持久化挂载/app/www目录
- image 默认使用本站提供域名加速地址
apiVersion: apps/v1
kind: Deployment
metadata:
name: dnsmgr-web
namespace: tools
spec:
replicas: 1
selector:
matchLabels:
app: dnsmgr-web
template:
metadata:
labels:
app: dnsmgr-web
spec:
containers:
- name: dnsmgr-web
image: dockerproxy.frps.fun/netcccyun/dnsmgr:latest
ports:
- containerPort: 80
volumeMounts:
- name: dnsmgr-web-volume
mountPath: /app/www
tty: true
stdin: true
volumes:
- name: dnsmgr-web-volume
persistentVolumeClaim:
claimName: dnsmgr-web-pvc
部署svc,我这里依旧使用nodeport访问
apiVersion: v1
kind: Service
metadata:
name: dnsmgr-web-service
namespace: tools
spec:
selector:
app: dnsmgr-web
ports:
- protocol: TCP
port: 80
targetPort: 80
type: NodePort
检查Pod和SVC状态
root@k8s-master-01:~/dns_web# kubectl get pod,svc -n tools|grep dns
pod/dnsmgr-web-76f6b675fc-jqvvq 1/1 Running 0 56s
service/dnsmgr-web-service NodePort 10.96.3.19 <none> 80:31914/TCP 8s
数据库配置
创建dns使用数据库
数据库这里不使用k8s部署,自行找二进制搭建
#Mysql需要在my.conf中开启以下配置
[mysqld]
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
登陆mysql创建数据库
CREATE DATABASE dnsmgr DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
create user 'dnsmgr'@'%' identified by 'PxpNdjCKfimiTYDG';
grant all privileges on *.* to 'dnsmgr'@'%' identified by "PxpNdjCKfimiTYDG";
DNS页面配置
这里service已经部署完毕,我们使用nodeip:31914访问测试

和WordPress安装方式一样,在安装的时候会执行SQL,这里没有报错继续下一步

输入我们刚刚配置的密码
登录完毕
配置DNSPod
我这里使用DNSpod作为演示
新增域名账户

这里我选择腾讯云
登录腾讯云创建秘钥

返回平台,输入进去就可以了

接下来返回域名,找到域名管理,添加要管理的域名
选择需要添加的域名

添加完成后效果如下
后续就可以对域名进行管理,以及HTTPS证书的管理

