kubernets之服务重定向
一 服务的强大功能之处的其他表现
前面介绍的所有有关服务的说明,都是将集群内部的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)来访问服务
最新文章
- centos 7.0 firewall 防火墙常用命令
- Oozie_示例
- MFC分类
- 基于IHttpAsyncHandler的实时大文件传送器
- 压力测试工具:tsung
- HDU 4282 A very hard mathematic problem 二分
- 好记心不如烂笔头之JQuery学习,第四章
- 【Java】详解Java解析XML的四种方法
- 共享IP云主机(VPS)玩转wdcp
- title:EL表达式获取Map里面的数值失败的问题
- Eclipse开启与关闭代码自动提示功能
- HUST 1569(Burnside定理+容斥+数位dp+矩阵快速幂)
- 201521123101 《Java程序设计》第12周学习总结
- List常用整理
- CTF比赛 十一月场 Look 复现
- 第六节:反射(几种写法、好处和弊端、利用反射实现IOC)
- AutoCAD设置透明度后不起效果
- PHP5 的五种常用模式
- react项目中使用antd
- spring boot 使用静态资源
热门文章
- Django Uwsgi Nginx 部署
- SpringBoot2.x集成Quartz实现定时任务管理(持久化到数据库)
- 死磕以太坊源码分析之Ethash共识算法
- 个人微信公众号搭建Python实现 -个人公众号搭建-被动回复消息建模(14.3.2)
- RabbitMQ史上最全文章
- python 实现数值积分与画图
- ES6语法:class类,从了解到使用
- [leetcode]168. Excel Sheet Column Title表格列名编码(十进制和多进制相互转换)
- JDBC访问数据库的基本步骤是什么?
- java连接mongodb数据库