004_部署dns服务_bind9

简介: 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"
相关文章
|
1月前
|
监控 负载均衡 Cloud Native
ZooKeeper分布式协调服务详解:面试经验与必备知识点解析
【4月更文挑战第9天】本文深入剖析ZooKeeper分布式协调服务原理,涵盖核心概念如Server、Client、ZNode、ACL、Watcher,以及ZAB协议在一致性、会话管理、Leader选举中的作用。讨论ZooKeeper数据模型、操作、会话管理、集群部署与管理、性能调优和监控。同时,文章探讨了ZooKeeper在分布式锁、队列、服务注册与发现等场景的应用,并在面试方面分析了与其它服务的区别、实战挑战及解决方案。附带Java客户端实现分布式锁的代码示例,助力提升面试表现。
123 2
|
2天前
|
Linux 编译器 调度
xenomai内核解析--双核系统调用(二)--应用如何区分xenomai/linux系统调用或服务
本文介绍了如何将POSIX应用程序编译为在Xenomai实时内核上运行的程序。
17 1
xenomai内核解析--双核系统调用(二)--应用如何区分xenomai/linux系统调用或服务
|
13天前
|
前端开发 API UED
AngularJS的$http服务:深入解析与进行HTTP请求的技术实践
【4月更文挑战第28天】AngularJS的$http服务是核心组件,用于发起HTTP请求与服务器通信。$http服务简化了通信过程,通过深入理解和实践,能构建高效、可靠的前端应用。
|
16天前
|
canal 缓存 关系型数据库
Spring Boot整合canal实现数据一致性解决方案解析-部署+实战
Spring Boot整合canal实现数据一致性解决方案解析-部署+实战
|
18天前
|
网络协议 Linux 网络安全
Centos7 配置DNS服务
该教程指导配置DNS服务器:首先通过yum安装bind和cach件,然后修改IP设置。接着,编辑/etc/named.conf,将第13行和21行的参数改为&quot;any&quot;。在/etc/named.rfc1912中更新正向和反向域名。创建正向解析文件/var/named.localhost和反向解析文件/var/named.loopback,按指定格式添加解析记录。最后,重启服务,确保防火墙关闭,通过nslookup检查DNS配置效果。
25 1
|
19天前
|
存储 JSON 前端开发
Javaweb之SpringBootWeb案例之阿里云OSS服务集成的详细解析
Javaweb之SpringBootWeb案例之阿里云OSS服务集成的详细解析
18 0
|
19天前
|
存储 开发工具 对象存储
Javaweb之SpringBootWeb案例之阿里云OSS服务入门的详细解析
Javaweb之SpringBootWeb案例之阿里云OSS服务入门的详细解析
19 0
|
19天前
|
存储 文字识别 安全
Javaweb之SpringBootWeb案例之阿里云OSS服务的详细解析
Javaweb之SpringBootWeb案例之阿里云OSS服务的详细解析
19 0
|
26天前
|
域名解析 缓存 网络协议
Linux 配置DNS服务
该内容是关于DNS配置的教程,介绍了DNS的基本功能——域名到IP地址的转换。在Redhat 9环境下,通过`yum`安装`bind`服务,然后配置`named`服务并设置开机启动,关闭防火墙和SELinux。接着,配置域名解析文件`resolv.conf`,修改`named.conf`以允许所有查询,并创建正反向解析的区域配置文件。通过`nslookup`测试解析,发现权限问题后调整文件权限,最终实现成功解析。另一台机器的DNS地址设置为第一台的IP地址,完成DNS服务器的配置。
49 0
|
27天前
|
人工智能 并行计算 PyTorch
Stable Diffusion 本地部署教程:详细步骤与常见问题解析
【4月更文挑战第12天】本教程详细介绍了如何在本地部署Stable Diffusion模型,包括安装Python 3.8+、CUDA 11.3+、cuDNN、PyTorch和torchvision,克隆仓库,下载预训练模型。配置运行参数后,通过运行`scripts/run_diffusion.py`生成图像。常见问题包括CUDA/CuDNN版本不匹配、显存不足、API密钥问题、模型加载失败和生成质量不佳,可按教程提供的解决办法处理。进阶操作包括使用自定义提示词和批量生成图像。完成这些步骤后,即可开始Stable Diffusion的AI艺术创作。
57 2

推荐镜像

更多