Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 当externalTrafficPolicy设置为Local时,Kubernetes在使用AWS网络负载平衡器时默认进行http运行状况检查_Amazon Web Services_Kubernetes_Aws Load Balancer - Fatal编程技术网

Amazon web services 当externalTrafficPolicy设置为Local时,Kubernetes在使用AWS网络负载平衡器时默认进行http运行状况检查

Amazon web services 当externalTrafficPolicy设置为Local时,Kubernetes在使用AWS网络负载平衡器时默认进行http运行状况检查,amazon-web-services,kubernetes,aws-load-balancer,Amazon Web Services,Kubernetes,Aws Load Balancer,我正在尝试为Kubernetes集群上运行的服务设置AWS NLB,并对后端服务进行TCP健康检查。当externalTrafficPolicy设置为Local时,Kubernetes总是倾向于为任何服务创建HTTP运行状况检查,并且仅在设置为集群时创建TCP运行状况检查 .metadata.annotations.service.beta.kubernetes.io/aws-load-balancer-type: "nlb" .metadata.annotations.service.beta

我正在尝试为Kubernetes集群上运行的服务设置AWS NLB,并对后端服务进行TCP健康检查。当externalTrafficPolicy设置为Local时,Kubernetes总是倾向于为任何服务创建HTTP运行状况检查,并且仅在设置为集群时创建TCP运行状况检查

.metadata.annotations.service.beta.kubernetes.io/aws-load-balancer-type: "nlb"
.metadata.annotations.service.beta.kubernetes.io/aws-load-balancer-internal: "true"
.metadata.annotations.service.beta.kubernetes.io/aws-load-balancer-backend-protocol: tcp
.spec.ports.protocol: TCP
.spec.externalTrafficPolicy : **Cluster/Local**
只有当我将externalTrafficPolicy从本地切换到集群时,我才能为目标组设置TCP健康检查,否则它倾向于在/healthz上设置HTTP检查,这对我来说是失败的

我试图通过kubeproxy和cluster externalTrafficPolicy避免额外的负载平衡,这可能会创建跨节点边界的跃点


有什么我遗漏的吗?

你说“否则它会在/healthz上设置HTTP检查,这对我来说会失败”,你所说的“这对我来说会失败”@mWatney我的服务不是HTTP,而是TCP,所以任何使用HTTP的NLB健康检查都会失败。下面是我的部署<代码>规范:端口:-端口:8888名称:端口-1目标端口:8888协议:TCP请注意(使用externaltrafficpolicy local时)nodePort和healthCheckNodePort是不同的(
kubectl get svc-oyaml
)nodePort用于与应用程序通信,healthCheckNodePort被NLB用作healthcheck端点。请检查是否可以手动访问healthCheckNodePort(
curl:/healthz
)。