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

国外网站推广如何做网站原型图软件

国外网站推广如何做,网站原型图软件,怎么免费注册自己的网站,网站建设需要几步故障注入 Istio流量治理有故障注入的功能,在接收到用户请求程序的流量时,注入故障现象,例如注入HTTP请求错误,当有流量进入Sidecar时,直接返回一个500的错误请求代码。 通过故障注入可以用来测试整个应用程序的故障恢…

故障注入


Istio流量治理有故障注入的功能,在接收到用户请求程序的流量时,注入故障现象,例如注入HTTP请求错误,当有流量进入Sidecar时,直接返回一个500的错误请求代码。

通过故障注入可以用来测试整个应用程序的故障恢复能力,注入各种故障现象,针对不同的故障现象做出应对措施。

故障注入有两种类型:

  • 延迟(Delay):注入延迟故障可以模拟出高负载时,模拟出系统响应很慢的一种现象。
  • 中止(abort):注入中止故障可以模拟出系统崩溃,直接返回HTTP错误代码或者TCP连接失败的现象

使用故障注入时,不可用启用超时和重试的配置,故障注入时在VirtualService资源中进行配置的。

两种故障注入的配置清单:

  • 故障注入-延迟配置清单
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:name: tomcat-vsnamespace: istio-traffic 
spec:http:- fault:							#定义故障注入delay:						#定义故障注入的延迟配置percentage:						#配置要将流量注入故障的比例,这里为100%,也可以针对50%的流量进行故障注入,剩下50%的流量做一些其他路由匹配				value: 100fixedDelay: 10s					#故障注入延迟响应时间10秒route:						#将满足的流量路由到tomcat的service资源上- destination:host: tomcat-svc注意:1.falut和route是同级参数,当满足故障注入条件的流量会被route进行路由分发。2.重试和超时的配置都是在route中设置的,当我们配置了故障注入后就无法再配置超时和重试了。
  • 故障注入-中止配置清单
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:name: tomcat-vsnamespace: istio-traffic 
spec:http:- fault:							#定义故障注入abort:						#定义故障注入的中止配置percentage:						#配置要将流量注入故障的比例,这里为100%,也可以针对50%的流量进行故障注入,剩下50%的流量做一些其他路由匹配				value: 100httpStatus: 503#注入的故障为返回一个503的HTTP状态码route:						#将满足的流量路由到tomcat的service资源上- destination:host: tomcat-svc

重试


重试是非常好理解的,如果请求超时那么就会进行重试。

在Istio服务网格中,Envoy代理在请求失败或者超时后,并不会尝试重新连接服务,不会去重试,需要我们来配置Istio的重试机制。重试和超时策略可以同时使用。

 VirtualService资源中重试配置清单:

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:name: ratings
spec:hosts:- ratingshttp:- route:- destination:host: ratingssubset: v1retries:						#定义重试策略attempts: 3#重试的次数为3次perTryTimeout: 2s					#重试的间隔为2秒

在Istio服务网格中,Envoy代理在请求失败或者超时后,并不会尝试重新连接服务,不会去重试,需要我们来配置Istio的重试机制。

重试和超时策略可以同时使用。

VirtualService资源中重试配置清单:

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:name: ratings
spec:hosts:- ratingshttp:- route:- destination:host: ratingssubset: v1retries:						#定义重试策略attempts: 3                   #重试的次数为3次perTryTimeout: 2s				#重试的间隔为2秒

 

 

 

配置Istio中应用程序的故障注入以及重试


案例描述

 

案例:Nginx反向代理Tomcat服务,Nginx服务的VirtualService开始重试机制,Tomcat服务的VirtualService配置故障注入,永不响应Nginx服务的请求,观察是否会触发重试机制。

大致实现思路:

  • 在Istio中部署一个Nginx服务和一个Tomcat服务,并配置Nginx反向代理Tomcat服务。

  • 通过VirtualService为Nginx服务设置重试次数,当请求失败后进行重试。

  • Tomcat服务通过VirtualService中的故障注入配置返回503错误代码,任何请求都将失败。

  • 此时Nginx再去反向代理Tomcat时,Tomcat只会返回503错误代码,观察是否有重试记录。

创建Namespace并开启Sidecar自动注入。

[root@k8s-master istio-traffic]# kubectl label ns istio-traffic istio-injection=enabled
namespace/istio-traffic labeled[root@k8s-master istio-traffic]# kubectl create ns istio-traffic
namespace/istio-traffic created

 在Istio中部署Nginx服务

1)编写资源编排文件

[root@k8s-master istio-traffic]# vim nginx-k8s.yaml
apiVersion: apps/v1
kind: Deployment
metadata:name: nginx-proxynamespace: istio-trafficlabels:server: nginxapp: web
spec:replicas: 
1selector:matchLabels:server: nginxapp: webtemplate:metadata:name: nginxlabels: server: nginxapp: webspec:containers:- name: nginximage: jiangxlrepo/know-system:v1		#knowsystem镜像中包含了NginximagePullPolicy: IfNotPresent
---
apiVersion: v1
kind: Service
metadata:name: nginx-svcnamespace: istio-traffic
spec:selector:server: nginxports:- name: httpport: 80targetPort: 80protocol: TCP

 2)创建资源并查看资源的状态

1.创建资源
[root@k8s-master istio-traffic]# kubectl apply -f nginx-k8s.yaml
deployment.apps/nginx-proxy created
service/nginx-svc created2.查看资源的状态
[root@k8s-master istio-traffic]# kubectl get all -n istio-traffic 
NAME                               READY   STATUS    RESTARTS   AGE
pod/nginx-proxy-7c487c794d-wt6nq   2/2     Running   0          53sNAME                TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)   AGE
service/nginx-svc   ClusterIP   10.105.3.226   <none>        80/TCP    53sNAME                          READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/nginx-proxy   1/1     1            1           54sNAME                                     DESIRED   CURRENT   READY   AGE
replicaset.apps/nginx-proxy-7c487c794d   1         1         1       54s

2.3.在Istio中部署Tomcat服务

1)编写资源编排文件

[root@k8s-master istio-traffic]# vim tomcat-k8s.yaml
apiVersion: apps/v1
kind: Deployment
metadata:name: tomcatnamespace: istio-trafficlabels:server: tomcatapp: web
spec:replicas: 
1selector:matchLabels:server: tomcatapp: webtemplate:metadata:name: tomcatlabels: server: tomcatapp: webspec:containers:- name: tomcatimage: docker.io/kubeguide/tomcat-app:v1 imagePullPolicy: IfNotPresent
---
apiVersion: v1
kind: Service
metadata:name: tomcat-svcnamespace: istio-traffic
spec:selector:server: tomcatports:- name: httpport: 8080targetPort: 8080protocol: TCP

2)创建资源并查看资源的状态

1.创建资源
[root@k8s-master istio-traffic]# kubectl apply -f tomcat-k8s.yaml 
deployment.apps/tomcat created
service/tomcat-svc created2.查看资源的状态
[root@k8s-master istio-traffic]# kubectl get all -n istio-traffic 
NAME                               READY   STATUS    RESTARTS   AGE
pod/nginx-proxy-7c487c794d-wt6nq   2/2     Running   0          6m1s
pod/tomcat-86ddb8f5c9-7n2xj        2/2     Running   0          16sNAME                 TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)    AGE
service/nginx-svc    ClusterIP   10.105.3.226   <none>        80/TCP     6m1s
service/tomcat-svc   ClusterIP   10.100.46.31   <none>        8080/TCP   16sNAME                          READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/nginx-proxy   1/1     1            1           6m1s
deployment.apps/tomcat        1/1     1            1           16sNAME                                     DESIRED   CURRENT   READY   AGE
replicaset.apps/nginx-proxy-7c487c794d   1         1         1       6m1s
replicaset.apps/tomcat-86ddb8f5c9        1         1         1       16s

2.4.配置Nginx反向代理Tomcat

1.配置Nginx反向代理
[root@nginx-proxy-76ccd8b9fc-8hqbq /]# vim /data/nginx/conf/conf.d/istio-tomcat.conf
server {listen 80;server_name _;location / {proxy_pass http://tomcat-svc:8080;proxy_http_version 1.1;}
}2.重载Nginx配置
[root@nginx-proxy-76ccd8b9fc-8hqbq /]# /data/nginx/sbin/nginx -t
nginx: the configuration file /data/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /data/nginx/conf/nginx.conf test is successful
[root@nginx-proxy-76ccd8b9fc-8hqbq /]# /data/nginx/sbin/nginx -s reload

2.5.配置Nginx服务VirtualService资源中的重试

配置Nginx服务的VirtualService资源,设置超时时间。

1.编写资源编排文件
[root@k8s-master istio-traffic]# vim nginx-vs-att.yaml
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:name: nginx-vsnamespace: istio-traffic 
spec:hosts:- nginx-svc					#虚拟主机列表中指定了Nginx的Service资源名称,用于内部调用,接收来自nginx-svc service资源的流量http:- route:						#将流量转发到nginx-svc Service资源上- destination: host: nginx-svc				retries:					#定义重试策略attempts: 3           	#重试次数为3次perTryTimeout: 2s			#重试的间隔为2秒2.创建资源编排文件
[root@k8s-master istio-traffic]# kubectl apply -f nginx-vs-att.yaml
virtualservice.networking.istio.io/nginx-vs created3.查看资源
[root@k8s-master istio-traffic]# kubectl get vs -n istio-traffic 
NAME       GATEWAYS   HOSTS           AGE
nginx-vs              ["nginx-svc"]   58s

2.6.配置Tomcat服务VirtualService资源中的故障注入

配置Nginx服务的VirtualService资源,设置请求响应的延时时间,将延时时间设置的稍微长一些,经过这段时间后,再返回响应,就可以实现超时配置的效果了。

1.编写资源编排文件
[root@k8s-master istio-traffic]# vim tomcat-vs-att.yaml
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:name: tomcat-vs
spec:hosts:- tomcat-svc				#虚拟主机列表中指定了Tomcat的Service资源名称,用于内部调用,接收来自tomcat-svc service资源的流量http:- fault:							#定义故障注入策略abort:						#定义中止类型的故障注入percentage:						#配置要将流量注入故障的比例,这里为100%,也可以针对50%的流量进行故障注入,剩下50%的流量做一些其他路由匹配				value: 100httpStatus: 503				#注入的故障为返回一个503的HTTP状态码route:						#将满足的流量路由到tomcat的service资源上- destination:host: tomcat-svc2.创建资源编排文件
[root@k8s-master istio-traffic]# kubectl apply -f tomcat-vs-att.yaml
virtualservice.networking.istio.io/tomcat-vs created3.查看资源
[root@k8s-master istio-traffic]# kubectl get vs -n istio-traffic
NAME        GATEWAYS   HOSTS            AGE
nginx-vs               ["nginx-svc"]    6m42s
tomcat-vs              ["tomcat-svc"]   4s
3.验证Istio配置的流量重试效果

Tomcat服务配置了故障注入,所有流量请求都会返回503的错误代码,Nginx转发请求到Tomcat,Tomcat不会响应Nginx的请求,此时就会触发配置的重试机制,每隔2两秒进行一次重试,重试三次后退出。

[root@k8s-master istio-traffic]# kubectl run -it  busybox --image busybox:1.28 --restart=Never --rm busybox -n istio-traffic -- sh
/ # wget -q -O - http://nginx-svc
wget: server returned error: HTTP/1.1 503 Service Unavailable
/ # wget -q -O - http://nginx-svc
wget: server returned error: HTTP/1.1 503 Service Unavailable
/ # wget -q -O - http://nginx-svc
wget: server returned error: HTTP/1.1 503 Service Unavailable

我们可以在busybox容器中请求Nginx服务,由Nginx将请求转发到Tomcat中,由于Tomcat无法响应,Nginx发送一次请求后会接着重试3次,当我们执行一次wget的请求时,就会产生4条请求记录,而这4条请求记录会产生8条Envoy代理程序的日志,分别是出入流量的日志,我们可以在日志中清晰的看到每次请求或者重试都会有2条日志记录。

当我们看到日志中一次请求连带了3次重试,就表示重试配置已经生效。

[root@k8s-master ~]# kubectl logs -f nginx-proxy-76ccd8b9fc-8hqbq -c istio-proxy -n istio-traffic 

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

相关文章:

  • 淘宝网站的推广与优化建筑施工企业主要负责人安全证书
  • 网站案例展示分类广告联盟挂机
  • 专门做ppt的网站叫什么jsp电子商务网站开发源码
  • 如何利用淘宝建设网站挣钱游戏开发用什么语言
  • 美容美发网站模板长宁区网站建设网站制作
  • 网站建设教程17建设门户网站
  • 合肥模板网站建设费用网站模板 茶叶响应式
  • 有哪些网站可以做兼职衡水seo_衡水网站建设-燕丰收
  • 宁波建设银行网站分部网络营销的主要传播渠道是
  • 安义网站建设wordpress 上传功能
  • 公司网站建设什么价格低园区网站建设
  • 重庆网站推广大全2022做网站还能赚钱吗
  • 南浔建设网站在线教学网站建设
  • 网站做外链的具体步骤wordpress影视主题下载失败
  • 网站做优化有什么好处开源的低代码开发平台
  • 下城区网站建设价格查询建设网站需要什么资质
  • 企业网站pr值低怎么办制作3d动画的软件
  • 临沂做百度网站软件公司网站设计报价单模板
  • 西安网站制作有限公司制作网站需要的服务器
  • 我的世界找建筑网站模板下载失败
  • 全国水利建设市场信用信息平台门户网站vps 256 wordpress
  • 做的做的比较好的网站新乡市做网站的公司
  • 2023来个网站可以看的dw网页制作教程视频简单第二期
  • 国内做的好的网站公共信息服务平台官网
  • 聊城网站建设价格广告公司有哪些
  • 推荐几个没封的网站2021100个免费推广网站的排名
  • html网页设计源代码文件免费优化服务内容
  • 公司的服务器能建设网站吗接送车服务网站怎么做
  • 帝国cms 关闭网站太原代理记账公司
  • 新民电子网站建设哪家好网站推广怎么做引流