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

查询网站入口嵌入式设计与开发

查询网站入口,嵌入式设计与开发,班服定制的网站,蜜雪冰城的网络营销方式文章目录 原理实现DeploymentVirtualServiceDestinationRule 约束部署 目的: 根据不同的引擎版本,可以把请求发送到指定的引擎上。可以实现版本降级。 原理 Istio通过VirtualService和DestinationRule两个资源对象来实现流量管理,其中VirtualService用于…

目的: 根据不同的引擎版本,可以把请求发送到指定的引擎上。可以实现版本降级。

原理

Istio通过VirtualService和DestinationRule两个资源对象来实现流量管理,其中VirtualService用于定义流量路由规则,而DestinationRule用于定义服务的负载均衡策略和TLS设置

  • VirtualService: 实现服务请求路由规则的动能
  • DestinationRule: 实现⽬标服务的负载均衡、服务发现、故障处理和故障注⼊的功能
  • Gateway: 让服务⽹格内的服务,可以被全世界看到
  • ServiceEntry: 让服务⽹格内的服务,可以看到外⾯的世界

实现

Deployment

{{- $revisionHistoryLimit := .Values.revisionHistoryLimit -}}
{{- $replicaCount := .Values.replicaCount -}}
{{- $autoscaling := .Values.autoscaling.enabled -}}
{{- $podAnnotations := .Values.podAnnotations -}}
{{- $imagePullSecrets := .Values.imagePullSecrets -}}
{{- $podSecurityContext := .Values.podSecurityContext -}}
{{- $securityContext := .Values.securityContext -}}
{{- $pullPolicy := .Values.pullPolicy -}}
{{- $port := .Values.service.port -}}
{{- $resources := .Values.resources -}}
{{- $nodeSelector := .Values.nodeSelector -}}
{{- $repository := .Values.image.repository -}}
{{- $affinity := .Values.affinity -}}
{{- $tolerations := .Values.tolerations -}}
{{- range $num,$tag := .Values.image.tag -}}
{{- $version := add $num 1 -}}
apiVersion: apps/v1
kind: Deployment
metadata:name: {{ include "grpc-manifest.fullname" $  }}-v{{ $version }}labels:{{- include "grpc-manifest.labels" $ | nindent 4 }}app.kubernetes.io/tag: v{{ $version }}app.kubernetes.io/type: grpc
spec:revisionHistoryLimit: {{ $revisionHistoryLimit | default 5 }}{{- if not $autoscaling }}replicas: {{ $replicaCount }}{{- end }}selector:matchLabels:{{- include "grpc-manifest.selectorLabels" $ | nindent 6 }}app.kubernetes.io/tag: v{{ $version }}app.kubernetes.io/type: grpc...{{end }}

作用:可以根据版本生成对应的服务

VirtualService

{{- define "grpc-manifest.gateway" -}}
{{- $port := .Values.services.port }}
{{- range $num,$image := .Values.image.tag }}
{{- $version := add $num 1 }}- match:- headers:grpcsvc:exact: v{{ $version }}route:- destination:host: {{ include "grpc-manifest.fullname" $ }}port:number: {{ $port }}subset: v{{ $version }}
{{- end }}
{{- end }}

例子中,虚拟服务将流量分发服务的两个子集:v$version。也可设置权重默认是 100,表示 携带 header为grpcsvc: v$version 的流量将全量被路由到 v$version

DestinationRule

目标规则定义了如何将请求路由到实际的服务实例。每个目标规则关联到一个虚拟服务的子集

{{- define "grpc-manifest.route" -}}
{{- range $num,$image := .Values.image.tag }}
{{- $version := add $num 1 }}- name: v{{ $version }}labels:app.kubernetes.io/instance:  {{ include "grpc-manifest.fullname" $ }}app.kubernetes.io/tag: v{{ $version }}
{{- end }}
{{- end }}

例子中,目标规则将子集 v$version 分别映射到具有相应标签的实际服务实例。

需要多个版本同时部署时,会根据镜像自动更新资源配置

[root@ycloud grpc-manifest]# cat env/devel/image_tag.yaml 
image:tag:- v1.0.1- v1.0.2- v1.0.3- v1.0.4

约束

根据定义好的行为实现

访问通过添加metadata的方式来选择指定的版本,并且如果访问中 metadata 指定有误要做降级策略,给默认且可正常运行的版本

eg: (案例仅限测试,生产根据实际需求更新)

apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:name:  {{ include "grpc-manifest.fullname" . }}
spec:workloadSelector:labels:app: istio-ingressgatewayconfigPatches:- applyTo: HTTP_FILTERmatch:context: GATEWAYlistener:filterChain:filter:name: "envoy.filters.network.http_connection_manager"subFilter:name: "envoy.filters.http.router"patch:operation: INSERT_BEFOREvalue:name: envoy.filters.http.luatyped_config:"@type": "type.googleapis.com/envoy.extensions.filters.http.lua.v3.Lua"inlineCode: |function envoy_on_request(request_handle)local contentType = request_handle:headers():get("content-type")if contentType and string.find(contentType, "grpc") thenlocal grpcSvcHeader = request_handle:headers():get("grpcsvc")local allowedVersions = {"v1", "v2", "v3", "v4"}local isInAllowedVersions = falsefor _, allowedVersion in ipairs(allowedVersions) doif grpcSvcHeader == allowedVersion thenisInAllowedVersions = truebreakendendif not isInAllowedVersions thenrequest_handle:headers():replace("grpcsvc", "v1")endendend

部署

待实现 自动部署和之前服务有出入,需要针对这个服务做调整,主要判断,通过版本引擎来自动更新旧版本

具体 Helm 案例届时会更新到 GitHub

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

相关文章:

  • 网站建设全包需要多少钱兰州做高端网站
  • 谷歌网站建设代理自己做单词卡的网站是什么
  • 文学网站模板下载网络营销推广难做吗
  • 某电子商务网站建设的详细策划中山做app网站公司
  • 网站开发合作运营平台合同成都营销推广公司
  • 站酷设计网站官网入口下载广东企业备案 网站建设方案书
  • 仿织梦小说网站源码互联网公司薪酬体系
  • 长沙网站到首页排名网站开发卖东西
  • 合法购物网站建设网站建设公司怎么寻找客户呢
  • 外贸网站建设szjijiewordpress 图片预加载插件
  • 惠州seo网站排名wordpress多媒体设置
  • 帮助中心网站模板济阳网站建设哪家好
  • 做360网站首页软件建站之星登录
  • 网站 建设开发合作协议jsp网站建设项目实战 pdf
  • 防城港做网站的php语言做网站
  • 建外贸营销型网站微信里的小程序占内存吗
  • 汕尾住房和城乡建设局网站个人注册一个小公司要多少钱
  • 建站哪家公司比较好而且不贵中信建投证券股份有限公司
  • 下载 网站样板平面设计工资
  • 如何网站公司小程序群晖nas安装wordpress安装
  • 网站开发l论文国内十大效果图公司
  • 网站开发文档怎么写永久新域名225222
  • 网站建设推广咨询平台网站怎么添加代码
  • 设计网站账号公司logo设计大全 图片欣赏
  • 网站做多长时间才会成功上海有多少家网站建设公司
  • 网站设计培训成都哪家好全网营销推广有哪些平台
  • 如何自建购物网站邯郸网站设计公司排名
  • 网站开发专业实习报告怎么把网页发布到网上
  • 自己做的网站打开很慢网站建设和客户对接内容
  • 动易网站中添加邮箱wordpress更换域名后显示空白