TDC上配置pod识别自定义域名

  其他常见问题
内容纲要

概要描述

本文描述客户希望在TDC集群内pod可以访问集群外的域名,或者通过节点的hostname通信,通过配置coredns的corefile的解决方案

详细描述

实验背景

本文以TDC341为例,需求ping 通ts.transwarp.club 实际ip地址为172.22.0.151
未修改之前的状态,ping通ip但是无法ping通hostname
file

备份配置

以防修改过程中操作失误,可以先备份下配置信息:

kubectl get cm -n kube-system coredns-coredns -oyaml > coredns-bak.yaml

恢复命令

kubectl apply -f coredns-bak.yaml

修改coredns-coredns的configmap

根据集群外域名的类型(域名是否以配置列表中的公网的后缀结尾)将 hosts 配置加在对应的配置段中

kubectl edit cm coredns-coredns -n kube-system

file
注意:可以多个IP对应一个域名,解析的时候会轮询这些IP地址

重启coredns(可选)

如果coredns-coredns的configmap里有reload插件(tcos-3.0及之后版本都包含该插件了),上面的配置会在2分钟后自动生效,不需要额外再重启coredns。
如果没有该插件(旧版本),需要手动滚动重启coredns的pod。
如果手动重启,单次只能重启一个 pod,在一个 pod running 后再触发下一个 pod 的创建,如果三个副本全部挂掉,无法提供集群内的域名解析服务,会导致一段时间内集群或上层应用处于不可用状态。
file

kubectl delete pod oredns-coredns-85bfc5bcb-xxx -n kube-system

验证

file

这篇文章对您有帮助吗?

平均评分 0 / 5. 次数: 0

尚无评价,您可以第一个评哦!

非常抱歉,这篇文章对您没有帮助.

烦请您告诉我们您的建议与意见,以便我们改进,谢谢您。