【发布时间】:2020-07-29 11:10:19
【问题描述】:
我有运行 Kubernetes 版本 1.18.2 的 Minikube。 Minikube 也在运行股票 CoreDNS。我需要为我的服务coolservice 引入一个DNS 别名。该服务在标准coolservice、coolservice.default 和coolservice.default.svc.cluster.local DNS 名称下可用。我希望我的服务也可以在 coolservice.foo.bar 域下使用。
我正在尝试为此目的使用 DNS 重写插件。这是我的 Corefile 配置:
apiVersion: v1
data:
Corefile: |
.:53 {
[... unchanged ...]
}
foo.bar {
rewrite name exact coolservice.foo.bar coolservice.default.svc.cluster.local
}
kind: ConfigMap
metadata:
[... unchanged ...]
使用 kubectl 应用 Corefile 后,我在另一个 pod 中声明 shell,并且我正在尝试使用 host 和 curl 解析域。不幸的是,如果失败并出现错误Question section mismatch:
root@aks-ssh:/# host coolservice.default.svc.cluster.local
coolservice.default.svc.cluster.local has address 10.108.195.164
root@aks-ssh:/# host coolservice.foo.bar
;; Question section mismatch: got coolservice.default.svc.cluster.local/A/IN
;; Question section mismatch: got coolservice.default.svc.cluster.local/A/IN
;; connection timed out; no servers could be reached
root@aks-ssh:/# curl -X GET coolservice.default.svc.cluster.local:8100/health
{"results":[],"compositeStatus":"Healthy"}
root@aks-ssh:/# curl -X GET coolservice.foo.bar:8100/health
curl: (6) Could not resolve host: coolservice.foo.bar
在这个documentation section 中写道,当使用exact 名称重写规则时,答案会自动重写。我也尝试过正则表达式规则。知道这里有什么问题吗? (我也尝试在 AKS 集群上配置它,同样的问题。)。
【问题讨论】:
-
如果它解决了您的目的,您尝试过吗kubernetes.io/docs/concepts/services-networking/dns-pod-service
-
@TarunKhosla 是的,但这对我没有帮助。它允许为 pod 添加 DNS 别名,我需要 ClusterIP 服务的别名。
-
您是否需要该 DNS 名称在集群内可见,或在外部可访问?
-
集群内部。
标签: kubernetes dns azure-aks coredns