DNSJava in Kubernetes



Dnsjava是Java中DNS的实现。 我们已经围绕它构建了一些应用程序逻辑。 只是想检查 Kubernetes 是否会在应用程序级别支持 DNS 接口

不完全确定你的意思,但 Kubernetes 并不关心你在它上运行什么。您的工作负载就是您的问题:)

您可以在 Kubernetes 中配置 DNS Pod 并自定义 DNS 解析过程。

DNS 是使用插件管理器集群附加组件自动启动的内置 Kubernetes 服务。

CoreDNS 是最流行的 DNS 服务器,取代了 kube-dns。

CoreDNS 部署作为 Kubernetes 服务公开,具有 静态 IP。CoreDNS 和 kube-dns 服务都命名为 kube-dns metadata.name 字段。这样做是为了有更大的 与依赖于传统 kube-DNS 的工作负载的互操作性 用于解析群集内部地址的服务名称。它 抽象出哪个 DNS 提供商的实现细节 在该公共终结点后面运行。kubelet 将 DNS 传递给每个 带有 --cluster-dns= 标志的容器。

DNS 名称也需要域。您可以在 库贝莱特与旗帜--cluster-domain=<default-local-domain>.

DNS 服务器启用端口查找、正向查找和反向 IP 地址查找(PTR 记录(。

如果 Pod 的 dnsPolicy 设置为"默认",它将继承名称 从运行 Pod 的节点进行分辨率配置。豆荚的 DNS 解析的行为应与节点相同。但请参阅已知 问题。

如果您不想要这个,或者如果您想要不同的 DNS 配置 豆荚,您可以使用kubelet’s --resolv-conf标志。将此标志设置为 " 以防止 Pod 继承 DNS。将其设置为有效的文件路径 为 DNS 继承指定除/etc/resolv.conf以外的文件。

对于每个 pod,都可以设置 DNS 策略。Kubernetes 支持以下 DNS 策略:

  • 默认值:为从中获取名称解析配置的 Pod 设置此值 运行特定 Pod 的节点。
  • 群集优先:为与配置的 DNS 查询不匹配的任何 DNS 查询设置此值 集群域后缀,示例:www.kubernetes.io
  • ClusterFirstWithHostNet:如果 Pod 运行 主机网络
  • :此值允许 Pod 跳过 Kubernetes 环境。应该提供所有DNS设置 使用 Pod 规范中的 dnsConfig 字段。

请注意,"默认">值与默认 DNS 策略不同。如果未指定 dnsPolicy,则 DNS 策略的默认值为"群集优先"。

以下是具有特定 DNS 策略的 pod 配置文件示例:

apiVersion: v1
kind: Pod
metadata:
name: dns-example
spec:
containers:
- name: dns-test
image: eg_postgresql:latest
command:
- sleep
- "4000"
imagePullPolicy: IfNotPresent
name: eg_postgresql
restartPolicy: Always
hostNetwork: true
dnsPolicy: ClusterFirstWithHostNet

在这里阅读更多:dns-kubernetes,dns-services-pod。

是的- 您在 Kubernetes 上运行的应用程序可以与在同一集群中运行的 Kubernetes DNS 接口/调用......如果这就是问题所在。:-)

如果您有适当的访问权限,则可以在 Kubernetes 中自定义 DNS。

查看文档中的"容器的 DNS 策略"和"容器的 DNS 配置"部分,了解如何在部署/容器配置中配置dnsPolicydnsConfig字段,从而更好地控制部署/容器的 DNS 设置。

相关内容

  • 没有找到相关文章

最新更新