K8S在开发测试环境落地问题处理之内网DNS解析
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,相信很多朋友都已经在测试或者生产环境中使用K8S来解决自己的业务问题,以下是我们在测试环境落地的一些实践。我们把所有的Service、POD直接裸奔于开发以及测试人员(没有使用Ingress、node
千家信息网最后更新 2026年11月02日K8S在开发测试环境落地问题处理之内网DNS解析
相信很多朋友都已经在测试或者生产环境中使用K8S来解决自己的业务问题,以下是我们在测试环境落地的一些实践。我们把所有的Service、POD直接裸奔于开发以及测试人员(没有使用Ingress、nodeport、LB,直接使用静态路由+NAT),这样我们的测试以及开发人员可直接访问SVC和POD,这个后期我们单独拿出来细讲。由于我们是移动端原生开发居多,因此大部分都需要借助WIFI+DNS服务器来完成我们APP的测试。但是内网站点多,服务多,需要经常维护DNS服务器,可不可以根据我们的Service自动去维护我们的DNS服务器呢。
思路:
1.获取K8S容器云中所有namespace下的所有Service,然后制定规则如所有的web服务以完整的域名作为服务名,比如我们的api.abc.com那么服务名就是api-abc-com,然后把kube-system过滤掉
2.根据上述获取到的namespace、域名、ClusterIP写入到对应文件夹下的DNS配置文件,如果存在则删除再增加,如果不存在则自动添加
3.将各个命名空间的DNS配置文件进行加载
#!/bin/bashns=$(kubectl get ns|awk 'NR!=1 && !/kube/ && !/istio/ && !/cattle-system/ && !/default/ && !/efk/ {print $1}')for namespace in $nsdo [ -d $namespace ] || mkdir -p ${namespace} [ -f ${namespace}/dns ] || touch ${namespace}/dns svc=$(kubectl get svc -n$namespace|awk '/-/ && NR!=1 {print $1,$3}'|sed 's#-#.#g') echo "$svc"|while read line do domain=`echo $line|awk '{print $1}'` dns_record=`echo $line|awk '{print $1"="$2}'` [ `grep ${dns_record} ${namespace}/dns|wc -l` ] && sed -i "/${domain}/d" ${namespace}/dns && echo ${dns_record}>>${namespace}/dns done names=`cat ${namespace}/dns | grep -v '^#|^//' | tr '\n' ','|sed 's/,$//g'` sed "s#{namespace}#${namespace}#g" ~/yaml/dns/deploy.yaml | sed "s#{names}#${names}#g"|kubectl apply -f -done查看DNS的deploy-svc.yaml
apiVersion: extensions/v1beta1kind: Deploymentmetadata: name: dns namespace: {namespace}spec: selector: matchLabels: name: dns replicas: 1 template: metadata: labels: name: dns spec: containers: - name: bind image: cytopia/bind ports: - containerPort: 53 protocol: TCP name: dnstcp - containerPort: 53 protocol: UDP name: dnsudp env: - name: EXTRA_HOSTS value: "{names}" - name: DNS_FORWARDER value: "114.114.114.144,8.8.4.4" #此处为外网的DNS服务器---apiVersion: v1kind: Servicemetadata: name: dns namespace: {namespace} labels: name: dnsspec: ports: - protocol: TCP port: 53 targetPort: 53 name: dnstcp - protocol: UDP port: 53 targetPort: 53 name: dnsudp selector: name: dns
服务
测试
服务器
开发
文件
环境
人员
域名
配置
问题
落地
可不
业务
大部分
容器
就是
思路
文件夹
朋友
空间
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技产业
高科技互联网
广州百单互联网科技有限公司
奇酷互联网络科技
迪茉互联网科技
互联网科技缩写
易通互联网络科技有限公司
深圳天众互联网科技公司
互联网科技logo
天下捷融互联网科技
深圳艾佳互联网科技
互联网和高科技公司
重庆威客帮互联网科技
中国航天科技大学国际工业互联网
移动互联网年度科技创新
黑云互联网科技有限公司
陕西云淼互联网科技公司
广州燕处互联网科技有限公司
互联网科技接地气
陕西九四连强互联网科技有限公司
互联网属科技
关于新基建和互联网科技
互联网科技革命
华中科技大学互联网
上海亿帐通互联网科技
互联网金融科技委员会
中国航天科技大学国际工业互联网
滨湖区互联网智能科技产品有哪些
南通创西澳互联网科技有限公司
互联网科技数字货币