d299a1f295d6a

Kubernetes部署DNSmgr聚合公网DNS多平台域名解析系统及SSL自续签

释放双眼,带上耳机,听听看~!

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

效果图如下
Kubernetes部署DNSmgr聚合公网DNS多平台域名解析系统及SSL自续签
Kubernetes部署DNSmgr聚合公网DNS多平台域名解析系统及SSL自续签

Kubernetes部署DNSmgr聚合公网DNS多平台域名解析系统及SSL自续签

 

功能特性

  • 多用户管理,可为每个用户可分配不同的域名解析权限;
  • 提供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访问测试

Kubernetes部署DNSmgr聚合公网DNS多平台域名解析系统及SSL自续签

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

Kubernetes部署DNSmgr聚合公网DNS多平台域名解析系统及SSL自续签

输入我们刚刚配置的密码
Kubernetes部署DNSmgr聚合公网DNS多平台域名解析系统及SSL自续签

登录完毕
Kubernetes部署DNSmgr聚合公网DNS多平台域名解析系统及SSL自续签

配置DNSPod

我这里使用DNSpod作为演示

新增域名账户

Kubernetes部署DNSmgr聚合公网DNS多平台域名解析系统及SSL自续签

这里我选择腾讯云
Kubernetes部署DNSmgr聚合公网DNS多平台域名解析系统及SSL自续签

登录腾讯云创建秘钥

https://console.cloud.tencent.com/cam/capi

Kubernetes部署DNSmgr聚合公网DNS多平台域名解析系统及SSL自续签

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

Kubernetes部署DNSmgr聚合公网DNS多平台域名解析系统及SSL自续签

接下来返回域名,找到域名管理,添加要管理的域名
Kubernetes部署DNSmgr聚合公网DNS多平台域名解析系统及SSL自续签

选择需要添加的域名

Kubernetes部署DNSmgr聚合公网DNS多平台域名解析系统及SSL自续签

添加完成后效果如下
Kubernetes部署DNSmgr聚合公网DNS多平台域名解析系统及SSL自续签

后续就可以对域名进行管理,以及HTTPS证书的管理
Kubernetes部署DNSmgr聚合公网DNS多平台域名解析系统及SSL自续签

给TA打赏
共{{data.count}}人
人已打赏
GrafanaKubernetes监控与日志

Kubernetes Grafana数据从Sqlite3迁移到MySQL

2025-7-15 14:08:07

Kubernetes自托管应用

Kubernetes部署开源Excalidraw实现在线绘图

2025-7-18 13:09:28

0 条回复 A文章作者 M管理员
data
commentData
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索