【Kubernetes】Service学习(二)DNS服务的搭建和配置

本文介绍了如何在Kubernetes集群中搭建和配置CoreDNS服务,包括创建ConfigMap、Deployment以及Service,使其成为默认DNS服务器。此外,还详细说明了Pod级别的DNS服务配置策略,如Default、ClusterFirst、ClusterFirstWithHostNet和None,并展示了自定义DNS配置的示例。
摘要由CSDN通过智能技术生成

 此文为学习《Kubernetes权威指南》和阿里云原生公开课的相关笔记

一、集群范围内的DNS服务:coreDNS

作为服务发现机制的基本功能,在集群内需要能够通过服务名对服务进行访问,这就需要一个进群范围内的DNS服务来完成从服务到ClusterIP的解析。DNS服务在K8s上经历3个阶段的发展,从SkyDNS到KubeDNS,从1.11版本开始来到了coreDNS。

CoreDNS作为K8s集群中的一个容器来提供服务,从K8s Master节点上获取服务信息,建立DNS记录,等待其他Pod查询服务名,解析出服务IP返回给Pod。

下面将尝试新建一个coreDNS服务并作为默认DNS服务器供集群其他Pod使用。

1、新建ConfigMap设置CoreDNS的主配置文件Corefile

apiVersion: v1
kind: ConfigMap
metadata:
 name: coredns-test
 namespace: kube-system
 labels:
  addonmanager.kubernetes.io/mode: EnsureExists
data:   #Corefile配置内容
 Corefile: |
  cluster.local {
   errors    #对错误信息进行日志记录
   health   #对Endpoint进行健康检查

#为域名 cluster.local设置插件
   kubernetes cluster.local in-addr.arpa ip6.arpa {
    pods insecure    
    upstream
    fallthrough in-addr.arpa ip6.arpa
   }
   prometheus :9153    #为Prometheus系统提供彩金性能指标数据的URL
   forward . /etc/resolv.conf
   cache 30  
   loop    #检测在DNS解析过程中出现的循环问题
   reload  #定时重新加载Corefile配置文件的内容
   loadbalance   #提供基于DNS的负载均衡功能
  }
  . {
     cache 30
     loadbalance
     forward . /etc/resolv.conf
    }

2、新建Deployment配置CoreDNS容器应用

apiVersion: apps/v1
kind: Deployment
metadata:
 name: coredns-test
 namespace: kube-system
 labels:
  k8s-app: kube-dns-test
  kubernetes.io/cluster-service: "true"
  addonmanager.kubernetes.io/mode: Reconcile
  kubernetes.io/name: "CoreDns"
spec:
 replicas: 1
 selector:
  matchLabels:
   k8s-app: kube-dns-test
 strategy:           #滚动升级策略
  type: RollingUpdate
  rollingUpdate:
   maxUnavailable: 1
 template:
  metadata:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值