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

jsp网站开发实例与发布磐安县建设局网站

jsp网站开发实例与发布,磐安县建设局网站,广州网站优化排名,住建厅官方网一、先来介绍下Ingress Ingress 这个东西是 1.2 后才出现的#xff0c;通过 Ingress 用户可以实现使用 nginx 等开源的反向代理负载均衡器实现对外暴露服务#xff0c;以下详细说一下 Ingress#xff0c;毕竟 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 等变化比如新增和减少 podservice 增加与减少等当得到这些变化信息后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-typeinternal traffic-typeexternal 已经从大体上搞懂了 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 --namespacemonitoring# 创建ingress cat prometheus-ingress.yamlEOF apiVersion: extensions/v1beta1 kind: Ingress metadata:name: prometheus-dashboardnamespace: monitoringannotations:kubernetes.io/ingress.class: traefikingress.kubernetes.io/auth-type: basicingress.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/healthlivenessProbe: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.dnsts.com.cn/news/160016.html

相关文章:

  • 5000多一年的网站建站曼朗策划网站建设
  • 做网站策划用什么软件微网站怎么开通
  • 英文网站名需要斜体吗网站如何备份
  • 婚纱网站建设目的设计师培训多久
  • 出国做博后关注哪些网站合肥网站制作培训
  • 珠海企业建站茶叶公司网站模板
  • 九江做网站asp.net网站支持多国语言
  • 百度合作的网盟网站国内优秀网页网站
  • 网站开发 chrome gimp省运会官方网站建设
  • 广州网站建设技术莱芜网络公司网站
  • 网站建设属于软件开发wordpress 自动摘要
  • 网址导航网站如何做网站投放广告赚钱吗
  • 网站发外链淮北网站建设推广
  • 中英文网站建设价格邢台专业网站建设价格
  • 网站建设要用H5的缺点求推荐个网站
  • 网站建设步骤及分工开小加工厂去哪接单子
  • asp.net网站开发视频安全员考试报名入口官网
  • 网站模板下载好之后如何安装阿里巴巴国际网站官网
  • 用ps做网站页面商丘网站制作推广
  • 做网站建wordpress外观主题制作
  • 网站建设实验代码网站建设 风险说明书
  • 网站的记住密码功能怎么做业务型网站首页
  • 建设网站有哪些好处推广网站有哪些方式
  • 凡科网网站后台建设怎么创建自己公司的网站
  • 北京国贸网站建设杭州网站外包公司
  • 深圳好的网站制作哪家快快速提高网站关键词排名优化
  • 汉阳网站建设鄂icp网站建设创新
  • 云南建投第七建设有限公司网站在线生成logo设计
  • 增城网站建设价格外贸网站APP
  • 用地方别名做网站名制作网站技术