到现在为止,我们分别掌握了k8s部署、k8s镜像存储之harbor高可用,那么接下来是不是就应该实操了呢?不过不着急,实操之前我们要考虑下,还需要掌握什么呢?

是不是通信呀,这所有的前提都是在可以通信的情况下进行的,彼此之间如何通信,通信的方式是什么,本文就来介绍下。

情形

我们集群的通信方式,根据不同的条件,可以分为以下三种方式:

1、集群内相互通信;

2、集群内访问集群外;

3、集群外访问集群内。

本文就按照这三种场景,每种场景分别使用不同的方法,在实际情况中根据需要来选择。

集群内相互通信

1、DNS+ClustreIP

图释:

如果podA访问podB,由于pod的IP是会经常发生变化的,所以不能直接配置podB的IP地址,所以k8s提出了一个概念为service,它包含了一个clusterIP,也就是图中的10.1.1.1,那么这样子是不是就可以了呢?显然还是不太好,因为我们配置IP地址也很麻烦,这个时候service又提供了一个dns,可以理解为别名,这样我们直接配置dns就好了。

2、headless(去中心化)

图释:

我们在部署整个架构的时候,是不是经常会遇到一些去中心化的服务,比如zookeeper服务,本意是为了保证高可用的,但是这样子就面临一个问题,我们应该访问谁呢?这时候k8s就提出了一个概念,hadeless类型的service,这个服务的作用是什么呢,你可以理解为透传,就是当PodA访问这PodB的时候,他就会给你返回一个列表,podA自己做选择访问谁。

集群内访问集群外

1、Ip+Port

图释:

集群内的PodA直接通过IP和port地址,访问集群外的数据库就行。

2、endprint

图释:

如果有100个服务要访问外部的mysql呢?难道我们配置100次吗?万一哪天mysql的IP地址变了,我们怎么办呢?这个时候就引入了一个endpring。使用endprint来做代理,它有一个和它同名的service,再往上面呢,它还有一个DNS,以供内部使用,我们的endpring上面配置上外部服务的地址。

这个有什么好处呢?好处就是内部的服务访问的地址不会变,有变化的仅仅是endpring,有问题的时候我们只需要修改endpring即可立刻恢复服务。

集群外访问集群内

剩余内容请转至VX公众号 “运维家” ,回复 “127” 查看。

k8s部署-20-k8s的服务发现原理,k8s有几种服务发现规则相关推荐

  1. Android系统从驱动到上层服务再到应用的两种服务架构方式

    Android系统从驱动到上层服务再到应用的两种服务架构方式 1)使用类似sensor service的方式: 此方式用于,service的接口不想暴露给上层activity直接使用的情形 例如sen ...

  2. k8s部署tomcat及web应用_k8s介绍 k8s搭建一个应用(mysql+tomcat)

    k8s介绍 k8s搭建一个应用(mysql+tomcat) kubetnetes介绍 官网 https://kubernetes.io/ Kubernetes也就是k8s Kubernetes是一个开 ...

  3. 11服务方式:gRPC的四种服务方式

    今天这篇文章一看标题就比较特别,因为gRPC本身就是分布式微服务常用的一种通信方式,而我们又要探讨gRPC是如何进行通信的,那就是从源码层面来研究下gRPC服务端与客户端之间更为具体的通信方式,作为业 ...

  4. k8s部署微服务组件eureka

    本文是在CentOS7环境上,搭建微服务集群系统简单样例. 架构描述: k8s集群:2台master node,1台slave node,均安装maven.docker.k8s环境:k8s集群系统用来 ...

  5. 高可用集群篇(五)-- K8S部署微服务

    高可用集群篇(五)-- K8S部署微服务 一.K8S有状态服务 1.1 什么是有状态服务 1.2 k8s部署MySQL 1.2.1 创建MySQL主从服务 1.2.2 测试主从配置 1.2.3 k8s ...

  6. 【博客496】k8s dns解析与服务发现原理

    k8s dns解析 集群内域名解析原理 Kubernetes 集群节点上 kubelet 有--cluster-dns=${dns-service-ip} 和 --cluster-domain=${d ...

  7. dubbo k8s 服务发现_将Dubbo微服务迁移到k8s集群环境中前的思考与落地

    将Dubbo微服务迁移到k8s中的思考与落地 说到容器化,不得不提kubernetes这个集群编排系统,它是一个开源系统,用于容器化应用的自动部署.扩缩和管理. Kubernetes 将构成应用的容器 ...

  8. Kubernetes K8S 1.20部署Ingress nginx 0.30

    主机配置规划 服务器名称(hostname) 系统版本 配置 内网IP 外网IP(模拟) k8s-master CentOS7.7 2C/4G/20G 172.16.1.110 10.0.0.110 ...

  9. 微服务探索之路03篇-docker私有仓库Harbor搭建+Kubernetes(k8s)部署私有仓库的镜像

    目录: 微服务探索之路01篇.net6.0项目本地win10系统docker到服务器liunx系统docker的贯通 微服务探索之路02篇liunx ubuntu服务器部署k8s(kubernetes ...

最新文章

  1. 在Asp.Net MVC中设定site路径所对应的默认action
  2. 将 iPhone 定位设置在法国,手机速度就能迅速提升?
  3. CentOS6.5下Redis安装与配置
  4. CentOS7 编译安装 gcc/c++ 9.1
  5. 人工智能:第八章 自动规划
  6. 360安全卫士核心改名ZhuDongFangYu.exe
  7. UVA - 1587 Box
  8. LPTHW 笨办法学python 37章 python关键字/关键词介绍
  9. JAVA对list集合进行排序Collections.sort()
  10. cshop是什么开发语言_国内程序员那么多,为什么不开发一个属于自己的编程语言?...
  11. 高通人工智能应用创新大赛收官!9大奖项花落谁家?
  12. java类的加载,链接,初始化
  13. 《DirectX 游戏开发终极指南》游戏项目编译成功的方法
  14. 如何开发Linux内核?
  15. [黑科技] 使用Word和Excel自制题库自判断答题系统
  16. 无条件呼叫前转接已启用
  17. TCGA数据库的利用(三)——基因注释!
  18. js 封装cookie
  19. 杂项-职位-软件测试工程师:软件测试工程师
  20. Android 百度地图获取定位信息并实时传给后台

热门文章

  1. win7安装tensorflow-gpu版(Anaconda)
  2. 流量卡之家:中国5G手机或提前进入价格战 新机不足四千元
  3. surface无法连接airpords的解决方法
  4. 【愚公系列】2022年08月 微信小程序项目篇-抽奖轮盘
  5. linux针对端口进行抓包,tcpdump抓包使用详解
  6. 使用JAVA开发高并发网站
  7. Python打包分发
  8. Mac 小记 — 杂录
  9. 实验五_简单游戏编程
  10. Mac笔记本电脑电池状态该如何查看,教程来了