服务(LoadBalancer)端口无法在aw

时间:2018-01-09 08:10:10

标签: amazon-web-services kubernetes

我在LoadBalancerk8s部署了aws服务(通过kops制作)。

服务定义如下:

apiVersion: v1
kind: Service
metadata:
  name: ui
  annotations:
    service.beta.kubernetes.io/aws-load-balancer-ssl-cert: <certificate_id>
spec:
  ports:
  - name: http
    port: 80
    targetPort: ui-port
    protocol: TCP
  - name: https
    port: 443
    targetPort: ui-port
    protocol: TCP
  selector:
    els-pod: ui
  type: LoadBalancer

以下是相应的部署:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: ui-deployment
spec:
  replicas: 1
  template:
    metadata:
      labels:
        els-pod: ui
    spec:
      containers:
      - image: <my_ecr_registry>/<my_image>:latest
        name: ui
        ports:
        - name: ui-port
          containerPort: 80
      restartPolicy: Always

我知道<my_image>公开了端口80

我已经为部署的ELB分配了一个别名,比如说。 my-k8s.mydomain.org

问题在于:

  • https://my-k8s.mydomain.org工作得很好
  • http://my-k8s.mydomain.org返回一个空页面(在squid代理后面访问时,我收到zero-sized reply错误消息)

为什么我无法通过端口80访问服务?

编辑:我刚发现的是有关证书的服务注释,也是在ELB上的端口80上分配

这可能是问题吗?

有解决方法吗?

1 个答案:

答案 0 :(得分:0)

只需在服务定义中添加以下注释:

service.beta.kubernetes.io/aws-load-balancer-ssl-ports: "443"