我在LoadBalancer
上k8s
部署了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上分配。
这可能是问题吗?
有解决方法吗?
答案 0 :(得分:0)
只需在服务定义中添加以下注释:
service.beta.kubernetes.io/aws-load-balancer-ssl-ports: "443"