资讯专栏INFORMATION COLUMN

coredns 排错记

Salamander / 1947人阅读

摘要:如果新服务器无法启动,则初始服务器实例仍然可用且仍然提供查询,但处理程序保持关闭状态。在成功重新加载或完全重新启动之前,运行状况不会回复请求。后记在新创建后更新有问题需要解决

核心链接

https://kubernetes.io/docs/ta...

CoreDNS 安装

</>复制代码

  1. apiVersion: v1
  2. kind: ServiceAccount
  3. metadata:
  4. name: coredns
  5. namespace: kube-system
  6. ---
  7. apiVersion: rbac.authorization.k8s.io/v1beta1
  8. kind: ClusterRole
  9. metadata:
  10. labels:
  11. kubernetes.io/bootstrapping: rbac-defaults
  12. name: system:coredns
  13. rules:
  14. - apiGroups:
  15. - ""
  16. resources:
  17. - endpoints
  18. - services
  19. - pods
  20. - namespaces
  21. verbs:
  22. - list
  23. - watch
  24. ---
  25. apiVersion: rbac.authorization.k8s.io/v1beta1
  26. kind: ClusterRoleBinding
  27. metadata:
  28. annotations:
  29. rbac.authorization.kubernetes.io/autoupdate: "true"
  30. labels:
  31. kubernetes.io/bootstrapping: rbac-defaults
  32. name: system:coredns
  33. roleRef:
  34. apiGroup: rbac.authorization.k8s.io
  35. kind: ClusterRole
  36. name: system:coredns
  37. subjects:
  38. - kind: ServiceAccount
  39. name: coredns
  40. namespace: kube-system
  41. ---
  42. apiVersion: v1
  43. kind: ConfigMap
  44. metadata:
  45. name: coredns
  46. namespace: kube-system
  47. data:
  48. Corefile: |
  49. .:53 {
  50. log
  51. errors
  52. health
  53. kubernetes cluster.local 172.0.0.0/8 in-addr.arpa ip6.arpa {
  54. pods insecure
  55. upstream
  56. fallthrough in-addr.arpa ip6.arpa
  57. }
  58. prometheus :9153
  59. proxy . /etc/resolv.conf
  60. cache 30
  61. reload
  62. }
  63. ---
  64. apiVersion: extensions/v1beta1
  65. kind: Deployment
  66. metadata:
  67. name: coredns
  68. namespace: kube-system
  69. labels:
  70. k8s-app: coredns
  71. kubernetes.io/name: "CoreDNS"
  72. spec:
  73. replicas: 2
  74. strategy:
  75. type: RollingUpdate
  76. rollingUpdate:
  77. maxUnavailable: 1
  78. selector:
  79. matchLabels:
  80. k8s-app: coredns
  81. template:
  82. metadata:
  83. labels:
  84. k8s-app: coredns
  85. spec:
  86. serviceAccountName: coredns
  87. tolerations:
  88. - key: "CriticalAddonsOnly"
  89. operator: "Exists"
  90. containers:
  91. - name: coredns
  92. image: hub.issll.com/kubernetes/coredns:1.1.0
  93. imagePullPolicy: IfNotPresent
  94. args: [ "-conf", "/etc/coredns/Corefile" ]
  95. volumeMounts:
  96. - name: config-volume
  97. mountPath: /etc/coredns
  98. ports:
  99. - containerPort: 53
  100. name: dns
  101. protocol: UDP
  102. - containerPort: 53
  103. name: dns-tcp
  104. protocol: TCP
  105. livenessProbe:
  106. httpGet:
  107. path: /health
  108. port: 8081
  109. scheme: HTTP
  110. initialDelaySeconds: 60
  111. timeoutSeconds: 5
  112. successThreshold: 1
  113. failureThreshold: 5
  114. dnsPolicy: Default
  115. volumes:
  116. - name: config-volume
  117. configMap:
  118. name: coredns
  119. items:
  120. - key: Corefile
  121. path: Corefile
  122. ---
  123. apiVersion: v1
  124. kind: Service
  125. metadata:
  126. name: kube-dns
  127. namespace: kube-system
  128. labels:
  129. k8s-app: coredns
  130. kubernetes.io/cluster-service: "true"
  131. kubernetes.io/name: "CoreDNS"
  132. spec:
  133. selector:
  134. k8s-app: coredns
  135. clusterIP: 172.21.0.2
  136. ports:
  137. - name: dns
  138. port: 53
  139. protocol: UDP
  140. - name: dns-tcp
  141. port: 53
  142. protocol: TCP

在master结点上执行

</>复制代码

  1. kubectl apply -f coredns.yaml
主要修改文件

nodes结点上的/etc/resolv.conf

</>复制代码

  1. $ cat /etc/resolv.conf
  2. # Generated by NetworkManager
  3. search default.svc.cluster.local middleware.svc.cluster.local svc.cluster.local cluster.local
  4. nameserver 192.168.1.254
打印每个pods上的出错日志

</>复制代码

  1. for p in $(kubectl get pods --namespace=kube-system -l k8s-app=coredns -o name); do kubectl logs --namespace=kube-system $p; done
用busybox 检验coredns解析效果

</>复制代码

  1. kubectl exec -ti busybox -- nslookup redis-master

因为结点上的search 域的设定,等于

</>复制代码

  1. kubectl exec -ti busybox -- nslookup redis-master.middleware.svc.cluster.local

这里 redis-master 是布署在 middleware 命名空间下的一个pod

CoreDNS 已知 Bug

重新加载时,在启动新服务器实例之前停止运行状况处理程序。如果新服务器无法启动,则初始服务器实例仍然可用且仍然提供DNS查询,但Health处理程序保持关闭状态。在成功重新加载或完全重新启动CoreDNS之前,Health运行状况不会回复HTTP请求。

后记

在新 pod 创建后, CoreDNS 更新有问题, 需要解决

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/32878.html

相关文章

  • 云原生计算基金会宣布CoreDNS毕业

    摘要:快速增长的服务器,作为的官方默认支持和等开源技术的云原生计算基金会今天宣布,在去年毕业的和之后,是年第一个毕业的项目。年中国论坛提案征集现已开放论坛让用户开发人员从业人员汇聚一堂,面对面进行交流合作。 快速增长的DNS服务器,作为Kubernetes的官方默认DNS showImg(https://segmentfault.com/img/bVbnLgj?w=4002&h=2323);...

    LMou 评论0 收藏0
  • Kubernetes 1.14 正式发布 Windows 节点全新增强

    摘要:此次发布的内容包括节点生产级支持更新持久局部卷。后续博云将持续关注技术动态,并将基于新功能发布并验证更多用户使用场景,为企业级用户体统稳定安全可靠的服务。 3月26日, Kubernetes1.14版本正式发布,自v1.13 发布仅仅过去了112天,这也是 kubernetes 在2019年的首次发布。此次发布的内容包括:Windows 节点生产级支持、kubectl 更新、持久局部卷...

    tinysun1234 评论0 收藏0
  • 新版发行+被爆首个严重漏洞,Kubernetes动态有点多

    摘要:首爆严重安全漏洞,严重性分于昨晚爆出严重安全漏洞,该漏洞由联合创始人及首席架构师发现。其他功能更新对第三方设备监控插件的支持该功能目前被引入为功能。拓扑感知卷调度该功能现成为状态。 K8S首爆严重安全漏洞,严重性9.8分 Kubernetes于昨晚爆出严重安全漏洞,该漏洞由Rancher Labs联合创始人及首席架构师Darren Shepherd发现。该漏洞CVE-2018-1002...

    jackzou 评论0 收藏0
  • 利用 Kubeadm部署 Kubernetes 1.13.1 集群实践录

    摘要:虽然这种方法有利于我们理解集群,但却过于繁琐。该参数使用依赖于使用的网络方案,本文将使用经典的网络方案。因此我们接下来安装版本的,用于集群可视化的管理。 showImg(https://segmentfault.com/img/remote/1460000017530419); 概 述 Kubernetes集群的搭建方法其实有多种,比如我在之前的文章《利用K8S技术栈打造个人私有云(...

    IntMain 评论0 收藏0
  • 业务开发中的调试方法总结

    摘要:业务开发中的调试方法总结这段时间,接触了单元测试,同时业务中遇到了一些需要排错调试的情况,就把自己的经验做个小结。但是如果你的业务经常变化,但是变化的部分并不会影响单元测试,那这种情况下的单元测试性价比就很高。 业务开发中的调试方法总结 这段时间,接触了单元测试,同时业务中遇到了一些需要排错调试的情况,就把自己的经验做个小结。 3种调试方法 狼叔说,常见的三种调试的境界 初级: 打l...

    KaltZK 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<