一、啟動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的配置文件,要把apiserver的IP和端口配置上,如果不配置的話,calico默認將設置默認的calico網段和443端口。字段名:KUBERNETES_SERVICE_HOST、KUBERNETES_SERVICE_PORT、KUBERNETES_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格式要求嚴格,根據報錯的位置,檢查一下文件修改的地方,看看編寫以及空格的問題