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 }
            ]
        }
    ]
}

  

时间: 2024-12-20 01:44:25

k8s DNS 服务发现的一个坑的相关文章

k8s之服务发现

一.概述 k8s中支持两种服务发现方法: 环境变量和DNS 二.环境变量 当Pod被创建的时候,k8s将为Pod设置每一个Service的相关环境变量,这些环境变量包括两种类型: k8s Service环境变量: k8s为Service设置的环境变量形式, 包括: {SVCNAME}_SERVICE_HOST {SVCNAME}_SERVICE_PORT {SVCNAME}_SERVICE_PORT_{PORTNAME} 其中的服务名和端口名转为大写,连字符转换为下划线. Docker Link

利用chkconfig 管理启动服务及脚本一个坑点

利用chkconfig 管理启动服务及脚本一个坑点 在启动脚本头部: #!/bin/bash #chkconfig:  2345 63 90 #description: this is a example 彩色部分是chkconfig管理的要点,必须写入,同时绿色部分代表所引用的运行级别,×××代表启动顺序,越小越靠前[00-99],蓝色部分代表关闭顺序,越小越靠前[00-99],我为了不影响,用了一个100,报错了,所以是个坑点,网络上也没有相关说明.是自己试出来的. 其实启动就相当于开机自动

consul服务注册与服务发现的巨坑

最近使用consul作为项目的服务注册与服务发现的基础功能.在塔建集群使用中遇到一些坑,下面一个个的记录下来. consul集群多node consul集群的node也就是我们所说的consul实例.集群由多个node组成,为了集群的可用性,需要超过半数的node启用server.如5个node中建议3个启用server模式,3个node组成的集群就2个node启用server模式.看到这里的时候你一定觉得没有什么问题呀,但是consul坑就是多.加入你的集群组成如下: Node Address

k8s dns 服务安装配置说明

1. 提前条件 安装k8s 集群 2.  dns  安装配置 安装方式: 使用controller  service controller  脚本: 基于官方改动 apiVersion: v1 kind: ReplicationController metadata: name: kube-dns-v8 namespace: kube-system labels: k8s-app: kube-dns version: v8 kubernetes.io/cluster-service: "true

服务发现:Zookeeper vs etcd vs Consul

摘自:http://dockone.io/article/667 [编者的话]本文对比了Zookeeper.etcd和Consul三种服务发现工具,探讨了最佳的服务发现解决方案,仅供参考. 如果使用预定义的端口,服务越多,发生冲突的可能性越大,毕竟,不可能有两个服务监听同一个端口.管理一个拥挤的比方说被几百个服务所使用的所有端口的列表,本身就是一个挑战,添加到该列表后,这些服务需要的数据库和数量会日益增多.因此我们应该部署无需指定端口的服务,并且让Docker为我们分配一个随机的端口.唯一的问题

Nmap扫描教程之DNS服务类

Nmap扫描教程之DNS服务类 Nmap DNS服务类 DNS(Domain Name System,域名系统)的作用就是将主机名解析为对应IP地址的过程.通常主机域名的一般结构为:主机名.三级域名.二级域名.顶级域名.所以,DNS服务器在解析一个主机名时,需要一级一级的进行解析,即递归查询.为了方便用户下次访问,DNS服务器会将解析过的主机名临时缓存.通过对DNS服务器进行扫描,可以获取到一些基本信息.如版本.服务器地址及缓存的域名等.本节将介绍DNS服务扫描方法. Nmap获取DNS信息 通

Docker Kubernetes 服务发现原理详解

Docker Kubernetes  服务发现原理详解 服务发现支持Service环境变量和DNS两种模式: 一.环境变量 (默认) 当一个Pod运行到Node,kubelet会为每个容器添加一组环境变量,Pod容器中程序就可以使用这些环境变量发现Service. 环境变量名格式如下: {SVCNAME}_SERVICE_HOST {SVCNAME}_SERVICE_PORT 注:其中服务名和端口名转为大写,连字符转换为下划线. 限制: 1)Pod和Service的创建顺序是有要求的,Servi

基于 DNS 动态发现方式部署 Etcd 集群

使用discovery的方式来搭建etcd集群方式有两种:etcd discovery和DNS discovery.在 「基于已有集群动态发现方式部署etcd集群」一文中讲解了etcd discovery这种方式,今天我们就来讲讲DNS discovery这种方式的实现. etcd在基于DNS做服务发现时,实际上是利用DNS的SRV记录不断轮训查询实现的.DNS SRV是DNS数据库中支持的一种资源记录的类型,它记录了哪台计算机提供了哪个服务这么一个简单信息. 本文采用dnsmasq作为dns服

移动端开发碰到一个坑

移动端开发真是不断踩坑,今天在做一个移动端的组件,又发现了一个坑,记录到日志里面,做个记录,以便以后再遇到这个问题有个记录可以参考. 在ios中的chrome浏览器中,手指从屏幕上方移动出屏幕(一定要经过屏幕边缘划出屏幕)时,不能触发touchend的事件,但是这个touchend事件并不是消失了,而是等到下次触摸屏幕的时候才会触发. 这个问题搞得我想到无奈,我的需求是一个容器内做一个动画,当手指离开屏幕时,也就是touchend时启动这个动画,有了这个问题,当手指是经过屏幕上边缘而离开屏幕是,