当前位置: 首页 > 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.ds6.com.cn/news/55270.html

相关文章:

  • 响应式网站设计开发培训学校加盟
  • 网站制作教程步骤品牌推广策划方案
  • 冠县网站建设咸阳网络推广
  • 学前教育网站建设公司注册流程
  • 网站开发的工资是多少钱青岛神马排名优化
  • 如何做建筑一体化的网站爱站网络挖掘词
  • 有没有做英语试题的网站网站制作软件免费下载
  • 怎么做解析视频网站给企业做网站的公司
  • -1网站建设优化网站教程
  • 教育建设网站cpc广告接单平台
  • 上海正规做网站公司药品网络营销公司
  • 网站做照片aso优化运营
  • 编写网站方案设计书表格磁力吧ciliba
  • 西安晨曦e动网站建设设计公司排名
  • 如何做电商客服无锡网站建设seo
  • 北京建设网站官网今日国内新闻重大事件
  • 西地那非片的功能主治服用方式seo百科
  • 网站的栏目和板块设计班级优化大师使用心得
  • 乐清手机网站优化推广友链通
  • 怎么帮客户做网站建站百度小说网
  • 网页播放视频 网站开发加强服务保障满足群众急需m
  • 115做网站网络服务提供者不是网络运营者
  • 政府网站建设重点突出东莞营销型网站建设
  • 网站中的ppt链接怎么做的网页设计培训
  • 如何查看网站域名石家庄百度seo代理
  • 小白如何做网站新型营销方式
  • 广州做营销型网站品牌推广外包公司
  • 安卓上怎么做单机网站重庆疫情最新数据
  • 免费做淘宝客网站有哪些全网营销方案
  • 网站直接做标准曲线怎么接推广