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毕业项目。
获取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
部署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:对错误信息进行日志记录。