KOPS:在AWS VPC上具有专用网络的Kubernetes集群:错误列出节点

时间:2018-09-12 04:40:27

标签: amazon-web-services kubernetes vpc kops

我遵循了本教程:Kubernetes Cluster with private networking on AWS using Kops

但是,创建kubernetes集群后,出现以下错误:

$ kops validate cluster
Using cluster from kubectl context: k8s-cluster.mydomain.com
Validating cluster k8s-cluster.mydomain.com

错误消息:

unexpected error during validation: error listing nodes: Get https://subdomain.eu-central-1.elb.amazonaws.com/api/v1/nodes: EOF

关于如何调试或解决此问题的任何想法?


我以前创建的步骤如下:

设置VPC和子网

创建VPC

$ aws ec2 create-vpc --cidr-block 10.0.0.0/16 --region eu-central-1

允许DNS主机名

$ aws ec2 modify-vpc-attribute --vpc-id ${VPC_ID} --enable-dns-hostnames "{\"Value\":true}" --region ${REGION}

创建Internet网关

$ aws ec2 create-internet-gateway --region ${REGION}

将Internet网关连接到VPC

$ aws ec2 attach-internet-gateway --internet-gateway-id ${INTERNET_GATEWAY_ID} --vpc-id ${VPC_ID} --region ${REGION}

[PUBLIC SUBNETS]创建三个公共区域/子网(3x)

$ aws ec2 create-subnet --vpc-id ${VPC_ID} --cidr-block 10.0.0.0/20 --availability-zone ${AVAILABILITY_ZONE_1} --region ${REGION}

设置公共子网以将公共IP自动分配给实例(3x)

$ aws ec2 modify-subnet-attribute --subnet-id ${PUBLIC_SUBNET_1} --map-public-ip-on-launch --region ${REGION}

[PRIVATE SUBNETS]创建三个私有区域/子网(3x)

$ aws ec2 create-subnet --vpc-id ${VPC_ID} --cidr-block 10.0.48.0/20 --availability-zone ${AVAILABILITY_ZONE_1} --region ${REGION}

[设置NAT网关]分配地址(3x)

$ aws ec2 allocate-address --domain vpc --region ${REGION}

为公共区域(3x)创建NAT网关

$ aws ec2 create-nat-gateway --subnet-id ${PUBLIC_SUBNET_1} --allocation-id ${EIP_ALLOCATION_ID_1} --region ${REGION}

[CONFIGURE ROUTE T​​ABLES]创建路由表

$ aws ec2 create-route-table --vpc-id ${VPC_ID} --region ${REGION}

创建Internet网关的路由

$ aws ec2 create-route --route-table-id ${RTB_PUBLIC_1} --destination-cidr-block 0.0.0.0/0 --gateway-id ${INTERNET_GATEWAY_ID} --region ${REGION}

将公共子网与路由表(3x)关联

$ aws ec2 associate-route-table --route-table-id ${RTB_PUBLIC_1} --subnet-id ${PUBLIC_SUBNET_1} --region ${REGION}

[用于专用区域的路由表]为每个专用区域(3x)创建路由表

$ aws ec2 create-route-table --vpc-id ${VPC_ID} --region ${REGION}

创建到NAT网关(3x)的路由

$ aws ec2 create-route --route-table-id ${RTB_PRIVATE_1} --destination-cidr-block 0.0.0.0/0 --nat-gateway-id ${NAT_GW_1} --region ${REGION}

关联子网(3x)

$ aws ec2 associate-route-table --route-table-id ${RTB_PRIVATE_1} --subnet-id ${PRIVATE_SUBNET_1} --region ${REGION}

其他配置

将S3存储桶设置为Kops状态存储

$ aws s3api create-bucket --bucket my-state-store --region ${REGION} --create-bucket-configuration LocationConstraint=eu-central-1

创建集群

$ kops create cluster --node-count 3 --zones ${AVAILABILITY_ZONE_1},${AVAILABILITY_ZONE_2},${AVAILABILITY_ZONE_3} --master-zones ${AVAILABILITY_ZONE_1},${AVAILABILITY_ZONE_2},${AVAILABILITY_ZONE_3} --state ${KOPS_STATE_STORE} --dns-zone=${DNS_ZONE_PRIVATE_ID} --dns private --node-size m5.large --master-size m5.large --topology private --networking weave --vpc=${VPC_ID} --bastion ${NAME}

将集群编辑为配置子网

$ kops edit cluster ${NAME}

注意:更新子网以与上面创建的公共/私有子网相对应

$ kops update cluster ${NAME} --yes

1 个答案:

答案 0 :(得分:1)

问题已解决。这不是kops问题,而是AWS M5和linux版本的问题。

  

kops默认Debian jessie图像不支持EBS的nvme   卷,由AWS M5实例类型使用。结果是,   主机无法启动,因为它们无法装载EBS卷。

来源:https://github.com/kubernetes/kops/issues/4873