docker - pod 容器无法解析运行它的主机

标签 docker ubuntu kubernetes dns

我有一个与主机名解析相关的独特场景。
我在专用网络中的服务器中运行单节点 Kubernetes 集群,它没有 DNS 服务器。
所以我在/etc/hosts file中配置了一个主机我的笔记本电脑。
现在的问题是我可以从节点(K8s 集群在其上运行)解析该主机,但我无法从 pod 内部解析它。以下是/etc/resolve.conf节点:

nameserver 127.0.0.53
options edns0
当我从容器内部对主机执行 ping 操作时出现以下错误
ping:错误地址“主机名”
如果有人可以在这里帮助我,我将不胜感激。

最佳答案

使用服务 DNS (FQDN: F ull Q 认证 D omain N ame)
如果您使用 K8S 服务公开您的对象(pod、部署等),您可以公开它们 外部命名空间 使用 IP 或使用 FQDN
以下是如何执行此操作的示例:
https://github.com/nirgeier/KubernetesLabs/tree/master/Labs/05-Services#0403-using-the-full-DNS-name

enter image description here
无论部署代码的 IP 和集群如何,名称 (FQDN) 都将相同。

官方文档:
https://kubernetes.io/docs/concepts/services-networking/service/#externalname

关于docker - pod 容器无法解析运行它的主机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69233979/

相关文章:

docker - 水平扩展聊天日志 worker

docker - 使用 NEST 访问 Elasticsearch Docker 实例

内核级别的 Docker 命名空间

php - Symfony 服务器 :run in php Docker container

ruby-on-rails - Capistrano RVM 和 Ubuntu RVM 不是一个函数,选择 'rvm use ...' 的 rubies 是行不通的

iphone - 如何在 ubuntu 中编译 Objective C 代码

kubernetes - helm 获取子图服务名称

mysql - 用户 'user' @'localhost' 的访问被拒绝(使用密码 : YES) in Apache Nifi

ruby-on-rails - 当前未安装“rvm”。 (在一个终端上工作,但在另一个终端上不工作)

docker - 回退为 elasticsearch kubernetes pod 重新启动失败容器的原因是什么?