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"
相关文章
|
18天前
|
机器学习/深度学习 安全 大数据
揭秘!企业级大模型如何安全高效私有化部署?全面解析最佳实践,助你打造智能业务新引擎!
【10月更文挑战第24天】本文详细探讨了企业级大模型私有化部署的最佳实践,涵盖数据隐私与安全、定制化配置、部署流程、性能优化及安全措施。通过私有化部署,企业能够完全控制数据,确保敏感信息的安全,同时根据自身需求进行优化,提升计算性能和处理效率。示例代码展示了如何利用Python和TensorFlow进行文本分类任务的模型训练。
55 6
|
1月前
|
存储 缓存 算法
分布式锁服务深度解析:以Apache Flink的Checkpointing机制为例
【10月更文挑战第7天】在分布式系统中,多个进程或节点可能需要同时访问和操作共享资源。为了确保数据的一致性和系统的稳定性,我们需要一种机制来协调这些进程或节点的访问,避免并发冲突和竞态条件。分布式锁服务正是为此而生的一种解决方案。它通过在网络环境中实现锁机制,确保同一时间只有一个进程或节点能够访问和操作共享资源。
63 3
|
16天前
|
域名解析 缓存 网络协议
浏览器中输入URL返回页面过程(超级详细)、DNS域名解析服务,TCP三次握手、四次挥手
浏览器中输入URL返回页面过程(超级详细)、DNS域名解析服务,TCP三次握手、四次挥手
|
16天前
|
监控 Cloud Native 持续交付
云原生技术深度解析:重塑现代应用开发与部署范式####
本文深入探讨了云原生技术的核心概念、关键技术组件及其在现代软件开发中的重要性。通过剖析容器化、微服务架构、持续集成/持续部署(CI/CD)等关键技术,本文旨在揭示云原生技术如何促进应用的敏捷性、可扩展性和高可用性,进而推动企业数字化转型进程。不同于传统摘要仅概述内容要点,本部分将融入具体案例分析,直观展示云原生技术在实际应用中的显著成效与挑战应对策略,为读者提供更加丰富、立体的理解视角。 ####
|
17天前
|
安全 测试技术 数据安全/隐私保护
原生鸿蒙应用市场开发者服务的技术解析:从集成到应用发布的完整体验
原生鸿蒙应用市场开发者服务的技术解析:从集成到应用发布的完整体验
|
2月前
|
自然语言处理 数据可视化 BI
文档解析(大模型版)服务体验评测
体验文档解析(大模型版)服务时,清晰的入门指南、操作手册和FAQ至关重要。若存在不足,需增加直观的操作流程说明(如动画演示)、深化高级功能文档,并提供实时在线支持,帮助用户快速解决问题。
|
2月前
|
弹性计算 自然语言处理 数据可视化
|
1月前
|
网络安全 Docker 容器
【Bug修复】秒杀服务器异常,轻松恢复网站访问--从防火墙到Docker服务的全面解析
【Bug修复】秒杀服务器异常,轻松恢复网站访问--从防火墙到Docker服务的全面解析
25 0
|
1月前
|
存储 缓存 网络协议
搭建dns服务常见报错--查看/etc/named.conf没有错误日志信息却显示出错(/etc/named.conf:49: missing ‘;‘ before ‘include‘)及dns介绍
搭建dns服务常见报错--查看/etc/named.conf没有错误日志信息却显示出错(/etc/named.conf:49: missing ‘;‘ before ‘include‘)及dns介绍
110 0
|
2月前
|
存储 消息中间件 算法
深入解析OpenStack Cinder:块存储服务详解
本文介绍了OpenStack及其块存储服务Cinder。OpenStack是一个开源云计算管理平台,提供基础设施即服务(IaaS),核心服务包括计算、网络、存储等。Cinder主要用于为虚拟机提供持久性块存储,具备多种功能,如卷操作、备份、快照及与实例的交互等。此外,还详细介绍了Cinder的工作流程、命令行操作及不同存储插件的使用。
402 8

推荐镜像

更多