k8s DNS 服务发现的一个坑

Posted rongfengliang-荣锋亮

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了k8s DNS 服务发现的一个坑相关的知识,希望对你有一定的参考价值。

按照官当文档,以及大家的实践进行k8s dns 服务发现搭建还是比较简单的,但是会有一个因为系统默认dns 配置造成的一个问题

 

1. linux  默认dns 配置在 /etc/resolv.conf  

 

一般来只会有几个简单的配置信息

比如:  nameserver XXXXXXXXX 

但是今天在阿里云服务器上进行按照的时候出现了进行dns 解析测试的pod 能够解析,但是 自己创建的pod 不能使用

很是困惑,

阿里云dns 的配置如下:

options timeout:1 attempts:1 rotate
nameserver XXXXXX 
nameserver XXXXXX

问题就出在 optinons 上注释即可

2. 解决之后每个pod 直接可以进行dns service 发现使用

  备注: 一个mysql 后端暴露service的处理,方便进行管理

 

 service  

{
    "kind": "Service",
    "apiVersion": "v1",
    "metadata": {
        "name": "my-service"
    },
    "spec": {
        "ports": [
            {
                "protocol": "TCP",
                "port": 3306,
                "targetPort": 3306
            }
        ]
    }
}

  

 endpoint 

{
    "kind": "Endpoints",
    "apiVersion": "v1",
    "metadata": {
        "name": "my-service"
    },
    "subsets": [
        {
            "addresses": [
                { "ip": "XXXXXXXX" }
            ],
            "ports": [
                { "port": 3306 }
            ]
        }
    ]
}

  

以上是关于k8s DNS 服务发现的一个坑的主要内容,如果未能解决你的问题,请参考以下文章

k8s 服务注册与发现DNS

k8s 服务注册与发现DNS

k8s 服务注册与发现DNS

K8s基于DNS的服务发现(转)

k8s 如何使用kube-dns实现服务发现

k8s 服务注册与发现DNS解析异常问题排查