资讯专栏INFORMATION COLUMN

coredns 排错记

Salamander / 1826人阅读

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

核心链接

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

CoreDNS 安装
apiVersion: v1
kind: ServiceAccount
metadata:
  name: coredns
  namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRole
metadata:
  labels:
    kubernetes.io/bootstrapping: rbac-defaults
  name: system:coredns
rules:
- apiGroups:
  - ""
  resources:
  - endpoints
  - services
  - pods
  - namespaces
  verbs:
  - list
  - watch
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
  annotations:
    rbac.authorization.kubernetes.io/autoupdate: "true"
  labels:
    kubernetes.io/bootstrapping: rbac-defaults
  name: system:coredns
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: system:coredns
subjects:
- kind: ServiceAccount
  name: coredns
  namespace: kube-system
---
apiVersion: v1
kind: ConfigMap
metadata:
  name: coredns
  namespace: kube-system
data:
  Corefile: |
    .:53 {
        log
        errors
        health
        kubernetes cluster.local 172.0.0.0/8 in-addr.arpa ip6.arpa {
          pods insecure
          upstream
          fallthrough in-addr.arpa ip6.arpa
        }
        prometheus :9153
        proxy . /etc/resolv.conf
        cache 30
        reload
    }
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: coredns
  namespace: kube-system
  labels:
    k8s-app: coredns
    kubernetes.io/name: "CoreDNS"
spec:
  replicas: 2
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxUnavailable: 1
  selector:
    matchLabels:
      k8s-app: coredns
  template:
    metadata:
      labels:
        k8s-app: coredns
    spec:
      serviceAccountName: coredns
      tolerations:
        - key: "CriticalAddonsOnly"
          operator: "Exists"
      containers:
      - name: coredns
        image: hub.issll.com/kubernetes/coredns:1.1.0
        imagePullPolicy: IfNotPresent
        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: 8081
            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: v1
kind: Service
metadata:
  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: 172.21.0.2
  ports:
  - name: dns
    port: 53
    protocol: UDP
  - name: dns-tcp
    port: 53
    protocol: TCP

在master结点上执行

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

nodes结点上的/etc/resolv.conf

    $ cat /etc/resolv.conf 
    # Generated by NetworkManager
    search default.svc.cluster.local middleware.svc.cluster.local svc.cluster.local cluster.local 
    nameserver 192.168.1.254
打印每个pods上的出错日志
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解析效果
 kubectl exec -ti busybox -- nslookup redis-master

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

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元查看
<