1 endpoint

1.1 endpoint介绍

  服务和pod不是直接连接,而是通过Endpoint资源进行连通。endpoint资源是暴露一个服务的ip地址和port的列表。
  选择器用于构建ip和port列表,然后存储在endpoint资源中。当客户端连接到服务时,服务代理选择这些列表中的ip和port对中的一个,并将传入连接重定向到在该位置监听的服务器。
  endpoint是一个单独的资源并不是服务的属性,endpoint的名称必须和服务的名称相匹配

1.2 endpoint使用

1.2.1 创建

  为没有选择器的服务创建endpoint资源:
$ kubectl create -f endpoint.yml
  endpoint对象需要与服务相同的名称,并包含该服务的目标ip和port列表,服务和endpoint资源都发布到服务器后,这样服务就可以像具有pod选择器那样的服务正常使用。

by k8s in action

1.2.2 查看

查看服务的Endpoint
$ kubectl describe svc service_name
通过kubectl describe可以看到Endpoints字段。

查看endpoints信息
$ kubectl get endpoints endpoint_name

by k8s in action

1.3 连接集群外部服务

1.3.1 通过endpoint配置外部服务

  将pod关联到外部具有两个endpoint的服务上。

by k8s in action

1.3.2 创建ExternalName类型的服务

  除了手动配置服务的endpoint来代替公开外部服务方法,还可以通过完全限定域名(FQDN)访问外部服务——创建ExternalName类型的服务。

by k8s in action

ExternalName类型的服务创建后,pod可以通过external-service.default.svc.cluster.local域名连接到外部服务,或者通过externale-service。当需要指向其他外部服务时,只需要修改spec.externalName的值即可。

2 外部访问服务

2.1 介绍

  问题:外部客户端如何访问集群内服务或者说集群如何向外部公开某些服务呢?
  答案:3种方式:
1)将服务的类型设置为NodePort:每个集群接节点都会在节点上打开一个端口,对于NodePort服务,每个集群节点在节点本身打开一个端口,这也是为何叫NodePort的原因所在,把将在该端口上接收到的流量重定向到基础服务。该服务仅在内部集群ip和port上才可以方阿文,也可以通过所有节点上的专用port访问。
2)将服务的类型设置为LoadBalance:这是NodePort的一种扩展,服务可以通过一个专用的负载均衡器来访问。负载均衡器将流量重定向到跨所有节点的节点端口,客户端通过负载均衡器的ip连接到服务。
3)创建一个Ingress资源:通过一个ip地址公开多个服务,运行在HTTP层(网络协议的第7层),提供的功能比第4层多。

参考《k8s in action》

Kubernetes-服务连接和暴露(endpoints)(二十)相关推荐

  1. (二十四)优秀员工 - 5

    处理与幸福之家大行客服组和各礼品供应商有关的数据问题,便成了钱三日常工作的主要内容.由于类似的问题处理多了,便成了重复而熟悉的操作,钱三的工作也变得更简单和容易,同时也开始变得有些了无趣味. 在一次下 ...

  2. 使用Minikube部署本地Kubernetes集群(二十九)

    前言 使用Minikube部署本地k8s集群相对比较简单,非常推荐将其用于本地k8s开发环境,唯一麻烦点的仅仅是网络问题. 在本篇教程中,我们使用了国内的镜像来完成本地k8s集群的搭建.如果搭建过程中 ...

  3. WCF技术剖析之二十九:换种不同的方式调用WCF服务[提供源代码下载]

    原文:WCF技术剖析之二十九:换种不同的方式调用WCF服务[提供源代码下载] 我们有两种典型的WCF调用方式:通过SvcUtil.exe(或者添加Web引用)导入发布的服务元数据生成服务代理相关的代码 ...

  4. Shell脚本学习-阶段二十六-Web服务与端口

    文章目录-Shell阶段二十六-端口与服务对照表 前言 端口与Web服务对照表 简介 前言 端口与Web服务对照表 2端口:管理实用程序 3端口:压缩进程 5端口:远程作业登录 7端口:回显 9端口: ...

  5. Kubernetes之(二十)Helm程序包管理器

    目录 Kubernetes之(二十)Helm程序包管理器 概念 部署Helm 下载helm 部署Tiller helm的使用 chart 目录结构 chart模板 定制安装 MySQL chart c ...

  6. VMware vSphere 服务器虚拟化之二十五 桌面虚拟化之终端服务池

    VMware vSphere 服务器虚拟化之二十五 桌面虚拟化之终端服务池 终端服务池是指由一台或多台微软终端服务器提供服务的桌面源组成的池.终端服务器桌面源可交付多个桌面.它具有以下特征: 1.终端 ...

  7. Kubernetes 系列(三):Kubernetes使用Traefik Ingress暴露服务

    一.Kubernetes 服务暴露介绍 从 kubernetes 1.2 版本开始,kubernetes提供了 Ingress 对象来实现对外暴露服务:到目前为止 kubernetes 总共有三种暴露 ...

  8. SAP UI5 初学者教程之二十六 - OData 服务配合 Mock 服务器的使用步骤详解试读版

    一套适合 SAP UI5 初学者循序渐进的学习教程 教程目录 SAP UI5 本地开发环境的搭建 SAP UI5 初学者教程之一:Hello World SAP UI5 初学者教程之二:SAP UI5 ...

  9. SAP UI5 应用开发教程之二十六 - OData 服务配合 Mock 服务器的使用步骤详解

    从本教程 24 步骤开始,我们接触了 OData 模型.本地学习 SAP UI5 应用开发时,如果直接消费远端的 OData 服务,就会遇到跨域错误. 步骤 24 SAP UI5 初学者教程之二十四 ...

  10. 搭建大型分布式服务(二十五)如何将应用部署到TKE容器集群?

    系列文章目录 文章目录 系列文章目录 前言 一.本文要点 二.开发环境 三.部署容器服务 1.制作Nginx镜像,用来打包前端web服务. 2.创建工作负载,用来运行前端web服务. 3.配置serv ...

最新文章

  1. ROS发行版列表完整版
  2. 深入理解 Neutron -- OpenStack 网络实现(2):VLAN 模式
  3. 详解数据库引擎与SQL语句增删改查(非常详细,带例)
  4. oracle和dba,oracle db、dba和rdba
  5. 20.毛玻璃效果blur
  6. MybatisPlus实现自动填充
  7. javascript 触发事件列表
  8. [译】Redux入门教程(一)
  9. http抓包实战 pdf_网络协议HTTP 协议(抓包实战和网络分层)
  10. “Chrome不能访问更新服务器(错误:3)”的解决方法
  11. pycharm写python代码_使用pycharm写python代码的一些提高效率的技巧(持续更新)-Go语言中文社区...
  12. LeetCode-147:对链表进行插入排序
  13. t-sql查询where in_产品操作MySQL第7篇 – 运算符 - IN
  14. 镜头对摄像机性能的影响
  15. python爬虫数据提取_入门Python爬虫——提取数据篇
  16. Mac打包生成加密dmg
  17. QML类型:Window
  18. 记录习惯【Unity 3D中3D场景下嵌套2D Canvas并实现窗口缩放】
  19. java char取值范围是_Java 基本数据类型取值范围讲解
  20. windows用运行命令启动程序

热门文章

  1. linux 内核设备管理模型sysfs(入门篇)
  2. Anaconda下如何创建python2等虚拟环境
  3. webstorm目录定位(自动定位)当前编辑的文件 - 设置篇
  4. elementUI多选框组件:多选数组,取值问题
  5. wordpress模板-响应式博客主题模板-Repay主题开源版
  6. ThinkPHP内核仿美洽多商户多端接入无限客服系统-支持PC+WAP+公众号接入
  7. wireshark 十六进制过滤_Wireshark过滤表达式大全
  8. java xml amp_Javaamp;Xml教程(十一)JAXB实现XML与Java对象转换
  9. mall-applet小程序项目是一套电商系统
  10. 三分钟撸完前后端crypto-js加解密,你学废了吗?