kubernetes 以前是skydns 后面变为 dnsmasq,coredns 也是一个不错的工具
1. 准备环境
安装 kubernetes配置 kubelet ?的cluster-dns
2. 下载coredns kubernetes 模板
地址:https://github.com/coredns/deployment/tree/master/kubernetes
3. 配置生成 coredns 配置信息
参考github 文档./deploy.sh 10.3.0.0/24 | kubectl apply -f -kubectl delete --namespace=kube-system deployment kube-dns
参考配置:
apiVersion: v1kind: ConfigMapmetadata: ?name: coredns ?namespace: kube-systemdata: ?Corefile: | ???.:53 { ???????errors ???????log stdout ???????health ???????kubernetes cluster.local 10.254.0.0/16 ???????proxy . /etc/resolv.conf ???????cache 30 ???}---apiVersion: extensions/v1beta1kind: Deploymentmetadata: ?name: coredns ?namespace: kube-system ?labels: ???k8s-app: coredns ???kubernetes.io/cluster-service: "true" ???kubernetes.io/name: "CoreDNS"spec: ?replicas: 1 ?selector: ???matchLabels: ?????k8s-app: coredns ?template: ???metadata: ?????labels: ???????k8s-app: coredns ?????annotations: ???????scheduler.alpha.kubernetes.io/critical-pod: ‘‘ ???????scheduler.alpha.kubernetes.io/tolerations: ‘[{"key":"CriticalAddonsOnly", "operator":"Exists"}]‘ ???spec: ?????containers: ?????- name: coredns ???????image: coredns/coredns:latest ???????imagePullPolicy: Always ???????args: [ "-conf", "/etc/coredns/Corefile" ] ???????volumeMounts: ???????- name: config-volume ?????????mountPath: /etc/coredns ???????ports: ???????- containerPort: 53 ?????????name: dns ?????????protocol: UDP ???????- containerPort: 53 ?????????name: dns-tcp ?????????protocol: TCP ???????livenessProbe: ?????????httpGet: ???????????path: /health ???????????port: 8080 ???????????scheme: HTTP ?????????initialDelaySeconds: 60 ?????????timeoutSeconds: 5 ?????????successThreshold: 1 ?????????failureThreshold: 5 ?????dnsPolicy: Default ?????volumes: ???????- name: config-volume ?????????configMap: ???????????name: coredns ???????????items: ???????????- key: Corefile ?????????????path: Corefile---apiVersion: v1kind: Servicemetadata: ?name: kube-dns ?namespace: kube-system ?labels: ???k8s-app: coredns ???kubernetes.io/cluster-service: "true" ???kubernetes.io/name: "CoreDNS"spec: ?selector: ???k8s-app: coredns ?clusterIP: 10.254.0.3 ?ports: ?- name: dns ???port: 53 ???protocol: UDP ?- name: dns-tcp ???port: 53 ???protocol: TCP
4. 创建Deployment
kubectl apply -f dns.yaml
5. 总结
使用起来还是比较简单的,就一个容器镜像,同时扩展还是比较强大的
6. 测试
测试pod :apiVersion: v1kind: Podmetadata: ?name: busybox ?namespace: defaultspec: ?containers: ?- image: busybox ???command: ?????- sleep ?????- "3600" ???imagePullPolicy: IfNotPresent ???name: busybox ?restartPolicy: Always ??测试命令 nslookup
7. 参考文档
https://github.com/coredns/deployment/tree/master/kuberneteshttps://coredns.io/https://coredns.io/2017/05/08/custom-dns-entries-for-kubernetes/
CoreDNS kubernetes 安装使用
原文地址:http://www.cnblogs.com/rongfengliang/p/7623927.html