amazon-web-services - 如果将 kubeadm init 与 --cloud-provider=aws 标志一起使用,则 kubernetes 控制器管理器错误
问题描述
k8s 控制器管理器无法启动(通过更改 AWS EC2 标签解决)
我有与这篇文章类似的问题:kube-controller-manager don't start when using "cloud-provider=aws" with kubeadm,但这并没有提供任何解决问题的解决方案。下面是来自kubernetes 控制器管理器的日志统计信息。
I0705 17:59:05.941049 1 controllermanager.go:116] Version: v1.10.3
W0705 17:59:05.941983 1 authentication.go:55] Authentication is disabled
I0705 17:59:05.942004 1 insecure_serving.go:44] Serving insecurely on 127.0.0.1:10252
I0705 17:59:05.942450 1 leaderelection.go:175] attempting to acquire leader lease kube-system/kube-controller-manager...
I0705 17:59:22.823671 1 leaderelection.go:184] successfully acquired lease kube-system/kube-controller-manager
I0705 17:59:22.823945 1 event.go:218] Event(v1.ObjectReference{Kind:"Endpoints", Namespace:"kube-system", Name:"kube-controller-manager", UID:"ec7f1208-807c-11e8-bc66-0e594759e784", APIVersion:"v1", ResourceVersion:"289", FieldPath:""}): type: 'Normal' reason: 'LeaderElection' k8s_1bbcc7bc-807d-11e8-859d-0e594759e784 became leader
I0705 17:59:22.849017 1 aws.go:1026] Building AWS cloudprovider
I0705 17:59:22.849064 1 aws.go:988] Zone not specified in configuration file; querying AWS metadata service
F0705 17:59:22.851606 1 controllermanager.go:159] error building controller context: cloud provider could not be initialized: could not init cloud provider "aws": error finding instance i-07df027cffda674bc: "error listing AWS instances: \"NoCredentialProviders: no valid providers in chain. Deprecated.\\n\\tFor verbose messaging see aws.Config.CredentialsChainVerboseErrors\""
该/etc/kubernetes/aws.conf
文件。
apiVersion: kubeadm.k8s.io/v1alpha1
kind: MasterConfiguration
cloudProvider: aws
kubernetesVersion: 1.10.3
该/etc/kubernetes/cloud-config.conf
文件。
[Global]
KubernetesClusterTag=k8s
KubernetesClusterID=k8s
解决方案
更改EC2实例标签,KEY= KubernetesCluster,VALUE= k8s(在我的例子中)。
解决方案
由于 weave 网络崩溃,kube-dns 始终处于挂起状态
修复cgroups
设置。
- 添加
Environment="KUBELET_CGROUP_ARGS=--cgroup-driver=cgroupfs"
到/etc/systemd/system/kubelet.service.d/10-kubeadm.conf
. - 重启kubelet服务。
sudo systemctl deamon-reload sudo systemctl restart kubelet
在创建kubernetes集群之前安装 weave net 并启动。
推荐阅读
- react-native - 从组件访问导航
- r - 如何在矩阵中找到特定给定值的行和列?
- javascript - 如何使用 Typescript 全局访问模块?
- console - 它允许通过谷歌购买在华为商店发布应用程序吗?
- python - 具有重复组名的正则表达式
- liquibase - Liquibase 数据库更改日志表
- reactjs - 使用 npx create-react-app 创建反应应用失败
- javascript - 如何使用 API 返回的多个字段构建表列?
- javascript - 在 laravel 中访问 javascript 变量
- python - Google Cloud Run for Anthos(Knative)未在 https 请求上正确设置 X-Forwarded-Proto 标头