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

用java怎么做购物网站网络营销百度百科

用java怎么做购物网站,网络营销百度百科,网站换行代码,wordpress批量审核一、先来介绍下Ingress Ingress 这个东西是 1.2 后才出现的,通过 Ingress 用户可以实现使用 nginx 等开源的反向代理负载均衡器实现对外暴露服务,以下详细说一下 Ingress,毕竟 traefik 用的就是 Ingress 使用 Ingress 时一般会有三个组件: …

一、先来介绍下Ingress

Ingress 这个东西是 1.2 后才出现的,通过 Ingress 用户可以实现使用 nginx 等开源的反向代理负载均衡器实现对外暴露服务,以下详细说一下 Ingress,毕竟 traefik 用的就是 Ingress

使用 Ingress 时一般会有三个组件:

反向代理负载均衡器
Ingress Controller
Ingress

1.1、反向代理负载均衡器

反向代理负载均衡器很简单,说白了就是 nginx、apache 什么的;在集群中反向代理负载均衡器可以自由部署,可以使用 Replication Controller、Deployment、DaemonSet 等等,不过个人喜欢以 DaemonSet 的方式部署,感觉比较方便

1.2、Ingress Controller

Ingress Controller 实质上可以理解为是个监视器,Ingress Controller 通过不断地跟 kubernetes API 打交道,实时的感知后端 service、pod 等变化,比如新增和减少 pod,service 增加与减少等;当得到这些变化信息后,Ingress Controller 再结合下文的 Ingress 生成配置,然后更新反向代理负载均衡器,并刷新其配置,达到服务发现的作用

1.3、Ingress

Ingress 简单理解就是个规则定义;比如说某个域名对应某个 service,即当某个域名的请求进来时转发给某个 service;这个规则将与 Ingress Controller 结合,然后 Ingress Controller 将其动态写入到负载均衡器配置中,从而实现整体的服务发现和负载均衡

有点懵逼,那就看图

从上图中可以很清晰的看到,实际上请求进来还是被负载均衡器拦截,比如 nginx,然后 Ingress Controller 通过跟 Ingress 交互得知某个域名对应哪个 service,再通过跟 kubernetes API 交互得知 service 地址等信息;综合以后生成配置文件实时写入负载均衡器,然后负载均衡器 reload 该规则便可实现服务发现,即动态映射

了解了以上内容以后,这也就很好的说明了我为什么喜欢把负载均衡器部署为 Daemon Set;因为无论如何请求首先是被负载均衡器拦截的,所以在每个 node 上都部署一下,同时 hostport 方式监听 80 端口;那么就解决了其他方式部署不确定 负载均衡器在哪的问题,同时访问每个 node 的 80 都能正确解析请求;如果前端再 放个 nginx 就又实现了一层负载均衡

二、Traefik 使用

由于微服务架构以及 Docker 技术和 kubernetes 编排工具最近几年才开始逐渐流行,所以一开始的反向代理服务器比如 nginx、apache 并未提供其支持,毕竟他们也不是先知;所以才会出现 Ingress Controller 这种东西来做 kubernetes 和前端负载均衡器如 nginx 之间做衔接;即 Ingress Controller 的存在就是为了能跟 kubernetes 交互,又能写 nginx 配置,还能 reload 它,这是一种折中方案;而最近开始出现的 traefik 天生就是提供了对 kubernetes 的支持,也就是说 traefik 本身就能跟 kubernetes API 交互,感知后端变化,因此可以得知: 在使用 traefik 时,Ingress Controller 已经无卵用了,所以整体架构如下

关于traefik 简介:

traefik 是一个前端负载均衡器,对于微服务架构尤其是 kubernetes 等编排工具具有良好的支持;

同 nginx 等相比,traefik 能够自动感知后端容器变化,从而实现自动服务发现。

traefik部署在k8s上分为daemonset和deployment两种方式各有优缺点:

daemonset 能确定有哪些node在运行traefik,所以可以确定的知道后端ip,但是不能方便的伸缩
deployment 可以更方便的伸缩,但是不能确定有哪些node在运行traefik所以不能确定的知道后端ip
一般部署两种不同类型的traefik:

面向内部(internal)服务的traefik,建议可以使用deployment的方式
面向外部(external)服务的traefik,建议可以使用daemonset的方式
建议使用traffic-type标签

traffic-type: external
traffic-type: internal
traefik相应地使用labelSelector

traffic-type=internal
traffic-type=external
已经从大体上搞懂了 Ingress 和 traefik,那么部署起来就很简单

安装traefik

下载traefik-1.7.34地址:https://download.csdn.net/download/weixin_45623111/89045897

mkdir traefik && cd traefik
wget https://gitee.com/mirrors/traefik/tree/v1.7/examples/k8s/traefik-rbac.yaml# 配置rbac
kubectl apply -f traefik-rbac.yaml# 以下两种方式选择一个
# 80 提供正常服务,8080 是其自带的 UI 界面# 以daemonset方式启动traefik
# 会在所有node节点启动一个traefik并监听在80端口
# master节点不会启动traefik
wget https://gitee.com/mirrors/traefik/tree/v1.7/examples/k8s/traefik-ds.yaml
kubectl apply -f traefik-ds.yaml# 以deployment方式启动traefik
wget https://gitee.com/mirrors/traefik/tree/v1.7/examples/k8s/traefik-deployment.yaml
kubectl apply -f traefik-deployment.yaml# 查看状态
kubectl get pods -n kube-system# 访问测试,如果有响应说明安装正确
# 应该返回404
# 如果以daemonset方式启动traefik使用如下方式验证
# 11.11.11.112为任何一个node节点的ip
curl 11.11.11.112# 如果以deployment方式启动traefik
# 访问node:nodeport或者集群ip验证
部署Træfik Web UI
wget https://gitee.com/mirrors/traefik/tree/v1.7/examples/k8s/ui.yaml
kubectl apply -f ui.yaml# 访问webui
# 需要先配置host
# 11.11.11.112为任何一个node节点的ip
11.11.11.112 traefik-ui.minikube# 浏览器访问如下地址
http://traefik-ui.minikube/
使用basic验证
# 生成加密密码,如果没有安装htpasswd可以在线生成
# https://tool.lu/htpasswd/
htpasswd -c ./auth myusername
cat auth
myusername:$apr1$78Jyn/1K$ERHKVRPPlzAX8eBtLuvRZ0# 从密码文件创建secret
# monitoring必须和ingress rule处于同一个namespace 
kubectl create secret generic mysecret --from-file auth --namespace=monitoring# 创建ingress
cat >prometheus-ingress.yaml<<EOF
apiVersion: extensions/v1beta1
kind: Ingress
metadata:name: prometheus-dashboardnamespace: monitoringannotations:kubernetes.io/ingress.class: traefikingress.kubernetes.io/auth-type: "basic"ingress.kubernetes.io/auth-secret: "mysecret"
spec:rules:- host: dashboard.prometheus.example.comhttp:paths:- backend:serviceName: prometheusservicePort: 9090
EOFkubectl create -f prometheus-ingress.yaml -n monitoring
官方实例
1. 根据域名(host)路由
# deployment
wget https://gitee.com/mirrors/traefik/tree/v1.7/examples/k8s/cheese-deployments.yaml
kubectl apply -f cheese-deployments.yaml# service
wget https://gitee.com/mirrors/traefik/tree/v1.7/examples/k8s/cheese-services.yaml
kubectl apply -f cheese-services.yaml# ingress
wget https://gitee.com/mirrors/traefik/tree/v1.7/examples/k8s/cheese-ingress.yaml
kubectl apply -f cheese-ingress.yaml# 查看状态
kubectl get pods
kubectl get svc
kubectl get ingress# 测试
# 配置hosts
11.11.11.112 stilton.minikube cheddar.minikube wensleydale.minikube# 浏览器访问测试
http://stilton.minikube/
http://cheddar.minikube/
http://wensleydale.minikube/
2. 根据路径(path)路由
# 使用新的ingress
wget https://gitee.com/mirrors/traefik/tree/v1.7/examples/k8s/cheeses-ingress.yaml
kubectl apply -f cheeses-ingress.yaml# 测试
# 配置hosts
11.11.11.112 cheeses.minikube# 浏览器访问测试
http://cheeses.minikube/stilton/
http://cheeses.minikube/cheddar/
http://cheeses.minikube/wensleydale/
3. 指定路由优先级
apiVersion: extensions/v1beta1
kind: Ingress
metadata:name: wildcard-cheesesannotations:traefik.frontend.priority: "1"
spec:rules:- host: *.minikubehttp:paths:- path: /backend:serviceName: stiltonservicePort: httpkind: Ingress
metadata:name: specific-cheesesannotations:traefik.frontend.priority: "2"
spec:rules:- host: specific.minikubehttp:paths:- path: /backend:serviceName: stiltonservicePort: http
部署 Traefik UI

traefik 本身还提供了一套 UI 供我们使用,其同样以 Ingress 方式暴露,只需要创建一下即可

kubectl create -f ui.yaml# ui yaml 如下
---
apiVersion: v1
kind: Service
metadata:name: traefik-web-uinamespace: kube-system
spec:selector:k8s-app: traefik-ingress-lbports:- name: webport: 80targetPort: 8580
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:name: traefik-web-uinamespace: kube-system
spec:rules:- host: traefik-ui.localhttp:paths:- path: /backend:serviceName: traefik-web-uiservicePort: web
2.1、访问测试

都创建无误以后,只需要将待测试的域名解析到任意一台 node 上即可,页面就不截图了,截图就暴露了…..下面来两张 ui 的

2.2、健康检查 

关于健康检查,测试可以使用 kubernetes 的 Liveness Probe 实现,如果 Liveness Probe检查失败,则 traefik 会自动移除该 pod,以下是一个 示例test 的 deployment,健康检查方式是 cat /tmp/health,容器启动 2 分钟后会删掉这个文件,模拟健康检查失败

apiVersion: v1
kind: Deployment
apiVersion: extensions/v1beta1
metadata:name: testnamespace: defaultlabels:test: alpine
spec:replicas: 1selector:matchLabels:test: alpinetemplate:metadata:labels:test: alpinename: testspec:containers:- image: mritd/alpine:3.4name: alpineresources:limits:cpu: 200mmemory: 30Mirequests:cpu: 100mmemory: 20Miports:- name: httpcontainerPort: 80args:command:- "bash"- "-c"- "echo ok > /tmp/health;sleep 120;rm -f /tmp/health"livenessProbe:exec:command:- cat- /tmp/healthinitialDelaySeconds: 20

test 的 service

apiVersion: v1
kind: Service
metadata:name: test labels:name: test
spec:ports:- port: 8123targetPort: 80selector:name: test

test 的 Ingress

apiVersion: extensions/v1beta1
kind: Ingress
metadata:name: test
spec:rules:- host: test.comhttp:paths:- path: /backend:serviceName: testservicePort: 8123

全部创建好以后,进入 traefik ui 界面,可以观察到每隔 2 分钟健康检查失败后,kubernetes 重建 pod,同时 traefik 会从后端列表中移除这个 pod。

http://www.dt0577.cn/news/57303.html

相关文章:

  • 有关电商网站开发的参考文献百度优化培训
  • 做网站要备案什么软件可以弄排名
  • 夜间正能量网站入口网址不用下载福州外包seo公司
  • 网站开发 有哪些优化功能郑州seo竞价
  • 温州苍南网站建设seo分析是什么意思
  • 腾讯网页游戏排行榜优化大师官网
  • 淘宝客网站域名域名比价网
  • 网站制作公司 深圳行业关键词一览表
  • 多商家商城seo解释
  • 京东内部券网站怎么做郑州靠谱seo整站优化
  • 石景山区公司网站建设企业网搭建
  • 返利网站 帐如何做乔拓云智能建站平台
  • asp+sql server典型网站建设案例平台推广网站
  • 2019销售网站开发与设计现状网站关键词快速优化
  • 苹果CMS如何做视频网站西安网站建设网络推广
  • app运营专员谷歌seo是指什么意思
  • 网站 展示板腾讯中国联通
  • 湖北省建设工程质量检测监管平台北京企业网站seo平台
  • 农村pc网站开发超级外链自动发布工具
  • 网站建设q-9杭州关键词自动排名
  • 本地企业网站建设服务友情链接网站源码
  • wordpress下载模板优化搜索引擎
  • 十大网站建立公司潍坊网站外包
  • 企业信用信息网公示网官网查询seo搜索引擎优化内容
  • 黄石有哪些做视觉网站的公司seo优化一般多少钱
  • wordpress 下载模板站天津百度网站排名优化
  • 游戏网站开发有限公司如何快速提升网站关键词排名
  • 网站设计语言有哪些百度站长工具验证
  • 书籍管理网站建设需求文档扬州seo
  • 商城小程序搭建seo关键词平台