我正在尝试使用新的kubeadm
工具在AWS上的CentOS 7群集上安装Kubernetes 1.4(不过Ubuntu 16.04也是如此)。
这是主节点上命令kubeadm init --cloud-provider aws
的输出:
# kubeadm init --cloud-provider aws
<cmd/init> cloud provider "aws" initialized for the control plane. Remember to set the same cloud provider flag on the kubelet.
<master/tokens> generated token: "980532.888de26b1ef9caa3"
<master/pki> created keys and certificates in "/etc/kubernetes/pki"
<util/kubeconfig> created "/etc/kubernetes/kubelet.conf"
<util/kubeconfig> created "/etc/kubernetes/admin.conf"
<master/apiclient> created API client configuration
<master/apiclient> created API client, waiting for the control plane to become ready
问题是控制平面没有准备好,命令似乎进入死锁状态。我还注意到,如果未提供--cloud-provider
标志,则从Amazon EC2 Container Registry中提取图像不起作用,并且在创建类型为LoadBalancer
的服务时,不会创建Elastic Load Balancer。
是否有人使用kubeadm
作为云提供商运行aws
?
如果需要任何进一步的信息,请告诉我。
谢谢!
答案 0 :(得分:2)
我最近在AWS上推出了一个带有kubeadm的集群(kubernetes 1.5.1),并且它与你的步骤保持同步。为了解决这个问题,我不得不添加&#34; - api-advertise-addresses = LOCAL-EC2-IP&#34;,它没有使用外部IP(当没有指定其他IP时,kubeadm可能会自行获取) )。所以它是一个网络连接问题(暂时尝试该主实例上的0.0.0.0/0安全组规则),或其他什么......在我的情况下是一个网络问题,它是不能够的使用自己的外部IP连接到自己:)
关于PV和ELB集成,我实际上确实发布了一个&#34; PersistentVolumeClaim&#34;与我的MongoDB集群一起工作(它创建了卷并附加到其中一个从节点) 这是例如: PV created and attached to slave node
因此kubernetes 1.5.1附带的最新版kubeadm也应该适合你! 需要注意的一点是:您必须具有适当的IAM角色权限才能创建资源(分配您的主节点,IAM角色类似于&#34; EC2完全访问&#34;在测试期间,您可以稍后调整它以仅允许少数所需动作)
希望它有所帮助。
答案 1 :(得分:1)
文档(截至目前)明确说明了以下限制:
此处创建的群集没有云提供程序集成,因此例如不能与(例如)Load Balancers(LB)或Persistent Volumes(PV)一起使用。要轻松获得与LB和PV Kubernetes一起使用的集群,请尝试“hello world”GKE教程或其他特定于云的安装教程。
答案 2 :(得分:0)
我知道这里有几种可能性 - :
1)在较旧的kubeadm版本中,selinux此时阻止访问
2)如果您在代理服务器后面,则需要将常用内容添加到kubeadm环境中 - :
HTTP_PROXY
HTTPS_PROXY
NO_PROXY
另外,我在任何地方都没有记录 - :
KUBERNETES_HTTP_PROXY
KUBERNETES_HTTPS_PROXY
KUBERNETES_NO_PROXY