Ben*_*Ben 7 kubernetes kubernetes-service amazon-eks
在某些情况下,我们提供的服务在尝试访问它们时没有任何响应。例如,Chrome显示ERR_EMPTY_RESPONSE,偶尔我们还会遇到其他错误,例如408,我可以肯定它是从ELB返回的,而不是从应用程序本身返回的。
经过长期的调查,包括对节点本身进行shsh处理,对负载均衡器进行实验等,我们仍然不确定问题实际存在于哪一层:在Kubernetes本身中,还是在Amazon EKS(ELB或除此以外)
还有什么可能导致这种行为?
经过大量调查后,我们遇到了许多问题: * 我们的应用程序并不总是按照我们预期的方式运行。一定要先检查一下。* 在我们的 Kubernetes 服务清单中,我们设置了externalTrafficPolicy: Local,这可能应该有效,但给我们带来了问题。(这是使用经典负载均衡器时的情况)service.beta.kubernetes.io/aws-load-balancer-type: "clb"。因此,如果您在使用 CLB 时遇到问题,请删除externalTrafficPolicy或将其显式设置为默认的“集群”值。
所以我们的清单现在是:
kind: Service
apiVersion: v1
metadata:
name: apollo-service
annotations:
service.beta.kubernetes.io/aws-load-balancer-type: "clb"
service.beta.kubernetes.io/aws-load-balancer-ssl-cert: "arn:aws:acm:REDACTED"
service.beta.kubernetes.io/aws-load-balancer-ssl-ports: "443"
service.beta.kubernetes.io/aws-load-balancer-backend-protocol: "http"
spec:
externalTrafficPolicy: Cluster
selector:
app: apollo
ports:
- name: http
protocol: TCP
port: 80
targetPort: 80
- name: https
protocol: TCP
port: 443
targetPort: 80
type: LoadBalancer
| 归档时间: |
|
| 查看次数: |
976 次 |
| 最近记录: |