k8s部署-20-k8s的服务发现原理,k8s有几种服务发现规则
到现在为止,我们分别掌握了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有几种服务发现规则相关推荐
- Android系统从驱动到上层服务再到应用的两种服务架构方式
Android系统从驱动到上层服务再到应用的两种服务架构方式 1)使用类似sensor service的方式: 此方式用于,service的接口不想暴露给上层activity直接使用的情形 例如sen ...
- k8s部署tomcat及web应用_k8s介绍 k8s搭建一个应用(mysql+tomcat)
k8s介绍 k8s搭建一个应用(mysql+tomcat) kubetnetes介绍 官网 https://kubernetes.io/ Kubernetes也就是k8s Kubernetes是一个开 ...
- 11服务方式:gRPC的四种服务方式
今天这篇文章一看标题就比较特别,因为gRPC本身就是分布式微服务常用的一种通信方式,而我们又要探讨gRPC是如何进行通信的,那就是从源码层面来研究下gRPC服务端与客户端之间更为具体的通信方式,作为业 ...
- k8s部署微服务组件eureka
本文是在CentOS7环境上,搭建微服务集群系统简单样例. 架构描述: k8s集群:2台master node,1台slave node,均安装maven.docker.k8s环境:k8s集群系统用来 ...
- 高可用集群篇(五)-- K8S部署微服务
高可用集群篇(五)-- K8S部署微服务 一.K8S有状态服务 1.1 什么是有状态服务 1.2 k8s部署MySQL 1.2.1 创建MySQL主从服务 1.2.2 测试主从配置 1.2.3 k8s ...
- 【博客496】k8s dns解析与服务发现原理
k8s dns解析 集群内域名解析原理 Kubernetes 集群节点上 kubelet 有--cluster-dns=${dns-service-ip} 和 --cluster-domain=${d ...
- dubbo k8s 服务发现_将Dubbo微服务迁移到k8s集群环境中前的思考与落地
将Dubbo微服务迁移到k8s中的思考与落地 说到容器化,不得不提kubernetes这个集群编排系统,它是一个开源系统,用于容器化应用的自动部署.扩缩和管理. Kubernetes 将构成应用的容器 ...
- 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 ...
- 微服务探索之路03篇-docker私有仓库Harbor搭建+Kubernetes(k8s)部署私有仓库的镜像
目录: 微服务探索之路01篇.net6.0项目本地win10系统docker到服务器liunx系统docker的贯通 微服务探索之路02篇liunx ubuntu服务器部署k8s(kubernetes ...
最新文章
- 在Asp.Net MVC中设定site路径所对应的默认action
- 将 iPhone 定位设置在法国,手机速度就能迅速提升?
- CentOS6.5下Redis安装与配置
- CentOS7 编译安装 gcc/c++ 9.1
- 人工智能:第八章 自动规划
- 360安全卫士核心改名ZhuDongFangYu.exe
- UVA - 1587 Box
- LPTHW 笨办法学python 37章 python关键字/关键词介绍
- JAVA对list集合进行排序Collections.sort()
- cshop是什么开发语言_国内程序员那么多,为什么不开发一个属于自己的编程语言?...
- 高通人工智能应用创新大赛收官!9大奖项花落谁家?
- java类的加载,链接,初始化
- 《DirectX 游戏开发终极指南》游戏项目编译成功的方法
- 如何开发Linux内核?
- [黑科技] 使用Word和Excel自制题库自判断答题系统
- 无条件呼叫前转接已启用
- TCGA数据库的利用(三)——基因注释!
- js 封装cookie
- 杂项-职位-软件测试工程师:软件测试工程师
- Android 百度地图获取定位信息并实时传给后台