为本地Docker Desktop、Kubernetes、Helm部署配置主机名
Kubernetes服务DNS域名配置与LoadBalancer外部IP问题解析
服务集群内DNS域名说明
Kubernetes 集群默认会自动为每个 Service 生成标准格式的 DNS 域名,完全符合你提到的myservice.default.svc.cluster.local规则,不需要额外修改你的 Service 配置:
- 域名格式:
<Service名称>.<命名空间>.svc.cluster.local - 你的 Service 名称由 Helm 模板
{{ include "api.fullname" . }}生成,若部署在default命名空间,对应的域名就是{{ include "api.fullname" . }}.default.svc.cluster.local - 集群内的 Pod 可直接通过该域名访问服务,CoreDNS 组件会自动完成解析工作
LoadBalancer外部IP显示localhost的原因
Docker Desktop 内置的 Kubernetes 环境没有对接云厂商的负载均衡服务,因此会将 LoadBalancer 类型 Service 的外部IP默认设为localhost,这是正常的适配行为:
- 宿主机上可通过
localhost:<你的服务端口>访问该服务 - 集群内部访问仍需使用上述集群 DNS 域名
你的现有 Service 配置完全合法,无需调整:
apiVersion: v1 kind: Service metadata: name: {{ include "api.fullname" . }} labels: {{- include "api.labels" . | nindent 4 }} spec: type: {{ .Values.service.type }} ports: - port: {{ .Values.service.port }} targetPort: {{ .Values.service.targetPort }}
内容的提问来源于stack exchange,提问作者ahi
相关产品推荐
相关产品推荐

