amazon-web-services - LoadBalancer 外部 IP 卡在待处理状态

标签 amazon-web-services kubernetes amazon-ec2 kubernetes-ingress kubernetes-pod

我使用 kubeadm 创建了一个带有 AWS ec2 实例的 Kubernetes 集群,但是当我尝试创建一个 LoadBalancer 类型的服务时,我得到一个 EXTERNAL-IP 挂起状态

NAME         TYPE           CLUSTER-IP      EXTERNAL-IP   PORT(S)         AGE
kubernetes   ClusterIP      10.96.0.1       <none>        443/TCP         123m
nginx        LoadBalancer   10.107.199.170  <pending>     8080:31579/TCP  45m52s
我的创建命令是
kubectl expose deployment nginx --port 8080 --target-port 80 --type=LoadBalancer
我不确定我做错了什么。
我希望看到的是为负载均衡器提供的外部 IP 地址。
请问有人遇到过这个问题并成功解决吗?
谢谢。

最佳答案

您需要设置 接口(interface) k8s 和 AWS 之间是 ws-cloud-provider-controller .

apiVersion: kubeadm.k8s.io/v1beta1
kind: InitConfiguration
nodeRegistration:
  kubeletExtraArgs:
    cloud-provider: aws
可以找到更多详细信息:
  • https://kubernetes.io/docs/concepts/cluster-administration/cloud-providers/
  • https://blog.heptio.com/setting-up-the-kubernetes-aws-cloud-provider-6f0349b512bd
  • https://blog.scottlowe.org/2019/02/18/kubernetes-kubeadm-and-the-aws-cloud-provider/
  • https://itnext.io/kubernetes-part-2-a-cluster-set-up-on-aws-with-aws-cloud-provider-and-aws-loadbalancer-f02c3509f2c2

  • 完成此设置后,您不仅可以控制为每个具有 LoadBalancer. 类型的 k8s 服务创建 AWS LB。而且,您还可以使用 控制许多事情。注释 .
    apiVersion: v1
    kind: Service
    metadata:
      name: example
      namespace: kube-system
      labels:
        run: example
      annotations:
         service.beta.kubernetes.io/aws-load-balancer-ssl-cert: arn:aws:acm:xx-xxxx-x:xxxxxxxxx:xxxxxxx/xxxxx-xxxx-xxxx-xxxx-xxxxxxxxx #replace this value
         service.beta.kubernetes.io/aws-load-balancer-backend-protocol: http
    spec:
      type: LoadBalancer
      ports:
      - port: 443
        targetPort: 5556
        protocol: TCP
      selector:
        app: example
    
    Different settings can be applied to a load balancer service in AWS using annotations.

    关于amazon-web-services - LoadBalancer 外部 IP 卡在待处理状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62854796/

    相关文章:

    symfony - 使用 Symfony 2.1 的弹性负载均衡器

    Node.js 在 OpsWorks 亚马逊上每分钟重新启动一次?

    amazon-web-services - EC2 负载均衡器 : What is the Difference Between LB and Instance Protocol

    logging - 设置Docker Logstash镜像的日志位置

    python - 在 amazon ec2 上配置主管,给出生成错误未知错误,为 'app_name' : EACCES 制作调度程序

    amazon-web-services - 如何使用 helm-chart 设置 nginx-ingress 的 AWS ELB 名称

    amazon-web-services - 我们可以通过AWS Cloudformation动态创建Keypair并将.PEM文件复制到EC2 Linux实例吗

    kubernetes - Google Container Engine 是否支持基于 DNS 的服务发现?

    amazon-web-services - 如何自动缩放节点kubernetes

    azure - 为什么我的 k8s Nginx 入口 Controller 提供两个证书(其中之一是 Kubernetes 假证书)?