如何在启用cloud-provider=aws的k8s集群中设置service 的externalTrafficPolicy为local关于externalTrafficPolicy的local和cluster两个值,在之前的文章中,我们已经讲过。大家可以参考从service的externalTrafficPolicy到podAntiAffinity这篇文章。而在aws中,假如你自己部署k8s集群,并且启用了cloud-provider=aws,那么需要做一些其他的工作,否则service 的externalTrafficPolicy为local后,无法访问。首先保证kube-proxy启动参数里加入hostname-override设置 - –hostname-override=$(NODE_NAME) env: - name: NODE_NAME valueFrom: fieldRef: apiVersion: v1 fieldPath: spec.nodeName然后需要设置VPC的DHCP domainname 为 .compute.internal。参考资料:当您创建 VPC 时,我们会自动创建 DHCP 选项集,并将它们与 VPC 相关联。此设置包括两个选项:domain-name-servers=AmazonProvidedDNS 和 domain-name=domain-name-for-your-region。