zoukankan      html  css  js  c++  java
  • 第五章 kubernetes常见故障排错

    一、kubernetes服务没找到

    #报错:
    no server found for cluster "kubernetes"
    
    #因为在master上面建立的 kube-proxy.kubeconfig 不对,忘记了:
    export KUBE_APISERVER="https://172.16.1.80:8443";
    
    #重新建立 kube-proxy.kubeconfig 即可。
    

    二、kubelet启动报错

    #安装k8s的node节点上的kubelet,启动报错:
    kubelet: error: failed to run Kubelet: cannot create certificate signing request: Unauthorized
    
    #查看apiserver日志报错:
    k8s_master kube-apiserver: E0202 14:25:20.749540   40045 authentication.go:64] Unable to authenticate the request due to an error: [invalid bearer token, [invalid bearer token, invalid bearer token]]
    
    #原因是:kuber-apiserver启动参数中的token.csv和kubelet启动参数中指定的bootstrap文件bootstrap.kubeconfig中的token值是否一致,此外该token必须为实际数值,不能使用变量代替
    
    #修改 bootstrap.kubeconfig中的token 等于 kuber-apiserver启动参数中的tokn.csv即可。
    

    三、Flannel插件版本不兼容

    # 报错:Flannel插件工作状态正常,但无法与其他主机之间通信
    
    # 原因:
    1.flannel v0.10 不支持 etcd v3
    [root@k8s-master-01 ~]# etcd --version
    etcd Version: 3.3.24
    
    [root@k8s-master-01 ~]# flanneld --version
    v0.10.1-rc1
    
    2.flannel v0.13.1 兼容性可能有问题
    [root@k8s-master-01 ~]# flanneld --version
    v0.13.1-rc1
    
    #解决
    1.安装v0.13.1版本flannel:
    查看运行状态:systemctl status flannel 发现无报错日志且主机间可相互通信 
    即可使用 flannel:v0.13.1
    2.推荐安装 flannel:v0.11 版本可完美解决兼容性问题
    

    四、集群DNS无法正常工作

    # 报错:运行容器卡在主界面
    [root@k8s-master-01 ~]# kubectl run test -it --rm --image=busybox:1.28.3
    
    #原因:
    1.将集群创建了角色(master节点不会调度任何服务,卡在主界面属于正常现象)
    2.集群DNS无法提供IP
    3.网络插件无法正常工作
    
    #解决:
    1.首先执行 kubectl  describe  pod test 命令查看底部信息:
    # 报错:kubelet, k8s-master-03 Failed to pull image “busybox:1.28.3": rpc error: code = Unknown desc = Error response from daemon: Get https:/registry -1.docker.io/V2/: dial top: lookup registry-1.docker.io on 223.5.5.5:53: servermisbehaving
    2.修改所有主机DNS网络为114.114.114.114,重启systemctl restart flannel
    3.进入容器界面,输入:
    / # nslookup kubernetes
    Server:    10.96.0.2
    Address 1: 10.96.0.2 kube-dns.kube-system.svc.cluster.local
    
    server can‘t resolve kubernetes.default
    
    4.再次 kubectl  describe  pod test命令查看底部信息:
    # 报错:Failed to list *v1.Namespace: Get https://10.0.0.1:443/api/v1/namespaces?limit=500&resourceVersion=0: dial tcp 10.0.0.1:443: i/o timeout
    解决方案:重启Node上的kube-proxy、重新创建coredns,重启flannel
    5.进入容器界面,输入:
    / # nslookup kubernetes
    Server:    10.96.0.2
    Address 1: 10.96.0.2 kube-dns.kube-system.svc.cluster.local
    
    Name:      kubernetes
    Address 1: 10.96.0.1 kubernetes.default.svc.cluster.local
    表示DNS服务正常工作
    

    五、没有或者缺失加入集群请求

    #原因:
    1.kubelet或者kube-proxy未启动或启动报错
    2.docker文件系统有问题(systemd, cgroupfs)
    
    #解决:
    1.查看kubelet或者kube-proxy是否正常启动
    2.查看docker文件系统:
    docker info | grep "Cgroup Driver"
    3.修改[root@k8s-master-01 ~]# vi /etc/docker/daemon.json 
    {
      "registry-mirrors": ["https://8mh75mhz.mirror.aliyuncs.com"],
      # "exec-opts": ["native.cgroupdriver=systemd"] 
      # systemd不需要注释,cgroupfs则需注释掉,默认使用cgroupfs
    }
    4.重启docker服务
    systemctl daemon-reload
    systemctl restart docker
    
  • 相关阅读:
    伟大的微软,太智能了
    ASP.NET MVC中的统一化自定义异常处理
    去除无用的文件查找路径
    关于easyUI的一些js方法
    easyUI小技巧-纯干货
    easyui tree tabs
    ueditor初始化
    多图联动
    饼图tooltip
    配色
  • 原文地址:https://www.cnblogs.com/jhno1/p/15324842.html
Copyright © 2011-2022 走看看