因此,我一直在为无法在eks集群中公开任何部署而苦苦挣扎。
我明白了这一点:

  • 我的LoadBalancer服务公用IP从不响应
  • 转到我的AWS控制台中的负载均衡器部分
  • 负载均衡器不起作用,因为我的群集节点未通过健康检查
  • SSHd到我的群集节点,发现容器没有与之关联的端口:

  • amazon-web-services - AWS EKS没有暴露的端口-LMLPHP
    这使群集节点无法通过运行状况检查,因此不会以这种方式转发流量。
    amazon-web-services - AWS EKS没有暴露的端口-LMLPHP
    我尝试手动运行一个简单的nginx容器,而没有kubectl直接在我的集群节点中:
    docker run -p 80:80 nginx
    
    并将节点公共(public)IP粘贴到我的浏览器中。没运气:
    amazon-web-services - AWS EKS没有暴露的端口-LMLPHP
    然后我尝试通过ssh直接从集群节点 curl 到nginx容器:
     curl localhost
    
    而且我得到以下响应:“curl:(7)无法连接到本地主机端口80:连接被拒绝”
  • 为什么集群节点中的容器未显示端口?
  • 如何使群集节点通过负载均衡器运行状况检查?
  • 它与我用eksctl创建一个单节点集群有关吗?
  • 为了在AWS中轻松运行kubernetes集群,我还需要其他哪些选项?
  • 最佳答案

    这是介于答案和问题之间的内容,但希望对您有所帮助。
    在创建EKS集群时,我使用Deploying a Kubernetes Cluster with Amazon EKS指南已有多年。
    出于测试目的,我刚刚启动了新集群,它可以按预期工作,包括使用外部LB ip访问测试应用程序并通过运行状况检查...
    简而言之,您需要:
    1. 创建EKS角色
    2. 创建要在EKS中使用的VPC
    3. https://amazon-eks.s3-us-west-2.amazonaws.com/cloudformation/2019-01-09/amazon-eks-vpc-sample.yaml创建堆栈(Cloudformation)
    4. 导出变量以简化cli命令的进一步使用

    export EKS_CLUSTER_REGION=
    export EKS_CLUSTER_NAME=
    export EKS_ROLE_ARN=
    export EKS_SUBNETS_ID=
    export EKS_SECURITY_GROUP_ID=
    
    5. 创建集群,验证其创建并生成适当的配置。
    #Create
    aws eks --region ${EKS_CLUSTER_REGION} create-cluster --name ${EKS_CLUSTER_NAME} --role-arn ${EKS_ROLE_ARN} --resources-vpc-config subnetIds=${EKS_SUBNETS_ID},securityGroupIds=${EKS_SECURITY_GROUP_ID}
    
    #Verify
    watch aws eks --region ${EKS_CLUSTER_REGION} describe-cluster --name ${EKS_CLUSTER_NAME} --query cluster.status
    
    #Create .kube/config entry
    aws eks --region ${EKS_CLUSTER_REGION} update-kubeconfig --name ${EKS_CLUSTER_NAME}
    
    您能否检查一下文章并确认您在安装过程中没有错过任何步骤?

    关于amazon-web-services - AWS EKS没有暴露的端口,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/64464286/

    10-11 07:34