当前位置: 首页 > news >正文

三门峡市住房的城乡建设局网站建站软件

三门峡市住房的城乡建设局网站,建站软件,免费的微商加人软件,档案网站建设论文目录前言原理sidecarwebhook实现安装k8s设置webhook使用尾语前言 rust-grpc-proxy 目前功能基本完善。是时候上环境开始应用了。 之前考虑是gateway模式或者sidecar模式。 思考良久之后,觉得两种模式都有使用场景,那就都支持。本次就带来sidecar模式的食…

目录

  • 前言
  • 原理
    • sidecar
    • webhook
  • 实现
    • 安装k8s
    • 设置webhook
    • 使用
  • 尾语

前言

rust-grpc-proxy 目前功能基本完善。是时候上环境开始应用了。
之前考虑是gateway模式或者sidecar模式。
思考良久之后,觉得两种模式都有使用场景,那就都支持。本次就带来sidecar模式的食用姿势。

原理

微服务几乎都是在k8s上搭建的。而rust-grpc-proxy作为无侵入的grpc转http代理,当然也要实现自动部署在k8s上。所以我们的目标如下

  • rust-grpc-proxy能够作为sidecar运行在各个pod中
  • 能够根据标签实现自动注入,基于k8s的webhook能力

sidecar

为什么会优先推荐sidecar(边车模式),这是因为能够避免在集群模式下,rust-grpc-proxy受某个节点的拖累,从而导致整个代理的低效,甚至是不可用。
rust-grpc-proxy 镜像目前最新版只有20MB,拉起非常快,并且会持续扫描主容器,直到超时或者代理成功。
因为是使用rust开发的,你可以大胆且放心的使用,资源消耗很小,安全性也有足够保证。
镜像也能够单独拿出来作为pod使用,可以通过配置文件,或者环境变量指定配置,具体参考上一篇博文的内容。

webhook

k8s的扩展功能里,允许用户在准入阶段(图中3)修改和认证请求,所以我们可以用MutatingAdmissionWebhook实现代理自动注入。
更多参考:https://v1-23.docs.kubernetes.io/zh/docs/reference/access-authn-authz/extensible-admission-controllers/
在这里插入图片描述

实现

安装k8s

教程很多了,这里就不写了
我的 k8s 版本是 1.24.9
之后的操作都在命名空间:qa

设置webhook

首先下载代码:git地址:https://github.com/woshihaoren4/grpc-proxy
进入 deploy目录

//建证书
./webhook-create-signed-cert.sh //生成 mutating_admission.yaml
cat ./webhook_mutating.yaml | ./webhook-patch-ca-bundle.sh > /tmp/mutating_admission.yaml//添加权限
kubectl apply -f webhook_rbac.yaml//生成service
kubectl apply -f webhook_service.yaml//生成deployment
kubectl apply -f webhook_deployment.yaml//生成admission
kubectl apply -f /tmp/mutating_admission.yaml 

说明1:webhook的镜像是:registry.cn-hangzhou.aliyuncs.com/wshr/wd:sidecar-v4
代码位置:https://github.com/woshihaoren4/grpc-proxy/tree/main/webhook

说明2:这个webhook的作用是 在检测到创建或者更新pod时,如果存在 rustGrpcProxyEnable 标签,则自动将rust-grpc-proxy注入到pod配置中,并将这个标签的value 作为目标服务的端口 从而进行代理。

说明3:如果你用的rancher,需要编辑集群的yaml文件,添加如下配置. 否则创建证书请求一直是Approved 而不Issued

services:kube-controller: extra_args: cluster-signing-cert-file: "/etc/kubernetes/ssl/kube-ca.pem"cluster-signing-key-file: "/etc/kubernetes/ssl/kube-ca-key.pem"

说明4:建议在webhook_mutating.yaml文件中开启这个选项namespaceSelector让webhook只在特定命名空间中生效,如果开启了这个,则需要设置命名空间标签

kubectl label namespace <namespace> <key>=enabled

使用

创建一个带标签的pod
这里用到的镜像就是之前的echo测试程序打包成的

kubectl apply -f echo_deployment.yaml

重点内容是这个标签:rustGrpcProxyEnable: "1234" 只有存在这个标签才会添加代理。1234 是echo服务的grpc端口

spec:template:labels:app: echo-serverrustGrpcProxyEnable: "1234"

等待一段时间后,可以看到pod已经创建成功。想要测试我们还需要开放一个外网端口

 kubectl apply -f ./echo_service.yaml

echo_service.yaml 中的内容是创建一个node端口的service,并且映射到echo-server 服务上。大体如下配置

spec:ports:- name: httpnodePort: 30000port: 6789protocol: TCPtargetPort: 6789selector:app: echo-server

设置成功后,发起一个测试命令

  • <NODE_HOST> 替换为节点地址
curl --location --request GET 'http://<NODE_HOST>:30000/api/v1/echo/hello/get?query=666' \
--header 'echo-hello: world' \
--header 'MD-hello: world'

然后就可以看到返回内容{"response": "GET [test-server]---> request=hello query=666"} 表明测试成功

尾语

本文涉及了很多非rust-grpc-proxy 相关的内容,需要和代码一起看。但容器化 微服务,云原生都是大势所趋,rust-grpc-proxy本意就是基于云原生设计的。

http://www.yayakq.cn/news/571657/

相关文章:

  • wordpress文章图片本地化在线网站seo诊断
  • 医疗类网站前置审批烟台网站seo外包
  • 网站建设 成本分析英文网站数据库如何建设
  • 响应式网站文章地图网站抓取
  • 网站手机端优化外贸网站建设定制开发
  • 如何维护自己的网站苏州注册公司多少钱
  • 东莞石龙网站建设定制flash网站建设技术是什么
  • 顶尖网站建设建设银行信用卡进度查询官方网站
  • 企业网站 开源百度seo综合查询
  • 惠州网站建设公司哪家好查看网站是否做百度推广
  • 公司网站建设需要些什么要求科技创新的重要性和意义
  • 最新仿58同城网站源码北京网页设计公司有哪些
  • 找外包公司做网站的好处和坏处wordpress 搭建教程
  • 优化网站搭建wordpress 注册 中文
  • 陇南地网站建设柯桥做网站
  • 恶意网站是怎么实现的seo关键词推广公司
  • 用什么网站能直接做dj怎么做营销型网站
  • 建设一个最普通网站要多少钱wordpress获取栏目名称
  • 网站建设和风险评估如何提升网站访问速度
  • 网站集约化建设讲话系统开发
  • 唐山住房和城乡建设局网站wordpress撰写邮箱
  • 中国大型网站wordpress瀑布流风格
  • 做家政网站公司营销网站排行榜前十名
  • 建一个营销网站多少钱仓库管理系统er图
  • 网站建设及推广衬胶蝶阀icp备案号查询官网
  • 电商网站建设源码郑州竞价托管代运营
  • 招商网站建设推广域名是什么举个例子
  • 无锡网站建设 网站制作网站建设价钱
  • 网站性质网页站点规划
  • 扁平化的网站结构图门户网站 营销