一、概述

  k8s中支持两种服务发现方法: 环境变量和DNS

二、环境变量

  当Pod被创建的时候,k8s将为Pod设置每一个Service的相关环境变量,这些环境变量包括两种类型:

  • k8s Service环境变量:

    k8s为Service设置的环境变量形式, 包括:

    • {SVCNAME}_SERVICE_HOST
    • {SVCNAME}_SERVICE_PORT
    • {SVCNAME}_SERVICE_PORT_{PORTNAME}

    其中的服务名和端口名转为大写,连字符转换为下划线。

  • Docker Link环境变量:

    相当于通过 Docker 的--link 参数实现容器连接时设置的环境变量形式; 

三、DNS

   DNS服务发现需要k8s提供 Cluster DNS支持,Cluster DNS会监控k8s API,为每一个Service创建DNS记录用于域名解析,这样在Pod中可以通过DNS域名获取Service的访问地址。而对于一个Service, Cluster DNS会创建两条DNS记录:

  • [service_name].[namespace_name].[cluster_domain]
  • [service_name].[namespace_name].svc.[cluster_domain] 

k8s之服务发现的更多相关文章

  1. k8s DNS 服务发现的一个坑

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

  2. 从零开始入门 | Kubernetes 中的服务发现与负载均衡

    作者 | 阿里巴巴技术专家  溪恒 一.需求来源 为什么需要服务发现 在 K8s 集群里面会通过 pod 去部署应用,与传统的应用部署不同,传统应用部署在给定的机器上面去部署,我们知道怎么去调用别的机 ...

  3. Kubernetes 中的服务发现与负载均衡

    原文:https://www.infoq.cn/article/rEzx9X598W60svbli9aK (本文转载自阿里巴巴云原生微信公众号(ID:Alicloudnative)) 一.需求来源 为 ...

  4. k8s服务发现和负载均衡(转)

    原文 http://m635674608.iteye.com/blog/2360095 kubernetes中如何发现服务 如何发现pod提供的服务 如何使用kube-dns发现服务   servic ...

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

    原文地址:https://www.oschina.net/question/2657833_2201246 1.Kubernetes中如何发现服务 ◆   发现Pod提供的服务 首先使用nginx-d ...

  6. .net core i上 K8S(七).netcore程序的服务发现

    上一章我们分享了k8s的网络代理模式,今天我们来分享一下k8s中的服务发现. 1.环境变量模式的服务发现 k8s默认为我们提供了通过环境变量来实现服务发现的功能,前提是 1.需要service在pod ...

  7. spring-cloud-kubernetes服务发现之在k8s环境下开发spring cloud应用

    通常情况下,我们的线上的服务在迁移到k8s环境下的时候,都是采用平滑迁移的方案.服务治理与注册中心等都是采用原先的组件.比如spring cloud应用,在k8s环境下还是用原来的一套注册中心(如eu ...

  8. Docker与k8s的恩怨情仇(七)—— “服务发现”大法让你的内外交互原地起飞

    转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 第一章:Docker与k8s的恩怨情仇(一)-成为PaaS前浪的Cloud Foundry 第二章:Dock ...

  9. prometheus k8s服务发现

    Prometheus的服务发现在解决什么问题? 被监控的目标(target)是整个监控体系中重要组成部分,传统监控系统zabbix通过 网络发现的机制自动创建主机到zabbix-server,进而快速 ...

随机推荐

  1. ES8新特性——ES8 was Released and here are its Main New Features

    原文: https://hackernoon.com/es8-was-released-and-here-are-its-main-new-features-ee9c394adf66 -------- ...

  2. eclipse中的项目鼠标右键卡死

    1.错误描写叙述 在eclipse中部署了Java Web项目,想在WebContent目录下新建一个目录,鼠标右键时出现eclipse卡死的想象 2.错误原因 (1)插件安装过多 (2)导入的项目过 ...

  3. 手机wap适配

    <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scal ...

  4. Spring Boot中Starter是什么

    比如我们要在Spring Boot中引入Web MVC的支持时,我们通常会引入这个模块spring-boot-starter-web,而这个模块如果解压包出来会发现里面什么都没有,只定义了一些POM依 ...

  5. LintCode: Single Number II

    一篇解析比较详细的文章:http://www.acmerblog.com/leetcode-single-number-ii-5394.html C++ 解法(1) 求出每个比特位的数目,然后%3,如 ...

  6. TOJ 3365 ZOJ 3232 It's not Floyd Algorithm / 强连通分量

    It's not Floyd Algorithm 时间限制(普通/Java):1000MS/3000MS     运行内存限制:65536KByte   描述 When a directed grap ...

  7. VMware vSphere can virtualize itself + 64-bit nested guests

    Running VMware ESXi inside a virtual machine is a great way to experiment with different configurati ...

  8. Linux中查看磁盘容量

    一.命令 df -hl 二.效果 [root@cq-test-master ambari]# df -hl Filesystem Size Used Avail Use% Mounted on /de ...

  9. Python有关模块学习记录

    1 pandas numpy模块 首先安装搭建好jupyter notebook,运行成功后的截图如下: 安装使用步骤(PS:确定Python安装路径和安装路径里面Scripts文件夹路径已经配置到环 ...

  10. C# delegate (1)

    delegate是委托,本身不能解决跨线程访问控件的问题,直接调用委托还是会报错 Invoke指定用主线程中的控件去调用这个委托,相当于主线程来执行这个函数 在codeProject网站中找到的. C ...