Kubernetes DNS服务

Kubernetes中kube-dns系统组件唯一是基于deployment资源管理器,并通过Service来通讯,很多应用前提都是要基于DNS组件来完成

在这里插入图片描述
DNS A记录的自动产生

  • 基于Service NAME字段产生A记录,格式:svc名称.当前命名空间.当前集群的域名(默认就是svc.cluser.local ),比如:busybox1.default.svc.cluster.local
  • 基于Pod的主机名产生A记录,需要基于hostname和subdomain指定,格式:hostname.subdomain.命名空间.svc.cluster.local ,比如:busybox1.subdomain.default.svc.cluster.local,但是无用,pod的生命周期问题根本无法使用

DNS策略类型

  • None 无任何策略,也就是自定义DNS
  • Default 使用节点DNS继承,注意这个不是系统默认选项
  • ClusterFirst 集群 DNS,这个才是默认选项,也就是不配置dnsPliocy就默认为集群DNS
  • ClusterFirstWithHostNet ,设置了hostNetwork,还需要使用集群DNS功能,写其他类型默认强制变成Default

None

apiVersion: v1
kind: Pod
metadata:
  name: busybox
  namespace: default
spec:
  hostname: busybox1
  subdomain: subdomain
  containers:
  - image: busybox
    args:
        - sleep 
        - "30000"
      
    name: busybox
  restartPolicy: Always
  dnsPolicy: None
  dnsConfig:
   nameservers:         #注意要加s
     - 114.114.114.114
验证
kubectl exec busybox cat /etc/resolv.conf

在这里插入图片描述

Default

apiVersion: v1
kind: Pod
metadata:
  name: busybox
  namespace: default
spec:
  hostname: busybox1
  subdomain: subdomain
  containers:
  - image: busybox
    args:
        - sleep
        - "30000"

    name: busybox
  restartPolicy: Always
  dnsPolicy: Default         #更简单,修改策略就行,ClusterFirst一样
验证
kubectl exec busybox cat /etc/resolv.conf

在这里插入图片描述
ClusterFirst

在这里插入图片描述

ClusterFirstWithHostNet

apiVersion: v1
kind: Pod
metadata:
  name: busybox
  namespace: default
spec:
  hostname: busybox1
  subdomain: subdomain
  containers:
  - image: busybox
    args:
        - sleep 
        - "30000"
      
    name: busybox
  restartPolicy: Always
  dnsPolicy: ClusterFirstWithHostNet
  hostNetwork: true
验证
kubectl exec busybox cat /etc/resolv.conf

在这里插入图片描述

©️2020 CSDN 皮肤主题: 1024 设计师:上身试试 返回首页