搭建k8s集群报错整理

一、启动flannel报错:

Couldn't fetch network config: client: response is invalid json. The endpoint is probably not valid etcd cluster endpoint.

原因:是因为flannel v0.11版本不支持etcd v3.4.3版本,支持etcd v3.3.10版本,需要将etcd降低版本到3.3.10,后期寻找合适的网络插件方法将etcd升级起来,

下载地址:https://github.com/coreos/flannel/releases

 

二、安装kube启动进程时报错

报错:kube-apiserver: 无法执行二进制文件  

原因:service的包下载错了,下载成amr的安装包,换包成amd的安装包

 

三、执行kubectl get cs 报错

1、报错:error: no configuration has been provided, try setting KUBERNETES_MASTER environment variable

原因:没有设置kubectl config

 

2、报错:User "kubernetes" cannot list resource "componentstatuses" in API group

原因:在api的参数文件中加上一下字段,将证书中的用户名加到配置文件中

--requestheader-allowed-names="kubernetes" \

 

3、一直没有反应,最后退出

原因:查看日志,发现etcd认证失败,读取不到信息,可能是证书不对的问题,也有可能是api进程有问题,建议直接运行api的启动命令,看看报错是什么,进一步排查

 

4、failed to run Kubelet: cannot create certificate signing request: certificatesigningrequests.certificates.k8s.io is forbidden: User "system:anonymous" cannot create resource "certificatesigningrequests" in API group "certificates.k8s.io" at the cluster scope

kubectl设置用户、上下文、授权的时候有问题,建议检查语句,清空~/.kube/config再重新生成

 

四、启动etcd报错:

1、(error "remote error: tls: bad certificate"

原因:证书问题,检查证书,是否在hosts中设置了正确的ip

 

2、conflicting environment variable "ETCD_NAME" is shadowed by corresponding

原因:ETCD3.4版本会自动读取环境变量的参数,所以EnvironmentFile文件中有的参数,不需要再次在ExecStart启动参数中添加,二选一,如同时配置,会触发以下类似报错“etcd: conflicting environment variable "ETCD_NAME" is shadowed by corresponding command-line flag (either unset environment variable or disable flag)”

 

3、Failed at step CHDIR spawning /usr/bin/etcd: No such file or directory

原因:etcd.service服务配置文件中设置的工作目录WorkingDirectory=/var/lib/etcd/必须存在,否则会报以上错误

 

4、etcd: health check for peer 21ab2aeb56731588 could not connect: dial tcp 192.168.1.111:2380: connect: no route to host

原因:需要关闭服务器的防火墙,并设置开机不启动,systemctl stop firewalld.service && systemctl disable firewalld.service

 

五、安装calico插件,报错:

1、failed to query kubeadm's config map error=Get https://10.0.6.1:443/api/v1/namespaces/kube-system/configmaps/kubeadm-config?timeout=2s: dial tcp 10.0.6.1:443

原因:node工作节点启动找不到apiserver的地址,检查一下calico的配置文件,要把apiserverIP和端口配置上,如果不配置的话,calico默认将设置默认的calico网段和443端口。字段名:KUBERNETES_SERVICE_HOSTKUBERNETES_SERVICE_PORTKUBERNETES_SERVICE_PORT_HTTPS

 

2、calico/node is not ready: BIRD is not ready: BGP not established with 192.168.1.111

报这个错是因为192.168.1.111这个节点存在问题,没有正常启动,很多人修改了calico.yaml文件中的IP_AUTODETECTION_METHOD,因为calico默认找第一个网卡信息,可能绑定的网卡是错误的,所以将值改成本机的网卡名字,如eth0,重启启动后就会正常,但是我的并没有生效,还需要从其他地方查找原因。

 

3、Error creating: pods "calico-node-" is forbidden: error looking up service account kube-system/calico-node: serviceaccount "calico-node" not found

这个错误一般是由于yaml配置文件与版本不匹配,里面ClustRole的权限不对。解决办法是去官网下一份正确的yaml文件,地址:https://docs.projectcalico.org/manifests/calico-etcd.yaml 最好先去官网看一下最新的版本:https://docs.projectcalico.org/getting-started

 

4、应用calico-etcd.yaml文件出现错误:error parsing calico-etcd.yaml: error converting YAML to JSON: yaml: line 156: did not find expected

原因:yaml格式要求严格,根据报错的位置,检查一下文件修改的地方,看看编写以及空格的问题

posted @ 2020-05-06 16:54  christine-ting  阅读(6204)  评论(0编辑  收藏  举报