解决这个方案是增加了一个 heapster-rbac.yaml 文件,定义一个名为 heapster 的 ServiceAccount,然后将它和 Cluster Role view 绑定。该文件在下载的源码中 deploy/kube-config/rbac 目录中存在,执行如下命令即可:
$ kubectl apply -f deploy/kube-config/rbac/heapster-rbac.yaml
执行 kubeadm init ... 或者 kubeadm join ... 操作失败后,如果想重新操作,不可以直接重复执行,需要执行 kubeadm reset 还原后在次执行。
如果我们需要重新部署并删除 Node 节点的话,可以在 Master 节点上执行如下命令:
$ kubectl drain <node_name> --delete-local-data --force --ignore-daemonsets $ kubectl delete node <node_name>node 节点上执行删除 flannel 网段操作
$ kubeadm reset $ ifconfig cni0 down $ ip link delete cni0 $ ifconfig flannel.1 down $ ip link delete flannel.1 $ rm -rf /var/lib/cni/
kubeadm 默认安装时,Master 节点不参与 Pod 调度,即不会有非核心组件的 Pod 在 Master 节点上被创建出来,可以通过如下命名,将 Master 参与 Pod 调度。
$ kubectl taint nodes <node_name> dedicated-
配置其他节点管理整个集群,可以通过如下命令:
$ scp root@<master_ip>:/etc/kubernetes/admin.conf . $ kubectl --kubeconfig ./admin.conf get nodes
配置本地代理 API Server,可以通过如下命令:
$ scp root@<master_ip>:/etc/kubernetes/admin.conf . $ kubectl --kubeconfig ./admin.conf proxy