kubernetes:AWS ELB无法运行

时间:2017-12-22 12:15:24

标签: amazon-web-services kubernetes

我已通过以下svc和部署设置了前端服务:

部署

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: ui-deployment
spec:
  replicas: 1
  template:
    metadata:
      labels:
        els-pod: ui
    spec:
      containers:
      - image: pkaramol/the-ui
        name: ui
        ports:
        - containerPort: 80
      restartPolicy: Always

服务

apiVersion: v1
kind: Service
metadata:
  name: ui
spec:
  ports:
  - name: ui-port
    port: 8080
    targetPort: 80
  selector:
    els-pod: ui

通过AWS ELB公开时,如下所示:

kubectl expose  deployment ui-deployment --type=LoadBalancer --port=80 --target-port=8080 --name=k8s-elb

访问ELB的DNS名称时,我得到一个空白页面。

此外,榆树背后的实例似乎不健康:

enter image description here 此外,以下端口映射是否有意义?

enter image description here

2 个答案:

答案 0 :(得分:0)

您可能需要对服务yaml文件添加一些内容 -

  • 添加loalbalancer Ip并输入Service yaml

    loadBalancerIP: <Public Ip>
    type: LoadBalancer
    
  • ELB路由
    1. 如果您使用URL直接使用HTTP或https而未指定任何端口,那么您需要80和443来运行正在运行服务的端口,例如30001 ex - http://iphttps://ip
    2. 如果你想打开Ip说8180,那么添加规则以转发8180到30001 前 - http://IP:8180/
    3. 我认为您不需要公开部署。运行服务yaml将起作用。
    4. 确保您提供正确的端口。您也可以离开目标端口。它将与您的情况下的8080端口相同

参考 - https://cloud.google.com/kubernetes-engine/docs/tutorials/configuring-domain-name-static-ip

答案 1 :(得分:0)

将您的服务类型设置为LoadBalancerhttps://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#external-load-balancer-providers

apiVersion: v1
kind: Service
metadata:
  name: ui
spec:
  type: LoadBalancer
  ports:
  - name: ui-port
    port: 8080
    targetPort: 80
  selector:
    els-pod: ui

您无需设置负载均衡器IP。