下面是我的YAML文件的配置,需要pod通过域名访问外网,比较简单的解决方式是添加template.spec.dnsPolicy字段,将其设置为Default,从而使Pod继承所在宿主机的DNS设置

apiVersion: apps/v1
kind: Deployment
metadata:
  name: url-craw
spec:
  selector:
    matchLabels:
      app: url
  replicas: 1
  template:
    metadata:
      labels:
        app: url
    spec:
      containers:
      - image: url:v1
        name: url
      dnsPolicy: Default

dnsPolicy可设置的策略如下:

参数说明
Default继承Pod所在宿主机的DNS设置
ClusterFirst优先使用Kubernetes环境的DNS服务(如CoreDNS提供的域名解析服务),将无法解析的域名转发到从宿主机集成的DNS服务器
ClusterFirstWithHostNet与ClusterFirst相同,对于以hostNetwork模式运行的Pod,应明确指定使用该策略
None忽略Kubernetes环境的DNS配置,通过spec.dnsConfig自定义DNS配置
Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐