004_部署dns服务_bind9

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 004_部署dns服务_bind9

专注方向:

自动化流程服务

it咨询

it在线教学

doc

https://bind9.readthedocs.io/en/latest/reference.html

介绍

通常按照 ip 访问服务是不太合理的, ip 经常会发生变化

所以我们想要使用域名的方式,来访问服务

现在常用的是ingress 代理 k8s 的 svc 来提供域名访问。


但是在使用 ingress之前,我们需要 部署自己的 dns 服务,来将服务指向 ingress 所在的 ip 地址。

这样用户才可以 使用 域名 来访问 其他服务, 而不需要知道它们的 ip


我们选择用 bind9 来作为 dns 服务器, 当然除了支持 ingress 以外, dns 服务本身,在互联网或者企业内部,也是具有很多应用场景的。

参考

bind9\yml

准备镜像

host_ip=192.168.31.21
export  http_proxy="http://${host_ip}:7890"
export  https_proxy="http://${host_ip}:7890"
export  no_proxy="localhost,127.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,.svc,.cluster.local,my-cluster-endpoint.com"
# yeah, ctr can pull images with the env variable http_proxy, but crictl cannot~
ctr -n k8s.io images pull   docker.io/ubuntu/bind9:9.18-22.04_beta

deployment

cd /git_proj/blogs/bind9/yml
kubectl apply -f bind9-deployment.yml
# 重启, 生效配置变更
kubectl replace --force -f bind9-deployment.yml
kubectl rollout restart -n bind9 deployment

修改 dns 配置文件

mkdir -p /data/bind9/etc/bind/
cat > /data/bind9/etc/bind/named.conf <<EOF
options {
    dnssec-validation no;
    allow-query { any; };
    forward first;
    forwarders {
        119.29.29.29;
    };
};
include "/etc/bind/named.conf.local";
EOF
cat > /data/bind9/etc/bind/named.conf.local <<EOF
zone "dev.inner.ymk.com" {
        type master;
        file "/etc/bind/db.dev.inner.ymk.com";
};
EOF
cat > /data/bind9/etc/bind/db.dev.inner.ymk.com <<"EOF"
$TTL 86400
@ IN SOA localhost. root.localhost. (
        1  ; Serial
    604800  ; Refresh
    86400  ; Retry
   2419200  ; Expire
    86400 ) ; Negative Cache TTL
;
@ IN NS localhost.
ingress    IN      A   192.168.31.241
wiki    IN      A   192.168.31.241
share    IN      A   192.168.31.241
workflow    IN      A   192.168.31.241
gerrit    IN      A   192.168.31.241
gitlab    IN      A   192.168.31.241
jenkins    IN      A   192.168.31.241
release    IN      A   192.168.31.241
mirrors    IN      A   192.168.31.241
repo    IN      A   192.168.31.241
pan    IN      A   192.168.31.241
ldap   IN      A   192.168.31.241
nginx-demo    IN      A   192.168.31.225
EOF

windows 查看 与 刷新 dns 缓存

ipconfig /displaydns
ipconfig /flushdns
nslookup wiki.dev.inner.ymk.com 192.168.31.234
# 服务器:  UnKnown
# Address:  192.168.31.234
# 名称:    wiki.dev.inner.ymk.com
# Address:  192.168.31.241
# 修改 windows 默认 dns 后
ping  wiki.dev.inner.ymk.com
nslookup nginx-demo.dev.inner.ymk.com 192.168.31.234
nginx-demo.dev.inner.ymk.com

bind9-deployment.yml

apiVersion: v1
kind: Namespace
metadata:
  name: bind9
  labels:
    name: bind9
---
apiVersion: v1
kind: Service
metadata:
  namespace: bind9
  name: bind9-service
  labels:
    app: bind9
spec:
  selector:
    app: bind9
  ports:
  - protocol: TCP
    port: 53
    targetPort: 53
    name: bind9-tcp
  - protocol: UDP
    port: 53
    targetPort: 53
    name: bind9
  type: LoadBalancer
  loadBalancerIP: 192.168.31.234
---
apiVersion: apps/v1
kind: Deployment
metadata:
  namespace: bind9
  name: bind9-deployment
spec:
  replicas: 1
  selector:
    matchLabels:
      app: bind9
  template:
    metadata:
      labels:
        app: bind9
    spec:
      containers:
      - name: bind9
        image:  docker.io/ubuntu/bind9:9.18-22.04_beta
        env:
        - name: BIND9_USER
          value: "root"
        ports:
        - containerPort: 53
          protocol: TCP
        - containerPort: 53
          protocol: UDP
        volumeMounts:
            - name: bind-config
              mountPath: /etc/bind/
            - name: bind-cache
              mountPath: /var/cache/bind
            - name: bind-lib
              mountPath: /var/lib/bind
      volumes:
      - name: bind-config
        hostPath:
          path: "/data/bind9/etc/bind/"
      - name: bind-cache
        hostPath:
          path: "/data/bind9/var/cache/bind"
      - name: bind-lib
        hostPath:
          path: "/data/bind9/var/lib/bind"
相关文章
|
15天前
|
自然语言处理 数据可视化 BI
文档解析(大模型版)服务体验评测
体验文档解析(大模型版)服务时,清晰的入门指南、操作手册和FAQ至关重要。若存在不足,需增加直观的操作流程说明(如动画演示)、深化高级功能文档,并提供实时在线支持,帮助用户快速解决问题。
|
1月前
|
网络协议 网络安全
基于bind软件部署DNS服务器
关于如何使用bind软件部署DNS服务器的教程,包括DNS服务器的类型、基于bind软件的部署步骤、验证DNS服务器可用性的指导,以及如何进行DNS正向解析的实现。
26 2
基于bind软件部署DNS服务器
|
20天前
|
弹性计算 自然语言处理 数据可视化
|
29天前
|
存储 消息中间件 算法
深入解析OpenStack Cinder:块存储服务详解
本文介绍了OpenStack及其块存储服务Cinder。OpenStack是一个开源云计算管理平台,提供基础设施即服务(IaaS),核心服务包括计算、网络、存储等。Cinder主要用于为虚拟机提供持久性块存储,具备多种功能,如卷操作、备份、快照及与实例的交互等。此外,还详细介绍了Cinder的工作流程、命令行操作及不同存储插件的使用。
|
1月前
|
域名解析 网络协议
DNS服务工作原理
文章详细介绍了DNS服务的工作原理,包括FQDN的概念、名称解析过程、DNS域名分级策略、根服务器的作用、DNS解析流程中的递归查询和迭代查询,以及为何有时基于IP能访问而基于域名不能访问的原因。
61 2
|
2月前
|
开发者 图形学 iOS开发
掌握Unity的跨平台部署与发布秘籍,让你的游戏作品在多个平台上大放异彩——从基础设置到高级优化,深入解析一站式游戏开发解决方案的每一个细节,带你领略高效发布流程的魅力所在
【8月更文挑战第31天】跨平台游戏开发是当今游戏产业的热点,尤其在移动设备普及的背景下更为重要。作为领先的游戏开发引擎,Unity以其卓越的跨平台支持能力脱颖而出,能够将游戏轻松部署至iOS、Android、PC、Mac、Web及游戏主机等多个平台。本文通过杂文形式探讨Unity在各平台的部署与发布策略,并提供具体实例,涵盖项目设置、性能优化、打包流程及发布前准备等关键环节,助力开发者充分利用Unity的强大功能,实现多平台游戏开发。
53 0
|
2月前
|
Java 缓存 数据库连接
揭秘!Struts 2性能翻倍的秘诀:不可思议的优化技巧大公开
【8月更文挑战第31天】《Struts 2性能优化技巧》介绍了提升Struts 2 Web应用响应速度的关键策略,包括减少配置开销、优化Action处理、合理使用拦截器、精简标签库使用、改进数据访问方式、利用缓存机制以及浏览器与网络层面的优化。通过实施这些技巧,如懒加载配置、异步请求处理、高效数据库连接管理和启用GZIP压缩等,可显著提高应用性能,为用户提供更快的体验。性能优化需根据实际场景持续调整。
49 0
|
2月前
|
Java 数据库 API
JSF与JPA的史诗级联盟:如何编织数据持久化的华丽织锦,重塑Web应用的荣耀
【8月更文挑战第31天】JavaServer Faces (JSF) 和 Java Persistence API (JPA) 分别是构建Java Web应用的用户界面组件框架和持久化标准。结合使用JSF与JPA,能够打造强大的数据驱动Web应用。首先,通过定义实体类(如`User`)和配置`persistence.xml`来设置JPA环境。然后,在JSF中利用Managed Bean(如`UserBean`)管理业务逻辑,通过`EntityManager`执行数据持久化操作。
38 0
|
2月前
|
开发者 iOS开发 C#
Uno Platform 入门超详细指南:从零开始教你打造兼容 Web、Windows、iOS 和 Android 的跨平台应用,轻松掌握 XAML 与 C# 开发技巧,快速上手示例代码助你迈出第一步
【8月更文挑战第31天】Uno Platform 是一个基于 Microsoft .NET 的开源框架,支持使用 C# 和 XAML 构建跨平台应用,适用于 Web(WebAssembly)、Windows、Linux、macOS、iOS 和 Android。它允许开发者共享几乎全部的业务逻辑和 UI 代码,同时保持原生性能。选择 Uno Platform 可以统一开发体验,减少代码重复,降低开发成本。安装时需先配置好 Visual Studio 或 Visual Studio for Mac,并通过 NuGet 或官网下载工具包。
56 0
|
2月前
|
开发者 算法 虚拟化
惊爆!Uno Platform 调试与性能分析终极攻略,从工具运用到代码优化,带你攻克开发难题成就完美应用
【8月更文挑战第31天】在 Uno Platform 中,调试可通过 Visual Studio 设置断点和逐步执行代码实现,同时浏览器开发者工具有助于 Web 版本调试。性能分析则利用 Visual Studio 的性能分析器检查 CPU 和内存使用情况,还可通过记录时间戳进行简单分析。优化性能涉及代码逻辑优化、资源管理和用户界面简化,综合利用平台提供的工具和技术,确保应用高效稳定运行。
39 0

推荐镜像

更多
下一篇
无影云桌面