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

宁波企业黄页公司黄页深圳seo公司助力网络营销飞跃

宁波企业黄页公司黄页,深圳seo公司助力网络营销飞跃,网站阵地建设管理办法,wordpress ajax评论istio 灰度实验 使用nginx模拟2个版本的后端服务,一个nginx做代理转发服务。 先结论:istio在匹配路由时使用服务hosts(services名)做匹配,如果hosts没匹配上路由规则不生效。 2个版本的nginx服务 启动后手工进入修…

istio 灰度实验

使用nginx模拟2个版本的后端服务,一个nginx做代理转发服务。

先结论:istio在匹配路由时使用服务hosts(services名)做匹配,如果hosts没匹配上路由规则不生效。

2个版本的nginx服务

启动后手工进入修改index.html 为 v1,v2。方便后期验证。

echo v1 > /usr/share/nginx/html/index.html 
echo v2 > /usr/share/nginx/html/index.html 
---
apiVersion: apps/v1
kind: Deployment
metadata:name: nginx-v1labels:app: nginxversion: v1
spec:replicas: 1selector:matchLabels:app: nginxversion: v1template:metadata:labels:app: nginxversion: v1spec:containers:- image: nginx:1.17.8-alpinename: nginx
---
apiVersion: apps/v1
kind: Deployment
metadata:name: nginx-v2labels:app: nginxversion: v2
spec:replicas: 1selector:matchLabels:app: nginxversion: v2template:metadata:labels:app: nginxversion: v2spec:containers:- image: nginx:1.17.8-alpinename: nginx
---
apiVersion: v1
kind: Service
metadata:name: nginx
spec:ports:- name: httpport: 80targetPort: 80selector:app: nginxtype: ClusterIP
代理转发服务
---
apiVersion: v1
data:nginx.conf: |-user  nginx;worker_processes  auto;error_log  /var/log/nginx/error.log notice;pid        /var/run/nginx.pid;events {worker_connections  131072;multi_accept on;}http {include       /etc/nginx/mime.types;default_type  application/octet-stream;underscores_in_headers on;ignore_invalid_headers off;log_format  main  '$remote_addr - $remote_user [$time_local] "$host" "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';access_log  /var/log/nginx/access.log  main;server {listen   80;server_name _;# Add header# 这里重点,代理转发服务不能加上源hosts,否则转发会匹配不上istio路由规则。# proxy_set_header Host                     $http_host;proxy_set_header X-Real-IP                $remote_addr;proxy_set_header X-Forwarded-For          $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Host         $http_host;proxy_set_header X-Forwarded-Port         $server_port;proxy_set_header X-Forwarded-Proto        $scheme;proxy_set_header X-Forwarded-Scheme       $scheme;proxy_set_header X-Scheme                 $scheme;proxy_set_header X-Original-Forwarded-For $http_x_forwarded_for;# Routelocation ^~ / {proxy_pass    http://nginx:80;}}}
kind: ConfigMap
metadata:labels:app: nginx-routename: nginx-route
---
apiVersion: v1
kind: Service
metadata:labels:app: nginx-routeservice: nginx-routename: nginx-route
spec:ports:- name: httpport: 80protocol: TCPtargetPort: 80selector:app: nginx-routesessionAffinity: Nonetype: ClusterIP
---
apiVersion: apps/v1
kind: Deployment
metadata:labels:app: nginx-routename: nginx-route
spec:replicas: 1selector:matchLabels:app: nginx-routetemplate:metadata:labels:app: nginx-routespec:containers:- image: nginx:1.22.1-alpineimagePullPolicy: IfNotPresentname: nginx-routeports:- containerPort: 80name: httpprotocol: TCPresources:limits:cpu: "2"memory: 1Girequests:cpu: 20mmemory: 256MivolumeMounts:- mountPath: /etc/nginx/nginx.confname: configssubPath: nginx.confvolumes:- configMap:name: nginx-routename: configs
配置istio gateway服务
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:name: gateway
spec:selector:istio: ingressgateway # use istio default controllerservers:- port:number: 80name: httpprotocol: HTTPhosts:- "*"
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:name: nginx-route 
spec:hosts:- "*"gateways:- gatewayhttp:- match:- uri:exact: /route:- destination:host: nginx-routeport:number: 80
# 全部请求到nginx-route转发服务,再根据路由规则转发到不同的后端。
DestinationRule
---
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:name: nginx
spec:host: nginxsubsets:- name: v1labels:version: v1- name: v2labels:version: v2
查看服务状态
[root@test]# kubectl get pod,svc,configmap
NAME                               READY   STATUS    RESTARTS   AGE
pod/nginx-route-5458f4b5ff-jnsfm   2/2     Running   3          22h
pod/nginx-v1-7cdbb97474-nds9f      2/2     Running   2          23h
pod/nginx-v2-7f87f869c-gskqw       2/2     Running   2          23hNAME                  TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)   AGE
service/kubernetes    ClusterIP   10.96.0.1       <none>        443/TCP   23h
service/nginx         ClusterIP   10.110.225.75   <none>        80/TCP    23h
service/nginx-route   ClusterIP   10.103.42.115   <none>        80/TCP    22hNAME                           DATA   AGE
configmap/istio-ca-root-cert   1      23h
configmap/nginx-route          1      22h

验证

配置好上面的服务使用crul请求istio-ingressgateway。

1、流量被随机分配到不同的服务。
[root@test]# IG=`kubectl get svc -A | grep ingressgateway | awk '{print $4}'`
[root@test]# for i in `seq 10`; do curl http://$IG;done
v1
v1
v1
v2
v1
v2
v2
v1
v2
v1
2、加上路由规则VirtualService

全部流量都访问v2服务

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:name: nginx
spec:hosts:- nginxhttp:- route:- destination:host: nginxsubset: v2

再请求全部流量都访问的v2

[root@test]# IG=`kubectl get svc -A | grep ingressgateway | awk '{print $4}'`
[root@test]# for i in `seq 10`; do curl http://$IG;done
v2
v2
v2
v2
v2
v2
v2
v2
v2
v2
3、修改nginx-route转发服务,带上源hosts后再请求。

configmap修改后须要重启代理服务生效。

      server {listen   80;server_name _;# Add header# 这里重点,代理转发服务不能加上源hosts,否则转发会匹配不上istio路由规则。proxy_set_header Host                     $http_host;proxy_set_header X-Real-IP                $remote_addr;proxy_set_header X-Forwarded-For          $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Host         $http_host;proxy_set_header X-Forwarded-Port         $server_port;proxy_set_header X-Forwarded-Proto        $scheme;proxy_set_header X-Forwarded-Scheme       $scheme;proxy_set_header X-Scheme                 $scheme;proxy_set_header X-Original-Forwarded-For $http_x_forwarded_for;# Routelocation ^~ / {proxy_pass    http://nginx:80;}

再请求发现又随机到不同的服务而不是按vs配置的只路由到v2服务。

[root@test]# IG=`kubectl get svc -A | grep ingressgateway | awk '{print $4}'`
[root@test]# for i in `seq 10`; do curl http://$IG;done
v1
v2
v1
v2
v1
v2
v1
v1
v1
v2
http://www.dtcms.com/wzjs/127940.html

相关文章:

  • 互联网行业招聘网站产品策划方案怎么做
  • 本地网站可以做吗日本搜索引擎
  • 那个网站的是做vb题目的百度推广手机登录
  • 做网站属于什么职位广州seo学徒
  • 买了虚拟主机怎么建设网站网站怎么快速排名
  • 安徽金开建设集团网站怎么快速刷排名
  • 建设网站时怎么用外部字体市场seo是什么
  • 网站怎么做配置文件夹智能营销方法
  • 如何用css做网站百度推广开户流程
  • 网站推广公司汉狮网络百度站长链接提交
  • 杭州关键词排名工具seo网站关键词优化快速官网
  • 企业网站制作公司盈利小红书推广方式有哪些
  • 网站开发网络公司兼职百度推广账户优化
  • 链接分析属于网站开发长沙优化网站哪家公司好
  • 朋友圈网站怎么做的网站建设公司seo关键词
  • 装修公司怎么做网站推广安卓手机优化软件排名
  • 自助网站建设北京网站建设专业公司
  • 保亭县住房城市建设局网站网络营销的主要方式
  • wordpress加站点描述企业网络营销成功案例
  • 电商网站建设怎么样360站长平台链接提交
  • 建个普通网站新站整站快速排名
  • 天津网站制作的公司哪家好提升seo排名平台
  • 淘宝做链接有哪些网站可以做100个商业经典案例
  • 阿里巴巴网站维护要怎么做链接提交工具
  • 怎么建设网站买链接网站
  • 做聊天室cpa用什么类型的网站好seo是什么服务
  • 家做网站怎么出售友情链接
  • 台州市建设规划局网站班子成员重庆百度总代理
  • 网站公司用什么软件做网站白帽seo
  • 网站建设分为哪三部分6个好用的bt种子搜索引擎