kubeadm初始化阶段上传配置失败

时间:2020-03-12 10:17:22

标签: amazon-web-services kubernetes kubeadm

我是kubernetes的新手,在成功完成minikube和单个主kubernetes集群的示例之后,我想设置kubernetes HA。为此,我正在使用AWS EC2实例和AWS应用程序负载平衡器。我不想使用KOPS或任何其他工具进行安装。我想接触kubeadm。 我遵循以下步骤

  1. 创建用于以下目的的自签名证书ca.crt和ca.key kubernetes
  2. 在我的ubuntu上以根CA身份安装了此证书 实例
  3. 将此ca.crt和ca.key复制到/ etc / kubernetes / pki
  4. 为AWS Load Balancer创建了新证书并已签名 与上面的cart。使用此证书创建的AWS应用程序 负载均衡器
  5. 我还在AWS Route53中创建了用于域名映射的记录集。我还确保此域名 映射正在工作。 (即master.k8sonaws.com已正确解析为AWS负载均衡器)
  6. 现在我正在使用kubeadm init

    kubeadm init --pod-network-cidr=192.168.0.0/20
    --service-cidr=192.168.16.0/20 --node-name=10.0.0.13  --control-plane-endpoint "master.k8sonaws.com:443"  --upload-certs --v=8 --apiserver-bind-port=443 --apiserver-cert-extra-sans=master.k8sonaws.com,i-0836dd4dc6609a924
    
  7. 此命令是后续的直至上载配置阶段。运行状况检查端点返回成功,但 之后,它在上载配置阶段失败

    configmaps被禁止:用户“ system:anonymous”无法在名称空间的API组“”中创建资源“ configmaps” “ kube-system”

在这里,我不明白为什么kubeadm传递了anonymyous用户进行api调用。我该如何解决这个问题

2 个答案:

答案 0 :(得分:2)

kubeconfig文件中用于创建ConfigMap的证书没有正确的组。我会说不要自己为kubernetes生成ca和cert。只需使用kubeadm init,kubeadm将处理ca和cert生成。 kubernetes集群启动并运行后,您可以使用相同的ca自己生成证书,并在AWS负载均衡器中使用它。

答案 1 :(得分:0)

尝试了许多不同的东西后,我找到了解决此问题的方法 2天。问题是AWS负载均衡器未通过客户端 使用https侦听器时向后端服务器提供证书。问题是Aws有 没有记录这个事实,或者如果我没有得到这些文件, 在那里。

解决此问题的方法是通过相同的端口443使用平面http侦听器。因此SSL终止由后备服务器执行。就我而言,这不是安全威胁,因为我的负载均衡器和后端服务器都是内部的,并且没有公开IP。