Kubernetes生产实践系列之二十一:ServiceMesh之通过ambassador对Kubernetes外部的gRPC服务进行负载均衡

Go Grpc部署到 k8s【负载均衡】 网上关于grpc的服务发现和负载均衡很多是是用consul,我这里尝试用nacos来做试验吧,关于grpc的负载均衡 网上有很多说的 head less 【修改 Service 的 spec.clusterIP 为 ”None“】, 当然还有nginx-ingress-controller ,我实验过 都不怎么理想 索性自己从零开始. 项目结构如下: nacos 里面的nacos.go 如下: package nacos import ( "net" "github.com/naco. 阅读详情

一、前言

ambassador除了可以对Kubernetes上的gRPC服务进行负载均衡,还可以对外部gRPC服务进行负载均衡。这其中关键的一步是将外部gRPC服务注册为Kubernetes的service。

转载自https://blog.youkuaiyun.com/cloudvtech

 

二、部署外部服务并注册到Kubernetes

2.1 部署外部服务

将文章《Kubernetes生产实践系列之十九:使用Ingress Nginx暴露Kubernetes上的gRPC服务》里面的grpc_server服务分别部署在172.3.0.11(k8s-master-03.novalocal)和172.3.0.17(k8s-master-02.novalocal)两个机器上

2.2 将外部服务部署到Kubernetes

external-grpcserver.yaml

apiVersion: v1
kind: Service
metadata:
  name: external-grpc
spec:
  ports:
  - port: 50051
    targetPort: 50051
    protocol: TCP
---
apiVersion: v1
kind: Endpoints
metadata:
  name: external-grpc
subsets:
  - addresses:
    - ip: 172.3.0.11
    - ip: 172.3.0.17
    ports:
    - port: 50051
      protocol: TCP

部署结果:

转载自https://blog.youkuaiyun.com/cloudvtech

三、通过ambassador暴露gRPC服务

3.1 配置ambassador服务发现和负载均衡

相较于基于etcd的客户端服务发现和负载均衡方案,类似于Ingress Nginx和ambassador的方案做到了负载均衡器所要达到的两大效果:

  • 后端服务的发现和状态维护

  • 负载均衡策略
  • gRPC的七层负载均衡

ambassador-external-grpc.yaml 

---
apiVersion: getambassador.io/v2
kind: KubernetesEndpointResolver
metadata:
  name: grpcserver-endpoint-resolver
---
apiVersion: getambassador.io/v2
kind: Mapping
metadata:
  name: external-grpcserver
spec:
  grpc: true
  prefix: /greet.GrpcService/
  rewrite: /greet.GrpcService/
  service: external-grpc.grpcserver:50051
  resolver: grpcserver-endpoint-resolver
  load_balancer:
    policy: round_robin

部署之后的ambassador控制面状态如下:

 

Ambassador Route Table:

 

Currently active Envoy Routes:

 Currently active Envoy Clusters:

 

YAML input documents — these are what Ambassador is currently reading for its configuration:

 

3.2 通过长连接访问服务

成功实现长连接负载均衡

3.3 通过短连接访问服务

占用了大量端口,gRPC服务被轮流访问到

转载自https://blog.youkuaiyun.com/cloudvtech

(秋招)vins中的光流法 那么下一层基于这个初值也会得到一个解,就这样进行迭代,直到达到金字塔的最底层,也即第0层,就是原始分辨率的那张图片,此时光流法就会给出一个速度值,这个值是比较可靠的(相比对原始图片直接使用光流法来说)。2.小运动,这个也必须满足,就是时间的变化不会引起位置的剧烈变化,这样灰度才能对位置求偏导(换句话说,小运动情况下我们才能用前后帧之间单位位置变化引起的灰度变化去近似灰度对位置的偏导数),这也是光流法不可或缺的假定。可以看到光流法是来估计物体运动的(估计的是物体运动的速度,根据速度再计算相对应的特征点)。 阅读详情

相关推荐

芯片设计流程中的def文件

在实际的DEF文件中,每个部分都包含了与实际设计相关的详细信息,这个模板只展示了每个部分的基本结构。在实际应用中,DEF文件通常由EDA(电子设计自动化)工具在完成布局(Placement)和布线(Routing)步骤后自动生成,在集成电路设计中,DEF(Design Exchange Format)文件的模板具体内容会依设计的复杂性和特定需求而变化。简而言之,LEF文件提供了单元的物理特性和规则,而DEF文件使用这些规则来确定单元。)文件描述了特定设计中所有物理元素的精确放置和连线信息。

qq_36045093的博客 4860

容器高级知识:Kubernetes 大使(Ambassador)模式详解

Kubernetes 大使模式涉及在单个 Pod 中将一个专用的 **代理容器** 与您的应用程序容器一起部署。该代理容器被称为“大使”,充当您的应用程序和外部客户端或服务之间的 **进程外** 中介。

surfirst的博客 870

在MATLAB产生正态(Gauss)分布随机数

在 MATLAB 中内置了有产生标准正态(Gauss)分布的随机数函数,使用方法如下: 其中 为产生矩阵的行数和列数, 为产生矩阵的个数,产生的矩阵中的每个元素均为服从 N(0,1)N(0, 1)N(0,1) 的标准正态分布的元素。使用如下命令产生一个 的服从的随机数矩阵: 绘制图像效果如下: 可以看到这里随机数服从 的标准正态分布。假设 X∼N(0,1)X\sim N(0,1)X∼N(0,1),则 3X+33X+33X+3 服从 N(3,9)N(3,9)N(3,9) 分布,因此我们要产生服从 N(

程序必须为人类阅读而编写,并且仅仅碰巧可以让机器执行 3万+

边缘控制平面Ambassador全解读

Ambassador是由Datawire开源的一个API网关项目,主要在Kubernetes的容器编排框架中使用。Ambassador本质上是一个通过配置边缘/API来管理Envoy数据面板的控制面板。而Envoy则是一个基于第7层协议的网络代理和通信总线,它是一个由Lyft开源的云原生服务,主要用于处理入口边缘以及内部服务之间的网络通信。今天Envoy正迅速成为现代网络事实上的代理,几乎所有的公...

啊啊啊啊2 2981

MaPLe: Multi-modal Prompt Learning

具体而言,我们在语言分支中附加可学习的上下文标记,并通过耦合函数显式地将视觉 Prompt 置于语言 Prompt 上,以建立它们之间的交互。使用 Prompt 来适应CLIP (语言或视觉) 的单个分支中的表示是次优的,因为它不允许在下游任务上动态调整两个表示空间的灵活性。由此,提出了一种分支感知的多模态 Prompt,通过在两种模态之间共享提示来协调 CLIP 的视觉和语言分支。在 Prompt Tuning 中,必须采取多模态方法获得同时适应 CLIP 的视觉和语言分支,以实现上下文优化的完整性。

weixin_48907099的博客 1051

Unity3d SECTR 2019 从零开始了解(零)

插件刚下载下来,虽然从Demo里面看了下大致效果,但尝试使用的时候茫无头绪,因此决定一边读文档一边写下笔记。这个笔记会从最基本的名词概述开始一步一步到用法。 除非特别注明,所有内容都不是机翻,而是理解后自己翻译的。 翻译内容: 【零】API REFERENCE MANUAL第一章Documentation Core Concept 【一】 名词概述 CORE CORE是SECTR的核心,一个快速将 Sectors 和 Portals 加入到Unity中的工具,以及完整的源代码,可以构筑独特的功能。 VI

狗蛋在土里瑟瑟发抖 1500

Ambassador系列-01-介绍、安装和使用

介绍 Ambassador是由Datawire公司开源的一个API网关项目,在Github上有2.3K star。 Ambassador当前(2019-12-11)的最新的版本是0.86.0,马上准备发布1.0.0版本,更新很频繁,而且主要在y版本更新,已经趋于成熟。 从0.50.0版本开始从apiVersion: getambassador.io/v0升级为apiVersion: getamba...

twingao的专栏 3888

【Arduino+ESP32专题】CP2102串口自动下载电路

CP2102串口自动下载电路原理是什么?

一点硬件 2955

Kubernetes生产实践系列之二十:ServiceMesh之通过ambassador对部署在Kubernetes的gRPC服务进行负载均衡

一、前言 转载自https://blog.youkuaiyun.com/cloudvtech

cloudvtech的博客 661

YOLOv12优化:原创自研 | 带有注意力机制的隐藏状态混合器的状态空间(HSM-SSD),实现暴力涨点 | CVPR2025 EfficientViM

可以将 带有注意力机制的隐藏状态混合器的状态空间(HSM-SSD)中的注意力机制换成专栏其他注意力机制 ,那么你就能实现独一无二的原创。

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 663

SST专题(2-4)MMC-SST 输入级的环流分析

本文分析了模块化多电平换流器(iMMC-SST)的输入级等效电路、子模块电容电压波动特性及环流抑制机理。研究表明:1)子模块电容电压波动包含基频和二倍频分量,与传统换流器相比波动幅值更大;2)环流主要由子模块电容电压波动在桥臂电感上激发的偶次谐波电流构成,呈频率越高幅值越小的特性;3)可通过增大桥臂电感或采用调制策略叠加抑制电压分量来有效控制环流。研究结果为MMC系统设计提供了理论依据。

嵌入式老牛的博客 585

K8s的api gateway---ambassador实操

对于api gateway,以前总是认知感觉和proxy差不多。 最近几天,撸完了ambassador的官方文档,才比较系统的了解了gateway的功能。 它和传统的nginx proxy或是k8s里的ingress还是有一定差别的。 近期准备在公司用起来。 一,Ambassador是什么? ambassador是datawire开源的服务网关,很好的支持kubernet...

weixin_30379531的博客 1578

从点击图标到Activity亮屏:AMS、Zygote、ActivityThread的Binder协作之旅

Launcher通过Context调用 startActivity(),最终会通过 Activity.startActivity() 传递到 ActivityManager.getService(),获取AMS的Binder代理对象(IActivityManager)。这里的 attach() 方法通过Binder调用AMS的 attachApplication(),将新进程的 IApplicationThread 代理对象传递给AMS。这一步的Binder通信,是整个启动流程的关键转折点,值得细细品味。

大模型大数据攻城狮的专栏 1071

《微服务治理》服务网格-Istio实战

Istio的安装与部署 参考:https://github.com/AliyunContainerService/k8s-for-docker-desktop curl -L https://istio.io/downloadIstio | sh - 配置环境变量 source .bash_profile 安装 Istio yang@192 ~$ istioctl manifest apply --set profile=demo This will install the Istio 1.13.2

王大阳的博客 2205

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

GRPC 程序在 Kubernetes 中的负载均衡

本文的背景使用的是 kratos 框架。

baobaoxiannv的博客 1523

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

【Kubernetes】K8S下gRPC负载均衡问题

答案是 HTTP/1.1 的 复用是串行的,当请求到达的时候,如果没有空闲连接那么就新创建一个连接,如果有空闲连接那么就可以复用,同一个时间点,连接里最多只能承载一个请求,结果是 HTTP/1.1 可以连接多个 pod;而 HTTP/2 的复用是并行的,当请求到达的时候,如果没有连接那么就创建连接,如果有连接,那么不管其是否空闲都可以复用,同一个时间点,连接里可以承载多个请求,结果是 HTTP/2 仅仅连接了一个 pod。为什么 HTTP/1.1 的复用没问题,而 HTTP/2 的复用就有问题?

王大阳的博客 1881

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Kubernetes之gRPC 负载均衡

文章目录Kubernetes gRPC 负载均衡为什么要负载均衡?gRPC的负载均衡选项代理负载平衡客户端负载均衡与gRPC负载均衡相关的挑战创建服务端部署创建服务创建客户端部署使用无头服务的客户端负载平衡什么是无头服务?验证 DNS代码示例结语 Kubernetes gRPC 负载均衡 gRPC 是用于进程间通信的最流行的现代 RPC框架之一。是微服务架构的绝佳选择。而且,毫无疑问,部署微服务应用程序最流行的方式是 Kubernetes。 Kubernetes 部署可以具有相同的后端实例,为许多客户端请求

Kason_iWiki 1977

go服务k8s容器化之grpc负载均衡

1.grpc基于HTTP/2实现,HTTP2是长连接的,io多路复用,即在一条tcp连接上可以发起多个rpc请求, 请求通过流id 也就是streamID划分。 2.k8s是L4层负载均衡,也就是TCP那层,支持tcp的流量转发,如果是grpc服务部署在k8s,且通过k8s clusterIP访问 就会出现负载不均衡的情况; 3.istio-服务网络,支持7层代理,可以解决grpc服务容器化后负载不均的问题,实现L7的负载均衡;

gdut17的博客 957

GRPC在k8s中的服务发现和负载均衡_traefik-ingress

GRPC在k8s中的服务发现和负载均衡

wangxin123wangxin的博客 5032

k8s sidecar, Ambassador, Adapter containers

When you start thinking in terms of Pods, there are naturally some general patterns of modular application development that re-occur multiple times.  I’m confident that as we move forward in the devel...

weixin_33748818的博客 591

k8s灰度更新_基于ambassador实现K8S灰度发布

为什么需要灰度发布灰度发布(又名金丝雀发布)是指在黑与白之间,能够平滑过渡的一种发布方式。在其上可以进行A/B testing,即让一部分用户继续用产品特性A,一部分用户开始用产品特性B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面来。总结下一些应用场景:微服务依赖很多组件,需要在实际环境验证部署新功能有风险,然后可以通过导流一小部分用户实际使用,来减小风险让特定的用户...

weixin_39733232的博客 444

Ambassador让K8s更容易、更快地访问网络

该公司表示,73%的浏览器和超过25%的网站使用HTTP/3协议在网上交换数据,HTTP/3对有损网络的用户尤其有益,例如那些连接到手机、物联网设备或服务于新兴市场的应用程序的用户。在一篇博客文章中,Bryant写道“值得一提的是,互联网上的平均数据包丢失率为2%,投资于应用程序的HTTP/3支持可以提供前瞻性的能力,以处理网络中任何增加的地理特定降级。Bryan还表示,由于支持HTTP/3,网络质量因此“低且有损”,Ambassador是第一个支持该协议的边缘网关,重点关注延迟和有损网络。...

k8scaptain的博客 391

Java设计模式(二) 之 迭代器模式

源码均以JDK1.8作为参考1.定义: Iterator提供一种方法访问一个容器对象中各个元素,而又不需要暴露对象的内部细节。2.解析: 通用类图: 类图解析: 2.1.Iterator抽象迭代器 抽象迭代器负责定义通用的接口约定,基本都是基于JDK中Iterator接口的定义,源码如下:public interface Iterator<

键盘上流淌的日子 9095

grpc 负载均衡 ( DNS负载均衡,java客户端负载均衡,nginx反向代理负载均衡,k8s集群环境负载均衡 ) 学习总结

使用CoreDNS来实现一个自定义的域名解析服务关于CoreDNS的安装使用可以参考《k8s kubernetes 核心组件 CoreDNS 域名解析服务 学习总结》

liuyij3430448的博客 2706

史上最细gRPC(Go)入门教程(十三)---Kubernetes 环境下的 gRPC 负载均衡

本文主要介绍了 Kubernetes 环境中的 gRPC 负载均衡具体实现。 gRPC 系列相关代码见 Github 1. 概述 系统中多个服务间的调用用的是 gRPC 进行通信,最初没考虑到负载均衡的问题,因为用的是 Kubernetes,想的是直接用 K8s 的 Service 不就可以实现负载均衡吗。 但是真正测试的时

探索云原生 1440

开源项目 Ambassador 使用教程

开源项目 Ambassador 使用教程 项目介绍 Ambassador 是一个基于 Envoy Proxy 构建的 Kubernetes 原生 API 网关。它主要用于微服务架构中的服务网格和入口控制,提供了丰富的功能,如负载均衡、服务发现、流量管理、认证和授权等。Ambassador 的设计目标是简化 Kubernetes 环境中的微服务通信和管理。 项目快速启动 安装 Ambassador ...

gitblog_00759的博客 337
上一篇: Kubernetes生产实践系列之二十:ServiceMesh之通过ambassador对部署在Kubernetes的gRPC服务进行负载均衡
下一篇: Kubernetes生产实践系列之二十二:Service Mesh之在Kubernetes部署Linkerd2进行service mesh
cloudvtech
博客等级 码龄9年 533粉丝 111原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值