定制k8s域名解析------CoreDns配置实验

定制k8s域名解析------CoreDns配置实验

1. 需求

k8s集群内通过CoreDns互相解析service名.

同时pana.cn域为外部dns解析,需要通过指定dns服务器进行解析

再有3个服务器,需要使用A记录进行解析

2. K8s外DNS服务器

查看解析文件

bash 复制代码
tail -3 /var/named/pana.cn.zone 

解析内容

bash 复制代码
www     A       192.168.126.77
ftp     A       192.168.126.7
web     A       192.168.126.17

测试

bash 复制代码
dig www.pana.cn @192.168.126.77

3. 部署测试容器

3.1 部署测试容器

admin-deploy.yaml

yaml 复制代码
apiVersion: apps/v1
kind: Deployment
metadata:
  name: admin-deployment
  labels:
    app: admin
spec:
  replicas: 1
  selector:
    matchLabels:
      app: admin
  template:
    metadata:
      labels:
        app: admin
    spec:
      containers:
      - name: admin
        image: qiuqin/admin_tools:latest
        imagePullPolicy: IfNotPresent

部署容器

bash 复制代码
kubectl apply -f admin-deploy.yaml 

3.2 测试解析

显然现在没有办法解析到集群外dns中的内容

bash 复制代码
kubectl exec -it admin-deployment-59b4d7746c-cv967 dig www.pana.cn

4. CoreDns配置

4.1 配置coredns configmap

bash 复制代码
kubectl edit cm -n kube-system coredns 

在Corefile下追加以下内容

yaml 复制代码
    pana.cn:53 {
        errors
        cache 30
        forward . 192.168.126.77
    }

将coredns相关pod删除重建

bash 复制代码
kubectl get pods -n kube-system
kubectl delete pod coredns-857d9ff4c9-2vwj8 coredns-857d9ff4c9-hwr2n -n kube-system 
kubectl get pods -n kube-system

确认pod已更新

4.2 测试解析

可以看到现在已经可以解析到k8s集群外dns服务器中的记录了.

bash 复制代码
kubectl exec -it admin-deployment-59b4d7746c-cv967 dig www.pana.cn
kubectl exec -it admin-deployment-59b4d7746c-cv967 dig ftp.pana.cn

5. 解析单条记录

5.1 CoreDns configmap配置

测试一条记录test.aa.cc,显然现在是没法解析的

bash 复制代码
kubectl exec -it admin-deployment-59b4d7746c-cv967 dig test.aa.cc

一样修改coredns的configmap

加入hosts {} 内容,注意位置要在.:53{}中

yaml 复制代码
apiVersion: v1
data:
  Corefile: |
    pana.cn:53 {
        errors
        cache 30
        forward . 192.168.126.77
    }
    .:53 {
        errors
        health {
           lameduck 5s
        }
        ready
        kubernetes cluster.local in-addr.arpa ip6.arpa {
           pods insecure
           fallthrough in-addr.arpa ip6.arpa
           ttl 30
        }
        hosts {
            10.195.1.8 test.aa.cc
            192.168.31.7 aa.bb.tt
            172.31.125.4 qiu.qin.com
        }
        prometheus :9153
        forward . /etc/resolv.conf {
           max_concurrent 1000
        }
        cache 30
        loop
        reload
        loadbalance
    }
kind: ConfigMap
metadata:
  creationTimestamp: "2024-03-10T12:21:53Z"
  name: coredns
  namespace: kube-system
  resourceVersion: "9546954"
  uid: 1fa9a51c-0c22-4d6d-9d29-00a0d147d8ed

删除pod使得coredns配置生效(生产环境切记要在低峰期执行)

bash 复制代码
kubectl delete pod -n kube-system coredns-857d9ff4c9-lnsg8 coredns-857d9ff4c9-4bnx5 

5.2 测试hosts

依次解析我们自定义的3个域名,获得了我们自定义的地址返回

bash 复制代码
kubectl exec -it admin-deployment-59b4d7746c-cv967 dig qiu.qin.com
kubectl exec -it admin-deployment-59b4d7746c-cv967 dig test.aa.cc
kubectl exec -it admin-deployment-59b4d7746c-cv967 dig aa.bb.tt

解析pana.cn域也是正常的

至此定制k8s域名解析------CoreDns配置实验完成

相关推荐
Ruiery8 小时前
Linux 6.6内核内存管理深度解析(十六):mmap — 用户态“申请内存“的真相
linux·运维·服务器
欧米欧8 小时前
Linux系统篇(七),环境变量的底层溯源,核心获取机制与安全应用
linux·运维·服务器
Ruiery8 小时前
Linux 6.6内核内存管理深度解析(十八):KASLR 内核地址空间随机化
linux·运维·服务器·安全
todoitbo9 小时前
群晖NAS部署JmalCloud:Docker安装、文件管理、博客与公网访问完整教程
运维·docker·容器
qetfw9 小时前
UOS MariaDB 数据库:安装、最小权限与备份验证
linux·数据库·mariadb·uos
逆风的蚂蚁11 小时前
linux服务器性能调整怎么落地?我把 CPU 调度、I/O 优先级和内核参数这几个旋钮都拧了一遍
linux·运维·服务器
沫璃染墨14 小时前
从零入门计算机网络系列(十一):HTTP协议进阶——从重定向原理到GET/POST与Fiddler抓包
linux·服务器·开发语言·网络·c++·tcp/ip·html
是枚小菜鸡儿吖16 小时前
Home Assistant跨品牌智能家居教程:Docker部署、米家接入、vivo桥接与远程访问
docker·容器·智能家居
AI_Lab0116 小时前
宝塔用了两年,有没有必要换成轻量方案?
linux·运维·服务器
by2099916 小时前
Linux GDB 调试与 CGDB 使用
linux·运维·服务器·经验分享