在 k8s pod 里边访问内部域名问题处理
问题描述
在 pod 的节点里边有配置 harbor.local.com
域名/etc/hosts解析,但是在 pod里边 通过程序无法解析访问:
问题解决
第一种方法:通过 Root账户,给pod里边添加域名解析,即可处理该问题,但是pod重启后会丢失,另外可能没有pod Root 用户权限;
第二种方法:将域名解析加入到 coredns 配置,会自动同步到集群网络:
coredns_configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: coredns
namespace: kube-system
selfLink: /api/v1/namespaces/kube-system/configmaps/coredns
uid: 817e1756-4e26-4dad-96c0-04b31e800f9a
resourceVersion: '81874456'
creationTimestamp: '2023-06-06T01:51:22Z'
annotations:
kubectl.kubernetes.io/last-applied-configuration: >
{"apiVersion":"v1","data":{"Corefile":".:53 {\n errors\n health
{\n lameduck 5s\n }\n ready\n kubernetes cluster.local.
in-addr.arpa ip6.arpa {\n pods insecure\n fallthrough
in-addr.arpa ip6.arpa\n }\n prometheus :9153\n forward .
/etc/resolv.conf\n cache 30\n reload\n
loadbalance\n}\ngenesismagic.coop:53 {\n errors\n cache 30\n
forward . 192.168.1.89\n reload\n}
\n"},"kind":"ConfigMap","metadata":{"annotations":{},"name":"coredns","namespace":"kube-system"}}
data:
Corefile: |
.:53 {
errors
health {
lameduck 5s
}
ready
kubernetes cluster.local. in-addr.arpa ip6.arpa {
pods insecure
fallthrough in-addr.arpa ip6.arpa
}
# 添加 harbor.local.com 域名解析
hosts {
192.168.1.135 harbor.local.com
fallthrough
}
prometheus :9153
forward . /etc/resolv.conf
cache 30
reload
loadbalance
}
genesismagic.coop:53 {
errors
cache 30
forward . 192.168.1.89
reload
}
配置之后,重启coredns服务(也可以不用重启),即可加载进来;
为者常成,行者常至
自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)