kube-proxy 报错
conntrack returned error: error looking for path of conntrack: exec: "conntrack": executable file not found in $PATH
导致 dns 无法访问 host unresolve
安装 conntrack-tools yum install conntrack-tools
关闭所有服务,清空iptables -F nat ,iptables -F, iptables -F raw , iptables -F mangle ,重新启动服务,如果还不行就重新安装覆盖网重新清空iptables
Bootstrap TLS 验证的问题
根据文档不使用kubeadm搭建 bootstrap TLS 验证的kubelet
参考文档
https://kubernetes.io/docs/reference/command-line-tools-reference/kubelet-tls-bootstrapping/#token-authentication-file
https://kubernetes.io/docs/reference/access-authn-authz/certificate-signing-requests/
https://kubernetes.io/docs/reference/access-authn-authz/node/
注意事项:
1. 首先kubelet启动时用static token作为验证,要保证token文件里配置的用户名有bootstrap的权限,这里需要绑定到system:node-bootstrapper的clusterrole
2. 申请成功后会有csr 可以通过kubectl get csr 查看,但是手动approve是无效的,需要controller-manager来issue
3. 要配置--authorization-mode里 增加 Node, --admission-control里增加NodeRestriction
4. 如果Kubelet使用bootstrap启动 则需要用 --bootstrap-kubeconfig 来指定一个绑定到与token一样User的config
5. kubelet启动后会生成kubeconfig与cert-dir下的文件
证书过期问题
之前是手动搭建没有用Kubeadm, 证书过期后需要重新生成,涉及到的所有ServiceAccount都失效了,重新创建。
删除的node如何恢复
需要把cert-dir下生成的文件删除,重启kubelet,这种方式仅限于bootstrap启动模式