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

网站首页做很多个关键词在线编辑器

网站首页做很多个关键词,在线编辑器,没有网站怎样做外贸,管理咨询项目假设有如下三个节点的 K8S 集群: ​ k8s31master 是控制节点 k8s31node1、k8s31node2 是工作节点 容器运行时是 containerd 一、场景分析 阅读本文,默认您已经安装了 K8S Gateway。 关于 AB 测试、金丝雀发布,可以看这篇文章。 二、实验准…

假设有如下三个节点的 K8S 集群:

k8s31master 是控制节点

k8s31node1、k8s31node2 是工作节点

容器运行时是 containerd

 一、场景分析

阅读本文,默认您已经安装了 K8S Gateway。

关于 AB 测试、金丝雀发布,可以看这篇文章。

 二、实验准备

  • 镜像下载

# 在各个工作节点下载
[root@k8s31node1 ~]# ctr -n=k8s.io images pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/openresty/openresty:latest
[root@k8s31node1 ~]# ctr -n=k8s.io images tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/openresty/openresty:latest  docker.io/openresty/openresty:latest[root@k8s31node2 ~]# ctr -n=k8s.io images pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/openresty/openresty:latest
[root@k8s31node2 ~]# ctr -n=k8s.io images tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/openresty/openresty:latest  docker.io/openresty/openresty:latest
  •  部署 v1

apiVersion: apps/v1
kind: Deployment
metadata:name: nginx-v1
spec:replicas: 1selector:matchLabels:app: nginxversion: v1template:metadata:labels:app: nginxversion: v1spec:containers:- name: nginximage: "openresty/openresty:latest"imagePullPolicy: IfNotPresentports:- name: httpprotocol: TCPcontainerPort: 80volumeMounts:- mountPath: /usr/local/openresty/nginx/conf/nginx.confname: configsubPath: nginx.confvolumes:- name: configconfigMap:name: nginx-v1
---
apiVersion: v1
kind: ConfigMap
metadata:labels:app: nginxversion: v1name: nginx-v1
data:nginx.conf: |-worker_processes  1;events {accept_mutex on;multi_accept on;use epoll;worker_connections  1024;}http {ignore_invalid_headers off;server {listen 80;location / {access_by_lua 'local header_str = ngx.say("nginx-v1")';}}}
---
apiVersion: v1
kind: Service
metadata:name: nginx-v1
spec:type: ClusterIPports:- port: 80protocol: TCPname: httpselector:app: nginxversion: v1

该 yml 定义了三个资源 ConfigMap、Deployment、Service。

  • ConfigMap 定义了一个 nginx.conf 配置文件,使用 lua 脚本输出 nginx-v1。
  • Deployment 定义了一个 Pod,里面运行 openresty 它是一个封装了 nginx+lua 的 web 服务器。Pod 有两个标签 app: nginx、version: v1。
  • Service 代理了 Deployment 运行的 Pod。

部署 v2

apiVersion: apps/v1
kind: Deployment
metadata:name: nginx-v2
spec:replicas: 1selector:matchLabels:app: nginxversion: v2template:metadata:labels:app: nginxversion: v2spec:containers:- name: nginximage: "openresty/openresty:latest"imagePullPolicy: IfNotPresentports:- name: httpprotocol: TCPcontainerPort: 80volumeMounts:- mountPath: /usr/local/openresty/nginx/conf/nginx.confname: configsubPath: nginx.confvolumes:- name: configconfigMap:name: nginx-v2
---
apiVersion: v1
kind: ConfigMap
metadata:labels:app: nginxversion: v2name: nginx-v2
data:nginx.conf: |-worker_processes  1;events {accept_mutex on;multi_accept on;use epoll;worker_connections  1024;}http {ignore_invalid_headers off;server {listen 80;location / {access_by_lua 'local header_str = ngx.say("nginx-v2")';}}}
---
apiVersion: v1
kind: Service
metadata:name: nginx-v2
spec:type: ClusterIPports:- port: 80protocol: TCPname: httpselector:app: nginxversion: v2

三、AB 测试

1)创建 gateway

apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:name: nginx-gatewaynamespace: default
spec:gatewayClassName: nginxlisteners:- name: httpprotocol: HTTPport: 80

 2)创建 httproute

apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:name: abtest-routenamespace: default
spec:parentRefs:- name: nginx-gatewayhostnames:- "abtest.example.com"rules:- matches:- path:type: PathPrefixvalue: / headers:- name: "version"value: "v1"backendRefs:- name: nginx-v1kind: Serviceport: 80- matches:- path:type: PathPrefixvalue: /headers:- name: "version"value: "v2"  backendRefs:- name: nginx-v2kind: Serviceport: 80
  • parentRefs:绑定我们新建的 gateway。
  • hostnames:定义访问的主机名。
  • rules.matches:定义路由规则,PathPrefix 表示路径前缀匹配。headers 对请求头进行匹配。
  • backendRefs:定义后端服务以及服务端口。

 3)测试

curl -H "Host: abtest.example.com" -H "version: v1" http://192.168.40.20:30185/
curl -H "Host: abtest.example.com" -H "version: v2" http://192.168.40.20:30185/

 30185 为 nginx-gateway-controller 80 映射端口。

 四、金丝雀发布

 1)创建 httproute

apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:name: canary-routenamespace: default
spec:parentRefs:- name: nginx-gatewayhostnames:- "canary.example.com"rules:- matches:- path:type: PathPrefixvalue: / backendRefs:- name: nginx-v1kind: Serviceport: 80weight: 10- name: nginx-v2kind: Serviceport: 80weight: 90

 backendRefs.weight 定义流量分发的权重。

 2)测试

for i in {1..20}; do curl -H "Host: canary.example.com" http://192.168.40.20:30185/; done;

http://www.dtcms.com/wzjs/782928.html

相关文章:

  • 已有网站做百度推广阜阳哪里做网站
  • 创意福州网站建设做钢材的都用什么网站
  • 网站宽屏图片怎么做网店免费注册
  • ps制作网站过程京东商城网页版
  • 手机网站做桌面快捷方式pc响应式网站设计
  • 自己的ip做网站免费模板网站
  • 精品网站建设多少钱wordpress可注册地址
  • 企业网站开发的目的首次建设网站流程
  • 宁波专业网站营销免费多用户商城系统源码
  • 江西省城乡和住房建设部网站做网页做网站的技术人才
  • 一个网站建设花了10万元在越南做网站需要什么
  • 网站空间需要备案吗网站做qq链接代码
  • 海口网站建设策划wordpress主题授权系统
  • 个人创建微信小程序如何做外贸网站优化推广
  • 做网站的素材包含哪些如何做网站meta设置
  • 自己电脑做服务器建网站闸北网站优化公司
  • 网站试运营重庆seo排名系统运营
  • 门户网站建设工具海文考研培训班2023价格表
  • 网站建设渠道员wordpress 回复某个人
  • wordpress 栏目链接关键词优化排名软件哪家好
  • 可以做网站的行业上海在线
  • 成都 在线 网站建设建立网站用英语
  • 网站无icp备案资源网站后台系统
  • 龙岩做网站的公司网站改版协议
  • 网站 模板下载一套网站源码多少钱
  • 有哪些专门做减肥内容的网站国际本科
  • 网站管理的主要工作有哪些个人备案经营网站备案吗
  • 网站后台登陆密码忘记了做网站网课
  • 厦门网站建设公司名单旅游电子商务网站
  • wordpress全站pjax长沙网络推广公司详细地址