一  服务的强大功能之处的其他表现

   前面介绍的所有有关服务的说明,都是将集群内部的pod应用暴露出来提供外部客户端或者内部的客户端进行访问,但是服务的强大之处远远不止于此

服务甚至可以将集群外部的应用暴露出来给内部pod来访问和应用

二 下面就来介绍服务是如何做到这一点的

  2.1  认识服务的endpoint

    首先需要了解的一点是,服务并不是直接连接pod,它们之间还有另外一种资源Endpoint

[root@node01 Chapter05]# k get ep kubia
NAME ENDPOINTS AGE
kubia 10.244.1.50:8080,10.244.2.45:8080,10.244.2.46:8080 3h33m

  申明一点:尽管服务的spec的里面注明了pod的标签,但是在重定向传入的时候,服务并不是直接去使用它,选择器的作用是用于构建IP和端口列表,然后存储在Endpoint的资源中,当客户端

连接到服务时,会选择一个其中对应一个IP和端口,并将传入连接重定向到该监听的服务器

  2.2  连接外部服务

    知道了2.1的内容的话,我们就可以更大胆的尝试了,例如创建不含选择器的服务和单独创建ep并将其相互关联,而endpoints的列表设置为外部的服务和端口,便可以让集群内部

  的pod通过服务来访问外部的服务了,下面分别展示svc的配置以及ep的配置

svc的配置

apiVersion: v1
kind: Service
metadata:
name: ex-svc
spec:
ports:
- port: 80

ep的配置

apiVersion: v1
kind: Endpoints
metadata:
name: ex-svc
subnets:
- address:
- ip: 33.33.33.33
- ip: 44.44.44.44
- ip: 55.55.55.55
ports:
- port: 80

需要注意的是如果单独的创建这2种资源的时候,需要通过它们的名称相同的情况下才能关联起来,并且在ep的配置里面需要添加服务的目标IP以及端口

综上所述: 服务可以通过修改选择器或者取消修改器并重定向到外部服务,使得集群内部的应用来访问外部的服务

  2.3 给外部服务创建别名

    除了手动创建配置endpoint之外的话,还有一种更简便方法就是通过FQDN(完全限制外部域名)的方式进行访问

  下面来创建这个服务的配置来用以说明

  

apiVersion: v1
kind: Service
metadata:
name: EX-service
spec:
type: ExternalName
externalName: www.baidu.com
ports:
- port: 80

画横线的部分应当替换为实际可以访问的外部域名

此般配置之后pod就可以通过EX-service.default.svc.cluster.local甚至是(EX-service)来访问服务

最新文章

  1. centos 7.0 firewall 防火墙常用命令
  2. Oozie_示例
  3. MFC分类
  4. 基于IHttpAsyncHandler的实时大文件传送器
  5. 压力测试工具:tsung
  6. HDU 4282 A very hard mathematic problem 二分
  7. 好记心不如烂笔头之JQuery学习,第四章
  8. 【Java】详解Java解析XML的四种方法
  9. 共享IP云主机(VPS)玩转wdcp
  10. title:EL表达式获取Map里面的数值失败的问题
  11. Eclipse开启与关闭代码自动提示功能
  12. HUST 1569(Burnside定理+容斥+数位dp+矩阵快速幂)
  13. 201521123101 《Java程序设计》第12周学习总结
  14. List常用整理
  15. CTF比赛 十一月场 Look 复现
  16. 第六节:反射(几种写法、好处和弊端、利用反射实现IOC)
  17. AutoCAD设置透明度后不起效果
  18. PHP5 的五种常用模式
  19. react项目中使用antd
  20. spring boot 使用静态资源

热门文章

  1. Django Uwsgi Nginx 部署
  2. SpringBoot2.x集成Quartz实现定时任务管理(持久化到数据库)
  3. 死磕以太坊源码分析之Ethash共识算法
  4. 个人微信公众号搭建Python实现 -个人公众号搭建-被动回复消息建模(14.3.2)
  5. RabbitMQ史上最全文章
  6. python 实现数值积分与画图
  7. ES6语法:class类,从了解到使用
  8. [leetcode]168. Excel Sheet Column Title表格列名编码(十进制和多进制相互转换)
  9. JDBC访问数据库的基本步骤是什么?
  10. java连接mongodb数据库