快捷搜索:  汽车  科技

kubernetes的常用命令(部署Kubernetes集群插件之CoreDNS)

kubernetes的常用命令(部署Kubernetes集群插件之CoreDNS)kubectl run nginx --image=k8sre/nginx:1.16.1验证CoreDNS解析kubectl get pod -n kube-system运行Nginx PodCLUSTER_DNS_DOMAIN="cluster.local" CLUSTER_DNS_SVC_IP="10.64.0.2" CLUSTER_DNS_LIMIT_MEMORY="170Mi" sed -i -e "s@__PILLAR__DNS__DOMAIN__@${CLUSTER_DNS_DOMAIN}@" -e "s@__PILLAR__DNS__SERVER__@${CLUSTER_DNS_SVC_IP}@" -e "s@__PILLAR__DNS__MEMORY__LIMIT__@${CLUSTE

CoreDNS是基于Go编写的一个插件式DNS服务器,从Kubernetes 1.13之后默认使用的DNS服务器。CoreDNS也是CNCF毕业项目。

kubernetes的常用命令(部署Kubernetes集群插件之CoreDNS)(1)

获取CoreDNS部署YAML

在kubernets的二进制包中已经有相应的yaml

tar zxvf kubernetes-src.tar.gz cd kubernetes/cluster/addons/dns/coredns

修改配置

CLUSTER_DNS_DOMAIN="cluster.local" CLUSTER_DNS_SVC_IP="10.64.0.2" CLUSTER_DNS_LIMIT_MEMORY="170Mi" sed -i -e "s@__PILLAR__DNS__DOMAIN__@${CLUSTER_DNS_DOMAIN}@" -e "s@__PILLAR__DNS__SERVER__@${CLUSTER_DNS_SVC_IP}@" -e "s@__PILLAR__DNS__MEMORY__LIMIT__@${CLUSTER_DNS_LIMIT_MEMORY}@" coredns.yaml.base

  • CLUSTER_DNS_SVC_IP为kubelet配置中clusterDNS配置的值。
  • gcr.io仓库因国内无法直接访问,可自行替换镜像地址为私有仓库地址或国内其他可访问的仓库。
  • 部署CoreDNS

    mv coredns.yaml.base coredns.yaml kubectl apply -f coredns.yaml

    验证CoreDNS

    查看Pod运行是否正常

    kubectl get pod -n kube-system

    运行Nginx Pod

    kubectl run nginx --image=k8sre/nginx:1.16.1

    验证CoreDNS解析

    kubectl exec nginx-8458df589f-jq6zh nslookup kube-dns.kube-system.svc.cluster.local.

    • 能解析出对应IP即为解析成功。

    其他配置

    配置外部DNS

    Corefile: | .:53 { errors health kubernetes cluster.local. in-addr.arpa ip6.arpa { pods insecure upstream fallthrough in-addr.arpa ip6.arpa } prometheus :9153 proxy . /etc/resolv.conf cache 30 reload loadbalance } k8sre.com:53 { errors cache 30 proxy . 10.10.100.60 10.10.100.61 }

    绑定Hosts

    hosts { 119.3.105.139 ldap.k8sre.com fallthrough }

    CoreDNS配置详解

    常用的配置如下:

    • loadbalance:提供基于DNS的负载均衡功能。
    • loop:检测在DNS解析过程中出现的简单循环问题。
    • cache:提供前端缓存功能。
    • health:对endpoint进行健康检查。
    • kubernetes:从kubernetes中读取zone数据。
    • etcd:从etcd读取zone数据,可以用于自定义域名记录。
    • file:从RFC1035格式文件中读取zone数据。
    • hosts:使用/etc/hosts文件或其他文件读取zone数据,可以用于定义域名记录。
    • auto:从磁盘中自动加载区域文件。
    • reload:定时自动重新加载Corefile配置。
    • forward:转发域名查询到上游DNS服务器。
    • proxy:转发特定的域名查询到多个其他DNS服务器,同时提供到多个DNS服务器的负载均衡功能。
    • prometheus:为Prometheus提供采集性能指标数据的URL。
    • pprof:在URL路径/debug/pprof下提供运行时的性能数据。
    • log:对DNS查询进行日志记录。
    • errors:对错误信息进行日志记录。

    猜您喜欢: