报错:Apr 6 09:41:51 k8s-master kube-controller-manager: I0406 09:41:51.796232 10880 serving.go:348] Generated self-signed cert in-memory Apr 6 09:41:51 k8s-master kube-controller-manager: W0406 09:41:51.796865 10880 client_config.go:617] Neither --kubeconfig nor --master was specified. Using the inClusterConfig. This might not work. Apr 6 09:41:51 k8s-master kube-controller-manager: W0406 09:41:51.797112 10880 client_config.go:622] error creating inClusterConfig, falling back to default config: unable to load in-cluster configuration, KUBERNETES_SERVICE_HOST and KUBERNETES_SERVICE_PORT must be defined Apr 6 09:41:51 k8s-master kube-controller-manager: invalid configuration: no configuration has been provided, try setting KUBERNETES_MASTER environment variable Apr 6 09:41:51 k8s-master systemd: kube-controller-manager.service: main process exited, code=exited, status=1/FAILURE Apr 6 09:41:51 k8s-master systemd: Unit kube-controller-manager.service entered failed state. Apr 6 09:41:51 k8s-master systemd: kube-controller-manager.service failed.
解决问题
可能是由于环境变量没有正确设置导致的。具体来说,KUBE_CONTROLLER_MANAGER_OPTS变量中有一些无效的赋值,而且kube-controller-manager没有正确配置kubeconfig,因此它试图使用默认的inClusterConfig,但是缺少必要的环境变量KUBERNETES_SERVICE_HOST和KUBERNETES_SERVICE_PORT
修改配置kind和apiVersion为:
kind: KubeControllerManagerConfiguration
apiVersion: kubeproxy.config.k8s.io/v1alpha1