zoukankan      html  css  js  c++  java
  • k8s集群dns问题解决办法

    故障类型

    我遇到的几次k8s集群的dns问题,大致分为几种:

    • 网络插件的pod挂掉了
    • 服务是双网卡的情况
    • 服务器自身的网络问题,比如路由

    解决办法

    1、确认宿主机的网络访问情况,dns解析。因为pod一般是复制宿主机信息。
    ping 114.114.114.114
    cat /etc/resolv
    centos7 可以在网卡配置dns覆盖resolv的配置,确认网卡中的dns删除掉。
    2、确认服务器路由,都使用同一个默认网关
    route -n
    netstat -r
    3、查看集群的网络组建 flannel和dns,确认pod运行状态正常
    kubectl get pod -n kube-system -o wide |grep flannel
    kubectl get pod -n kube-system |grep dns

    4、如果以上都正常。
    重启服务器网络
    systemctl restart network
    重启docker,清空exit状态的pod
    systemc restart docker
    docker container prune
    重启kubelet
    systemctl restart kubelet

    5、终极杀招
    重启服务器
    reboot

    测试脚本

    busybox

    部署一个DaemonSet的busybox运行在每个节点上

    apiVersion: apps/v1
    kind: DaemonSet
    metadata:
      name: busybox-test
      namespace: default
    spec:
      selector:
        matchLabels:
          name: busybox-test
      template:
        metadata:
          labels:
            name: busybox-test
        spec:
          containers:
          - name: app
            image: busybox
            command:
              - sleep
              - "3600"
            imagePullPolicy: IfNotPresent
          terminationGracePeriodSeconds: 30                                                                                                                                     
    

    sh

    在kubectl服务器上执行脚本测试

    #!/bin/bash
    
    for i in `kubectl get pods -o wide |grep busy |awk '{print $1}'`
    do
    echo "开始执行测试.....$i"
    
    PODNAME=$i
    NODENAME=`kubectl get pods -o wide |grep $i | awk '{print $7}'`
    
    echo "正在执行测试主机名为$NODENAME,POD名为$PODNAME"
    
    kubectl exec $PODNAME -- nslookup my-nginx |grep -v 'find'
    
    echo "准备下一次测试"
    sleep 5
    done
    
  • 相关阅读:
    C++ 虚函数表解析
    Zend Studio使用
    Java的位运算符具体解释实例——与(&)、非(~)、或(|)、异或(^)
    史上最简单的Hibernate入门简单介绍
    Ubuntu下很给力的下载工具
    hdu1698 Just a Hook 线段树:成段替换,总区间求和
    STL vector使用方法介绍
    Linux守护进程的编程实现
    PDO--PHP Data Objects
    经常使用的android弹出对话框
  • 原文地址:https://www.cnblogs.com/zhaobowen/p/13469473.html
Copyright © 2011-2022 走看看