快速了解Kubernetes微服务中的通信
by Adam Henson
亚当·汉森(Adam Henson)
快速了解Kubernetes微服务中的通信 (A quick look at communication in Kubernetes microservices)
“服务”概念和一个Node.js示例 (The “service” concept and a Node.js example)
Based on complexity, a layer of microservices can require a variety of communication. Kubernetes provides a rich set of features in managing services, load balancing, and networking.
基于复杂性,微服务层可能需要各种通信。 Kubernetes在管理服务,负载平衡和网络方面提供了丰富的功能。
This post is intended to provide a simple example. For an in-depth overview — see the official documentation about Services.
这篇文章旨在提供一个简单的示例。 有关深入的概述,请参阅有关服务的官方文档 。
服务 (Services)
A Kubernetes
Service
is an abstraction which defines a logical set ofPods
and a policy by which to access them - sometimes called a micro-service. ~ Kubernetes Docs甲Kubernetes
Service
是定义的一组逻辑的抽象Pods
和通过该访问它们的策略-有时被称为微服务。 〜Kubernetes文件
As documented, we have a number of options in exposing and communicating with services. Let’s take a look at Kubernetes DNS. Details about DNS naming can be found here.
如记录所示,在服务公开和通信方面,我们有许多选择。 让我们看一下Kubernetes DNS。 有关DNS命名的详细信息,请参见此处 。
一个简单的例子 (A Simple Example)
Consider a set of microservices that need to communicate with each other through the HTTP protocol. As an example, let’s say we need to create a cron job to ping a health check endpoint from another pod and log the response status code.
考虑一组需要通过HTTP协议相互通信的微服务。 举例来说,假设我们需要创建一个cron作业,以从另一个Pod ping健康检查端点并记录响应状态代码。
We have a Node.js Express app.
我们有一个Node.js Express应用程序。
Fair enough, this app can receive HTTP GET requests to “/healthcheck” and respond with JSON.
公平地说,此应用程序可以接收HTTP GET请求以“ / healthcheck”并以JSON进行响应。
Okay, now let’s create a little cron job app to execute requests to this endpoint at 8:00am every day.
好的,现在让我们创建一个小型cron作业应用程序,以每天8:00 AM执行对此端点的请求。
Very good, very good… nothing out of the ordinary here. Well, wait a minute — let’s take a closer look at the line below which defines the endpoint to fetch.
很好,很好...这里没有什么与众不同的。 好吧,请稍等一下-让我们仔细看看下面的行,该行定义了要提取的端点。
const apiUrl = 'http://api:3000/healthcheck';
In utilizing Kubernetes DNS, communicating with other pods is that simple! Our service configuration for our first app above (the Express app) could be as simple as the below.
在利用Kubernetes DNS时,与其他Pod进行通信就这么简单! 我们上面第一个应用程序(Express应用程序)的服务配置可以像下面这样简单。
Our cron app could look very similar to the above. Configuring pods is out of scope of this post, but you can read about how you could do so utilizing Deployments.
我们的cron应用看起来可能与上面的非常相似。 配置pod超出了本文的范围,但是您可以阅读有关如何使用Deployments进行配置的信息 。
结论 (Conclusion)
Kubernetes offers a plethora of features and documentation supporting various means of communication internally and exposure to the outside world. We can get significant mileage simply from DNS.
Kubernetes提供了许多功能和文档,支持内部的各种通信方式以及与外界的接触。 我们可以简单地从DNS中获得可观的里程。
翻译自: https://www.freecodecamp.org/news/communication-in-kubernetes-microservices-bf0a2af06551/
相关文章:

连接 linux服务器
操作步骤: xshell 下载 https://xshell.en.softonic.com/ 点击下载后,会有邮箱验证,点击验证通过就会自动下载,然后安装就行。 打开工具,点击新建会话 然后 浏览文件后直接点击确认,出来这样就登录成功了…

【bzoj3924】[Zjoi2015]幻想乡战略游戏 动态点分治
题目描述 傲娇少女幽香正在玩一个非常有趣的战略类游戏,本来这个游戏的地图其实还不算太大,幽香还能管得过来,但是不知道为什么现在的网游厂商把游戏的地图越做越大,以至于幽香一眼根本看不过来,更别说和别人打仗了。 …

面试题05-UI控件
怎么解决缓存池满的问题(cell)ios中不存在缓存池满的情况,因为通常我们ios中开发,对象都是在需要的时候才会创建,有种常用的说话叫做懒加载,还有在UITableView中一般只会创建刚开始出现在屏幕中的cell,之后都是从缓存池…

全球链界科技发展大会_如何成为科技界的团队合作者
全球链界科技发展大会by Ofer Vugman由Ofer Vugman 如何成为科技界的团队合作者 (How to be a team player in the tech world) 这些技巧将增进您的关系并提高团队的工作效率 (These tips will boost your relationships and your team’s efficiency at work) When I landed …

linux驱动之i2c子系统mpu6050设备驱动
以下是mpu6050简单的驱动实现,mpu6050是I2C接口的6轴传感器,可以作为字符设备注册到内核,本代码运行环境是3.4.2内核,4.3.2版本的编译链,12.04版本的Ubuntu,硬件环境是jz2440开发板; 按照之前分…

小程序使用富文本完整代码及示例图
先看示例图: 富文本html代码: 效果图: 实现步骤: 1.下载 wxParse代码放到你的小程序项目目录里面 https://github.com/icindy/wxParse 基本使用方法 Copy文件夹wxParse - wxParse/-wxParse.js(必须存在)-html2json.js(必须存在…

C# 百分比的获取
这里介绍 C# 百分比转换有2种方式 例: double a50; double b100; a/b.ToString("0.00%"); 或 a/b.ToString("P3"); p后的数字表示能显示小数点后几位的精度数 实际如: 方法一:a/b.ToString("0.00%"); 方法二&a…

css 网格布局_我从CSS网格布局中学到的东西
css 网格布局by Jennifer Wjertzoch珍妮弗维佐奇 我从CSS网格布局中学到的东西 (Things I’ve learned about CSS grid layout) With CSS Grid you can create complex web designs. It is very intuitive and very well supported by the major browsers. In this article I …
GoF23种设计模式之行为型模式之解释器模式
一、概述 给定一种语言和其文法的一种表示,再定义一个解释器,该解释器使用表示来解释语言中的句子。 二、适用性 当需要解释一种语言,并且可以将该语言中的句子表示为一个抽象语法树的时候。 1.该文法简单对于复杂的文法&…

U盘安装Ubuntu14.4时遇到分区问题记录
1、在安装Ubuntu14.4时,遇到如果先分出 / 跟挂载的主分区时,后面只能再分一个swap,或者挂载一个/home,或者一个/ boot 时不能继续分区,当然想安装也是不能不能成功的。 解决办法:在这里先不要创建 / 的主挂…

请求异步js,请求完成后执行代码
要确定请求完成 js 文件,才执行相关的代码。 场景,引用了百度地图的 js-sdk, 需要实例化 SDK 对象,但是这个引用加载JS-SDK文件其实是异步的,在没请求完成之前就实例化对象就会报错,提示找不到该对象。 解…

测试驱动开发 测试前移_测试驱动开发简介
测试驱动开发 测试前移I’ve been programming for five years and, honestly, I have avoided test-driven development. I haven’t avoided it because I didn’t think it was important. In fact, it seemed very important–but rather because I was too comfortable no…

BZOJ 2957楼房重建
传送门 线段树 //Twenty #include<cstdio> #include<cstdlib> #include<iostream> #include<algorithm> #include<cmath> #include<cstring> #include<queue> #include<vector> #define lc x<<1 #define rc x<<1|…

AngularJs $cacheFactory 缓存服务
可能之前的api写的有些枯燥吧,因为不烧脑,不需要很多逻辑思维来做处理,那么之后的文章会有趣很多,慢慢的开始烧脑了,准备好大量脑细胞的死亡吧~ 先来篇简单的缓存服务。 本文将api文档里的$cacheFactory和 $cacheFac…

H5使用百度地图SDK获取用户当前位置并且标记显示在地图
代码实现功能: H5使用百度地图SDK获取用户当前位置并且标记显示在地图,点击该标记弹出一层自定义的HTML。 效果图: 代码: <!DOCTYPE html> <html><head><meta http-equiv"Content-Type" conten…

clojurescript_为什么ClojureScript在NPM上如此出色
clojurescriptby Jacek Schae由Jacek Schae 为什么ClojureScript在NPM上如此出色 (Why ClojureScript works so well with NPM) Every language that complies/transpiles to JavaScript wants to connect to npm to use this huge ecosystem. The master of this is, of cour…

微信网页开发 jssdk前后端代码,PHP实现完整代码,自定义分享
如果你页面启用了https,务必引入 https😕/res.wx.qq.com/open/js/jweixin-1.0.0.js ,否则将无法在iOS9.0以上系统中成功使用JSSDK 微信网页JS-SDK的功能实现,后端php,完整源码。分享内容自定义。 jsapi_ticket &…

delphi自定义事件处理
http://www.cnblogs.com/ywangzi/archive/2012/09/06/2673414.html delphi自定义事件处理 为什么我们点击按钮,就会执行按钮的onclick事件?这个事件是怎么和我们自己的代码关联起来的。相信很多人都有这个疑问。那么我们就通过一个自定义事件来了解这里面…

textarea输入框限制字数(JS)
第一种: <textarea οnkeyup"checkLen(this)"></textarea> <div>您还可以输入 <span id"count">200</span> 个文字</div> <script type"text/javascript"> function checkLen(obj) { var maxCha…

域名管理系统 二级域名_域名系统简介
域名管理系统 二级域名by Sumedh Nimkarde由Sumedh Nimkarde 域名系统简介 (An introduction to the Domain Name System) You all might have heard about or know about the Domain Name System (DNS) if you understand how the internet works or how computer networks w…

redis面试总结
(1)什么是redis? Redis 是一个基于内存的高性能key-value数据库。 (2)Reids的特点 Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通…

struts2 实现自定义标签
/*** lostingz* Created on 2015年11月18日*/ package com.test.web.tags;import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;import org.apache.struts2.components.Component; import org.apache.struts2.views.jsp.ComponentTa…

php修改多个字段
1.直接修改 2.按条件修改 1.代码: <?phpheader("Content-Type:text/html;charsetutf8"); header("Access-Control-Allow-Origin: *"); //解决跨域header(Access-Control-Allow-Methods:GET);// 响应类型 header(Access-Control-Allow-H…

备忘录吕吕没有备忘录十新建_一份备忘单,可帮助您记住CSS自定义属性
备忘录吕吕没有备忘录十新建CSS custom properties, also known as CSS variables, represent custom properties that can be declared and be called in your CSS.CSS定制属性,也称为CSS变量,表示可以在CSS中声明和调用的定制属性。 在CSS中声明自定义…

Oracle数据库一些操作信息
Oracle数据库如何查看当前用户角色权限及默认表空间查看当前用户的一些信息,包括用户拥有的角色权限信息、用户表空间以及用户和默认表空间的关系等--查看用户的角色权限1、查看当前用户拥有的角色权限信息:select * from role_sys_privs; 2、查看所有用…
Eclipse用法和技巧十:显示代码outline
在一个文件中快速找到某一个方法或者某一个作用域,可以使用 CtrlO或者CtrlF3,快速显示当前代码的outline,进行快速查找。效果如下: 这里主要是补充一些后续操作,能更加方便的帮助我们查找。 步骤一:再…

上传文件到服务器指定目录,文件名相同自动替换PHP实现代码
效果图: html代码: <!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>菜鸟教程(runoob.com)</title> </head> <body><form action"https://xxx.wang/xxx/upload.php&qu…

ssh框架实现数据库_自顶向下介绍SSH及其如何实现安全的数据共享
ssh框架实现数据库by Sam Ollason通过萨姆奥拉森(Sam Ollason) This article will take a high-level and top-down approach to explain how SSH works and how it is used for securely communicating with remote computers.本文将采用一种自上而下的高级方法来解释SSH的工…

UITableView
表格视图 目录 表格视图的功能和介绍表格视图的基本使用显示分组数据单元格的构成和基本定制常用事件处理添加头部视图和尾部视图设置段头和段尾表格视图的编辑(难点)表格视图的索引表格的分割线表格视图的搜索表格视图控制器表格视图的功能和介绍 表格视图的功能:如上图所示,t…

js 跨页面的全局变量
定义全局变量的js: a.js 1 function GlobalConfig(){ 2 3 } 4 GlobalConfig.IPSSAddress"http://localhost/index/"; 5 (function(){ 6 7 })(); View Code页面index.html里需要引用a.js 页面index.html自己的js: b.js $scope.URL GlobalCon…