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

如何建立一个网站平台广州开发区人才交流服务中心

如何建立一个网站平台,广州开发区人才交流服务中心,开发公司绩效指标,专业的个人网站建设哪家k8s ingress (二) Ingress介绍 在前面课程中已经提到#xff0c;Service对集群之外暴露服务的主要方式有两种#xff1a;NodePort和LoadBalancer#xff0c;但是这两种方式#xff0c;都有一定的缺点#xff1a; NodePort方式的缺点是会占用很多集群机器的端口#xff0…k8s ingress (二) Ingress介绍 在前面课程中已经提到Service对集群之外暴露服务的主要方式有两种NodePort和LoadBalancer但是这两种方式都有一定的缺点 NodePort方式的缺点是会占用很多集群机器的端口那么当集群服务变多的时候这个缺点就愈发明显 LB方式的缺点是每个service需要一个LB浪费、麻烦并且需要kubernetes之外的设备的支持。 基于这种现状kubernetes提供了Ingress资源对象Ingress只需要一个NodePort或者一个LB就可以满足暴露多个Service的需求。工作机制大致如下图表示 实际上Ingress相当于一个7层的负载均衡器是kubernetes对反向代理的一个抽象它的工作原理类似于Nginx,可以理解成在Ingress里建立诸多映射规则Ingress Controller通过监听这些配置规则并转化成Nginx的配置然后对外部提供服务。在这里有两个核心概念 ingresskubernetes中的一个对象作用就定义请求如何转发到service的规则 ingress controller具体实现发向代理及负载均衡的程序对ingress定义的规则进行解析根据配置的规则来实现请求转发实现方式有很多比如Nginx、Contour、Haproxy等等。 Ingress以Nginx为例的工作原理如下 用户编写Ingress规则说明哪个域名对应kubernetes集群中欧冠的哪个Service Ingress控制器动态感知Ingress服务规则的变化然后生成一段对应的Nginx配置 Ingress控制器会将生成的Nginx配置写入到一个运行着Nginx服务中并动态更新 到此为止其实真正在工作的就是Nginx了内部配置了用户定义的请求转发规则 Ingress 环境准备 在ELB下的监听器中可以通过监听器协议和端口来判断是4层还是7层的。 如果监听器协议是TCP或UDP那么该监听器是4层的。这种监听器只能根据目标端口将流量转发到后端实例不能对流量进行任何处理。 如果监听器协议是HTTP或HTTPS那么该监听器是7层的。这种监听器可以根据请求的URL、HTTP头部等信息对流量进行处理并将流量转发到后端实例。 此外还可以通过监听器端口来判断是4层还是7层的。如果监听器端口是80或443那么该监听器是7层的如果监听器端口是其他端口那么该监听器是4层的 Ingress 的使用 Ingress 环境准备 # 创建文件夹 [rootmaster ~]# mkdir ingress-controller [rootmaster ~]# cd ingress-controller/ # 获取ingress-nginx,本次案例使用的是0.30版本 [root#master ingress-controller]# wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/nginx-0.30.0/deploy/static/mandatory.yaml [root#master ingress-controller]# wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/nginx-0.30.0/deploy/static/provider/baremetal/service-nodeport.yaml # 修改mandatory.yaml文件中的仓库(本人实验不需要修改也可以) # 修改quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.30.0 # 为quay-mirror.qiniu.com/kubernetes-ingress-controller/nginx-ingress-controller:0.30.0 # 创建ingress-nginx [rootmaster ingress-controller]# kubectl apply -f ./ # 查看ingress-nginx [rootmaster ingress-controller]# kubectl get pod -n ingress-nginx NAME                                                                           READY    STATUS         RESTARTS             AGE pod/nginx-ingress-controller-fbf967dd5-4qpbp    1/1         Running        0                            12h # 查看service [rootmaster ingress-controller]# kubectl get svc -n ingress-nginx NAME                   TYPE             CLUSTER-IP          EXTERNAL-IP PORT(S)                                     AGE ingress-nginx NodePort      10.98.75.163  none         80:32240/TCP,443:31335/TCP    11h 准备service和pod 为了后面的实验比较方便创建如下图所示的模型 创建tomcat-nginx.yaml apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment  namespace: dev spec: replicas: 3  selector:    matchLabels: app: nginx-pod  template: metadata:   labels:     app: nginx-pod spec:   containers:      - name: nginx        image: nginx:1.17.1        ports:        - containerPort: 80 --- apiVersion: apps/v1 kind: Deployment metadata: name: tomat-deployment  namespace: dev spec:  replicas: 3  selector:    matchLabels:      app: tomcat-pod  template:    metadata:      labels:        app: tomcat-pod    spec:      containers:      - name: tomcat        image: tomcat:8.5-jre10-slim        ports:        - containerPort: 8080 --- apiVersion: v1 kind: Service metadata:  name: nginx-service  namespace: dev spec:  selector:    app: nginx-pod  clusterIP: None  type: ClusterIP  ports:  - port: 80    targetPort: 80 --- apiVersion: v1 kind: Service metadata:  name: tomcat-service  namespace: dev spec:  selector: app: tomcat-pod  clusterIP: None  type: ClusterIP  ports:  - port: 8080    targetPort: 8080 # 创建[rootmaster ~]# kubectl create -f tomcat-nginx.yaml # 查看 [rootmaster ~]# kubectl get svc -n dev NAME                          TYPE                    CLUSTER-IP                 EXTERNAL-IP        PORT(S)         AGE nginx-service       ClusterIP        None                           none                80/TCP          48s tomcat-service            ClusterIP        None                           none                8080/TCP      48s Http代理 创建ingress-http.yaml apiVersion: extensions/v1beta1 kind: Ingress metadata:  name: ingress-http  namespace: dev spec:  rules:  - host: nginx.itheima.com    http:      paths:      - path: /        backend:          serviceName: nginx-service          servicePort: 80  - host: tomcat.itheima.com    http:      paths:      - path: /        backend:          serviceName: tomcat-service          servicePort: 8080 # 创建 [rootmaster ~]# kubectl create -f ingress-http.yaml ingress.extensions/ingress-http created # 查看 [rootmaster ~]# kubectl get ing ingress-http -n dev NAME                   HOSTS                                                    ADDRESS                     PORTS           AGE ingress-http  nginx.itheima.com,tomcat.itheima.com                          80                 22s # 查看详情 [rootmaster ~]# kubectl describe ing ingress-http -n dev ... Rules: Host                     Path backends ----                            ----       -------- nginx.itheima.com /             nginx-service:80(10.244.1.96:80,10.244.1.97:80,10.244.2.112.80) tomcat.itheima.com     /             tomcat-service:8080(10.244.1.94:8080,10.244.1.95:8080,10.244.2.111.8080) # 接下来在本地电脑配置host文件解析上面的两个域名到192.168.109.100(master)上 # 然后就可以分别访问tomcat.itheima.com:32240 和nginx.itheima.com:32240 查看效果了 Https代理 创建证书 # 生成证书 openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -keyout tls.key -out tls.crt -subj /CCN/STBJ/LBJ/0nginx/CNitheima.com # 创建密钥 kubectl create secret tls tls-secret --key tls.key --cert tls.crt 创建ingress-https.yaml 文件 apiVersion: extensions/v1beta1 kind: Ingress metadata: name: ingress-https namespace: dev spec: tls: - hosts: - nginx.itheima.com - tomcat.itheima.com secretName: tls-secret # 指定秘钥 rules: - host: nginx.itheima.com http: paths: - path: / backend: serviceName: nginx-service servicePort: 80 - host: tomcat.itheima.com http: paths: - path: / backend: serviceName: tomcat-service servicePort: 8080 # 创建 inress [rootmaster ~]# kubectl create -f ingress-https.yaml ingress.extensions/ingress-https created # 查看 [rootmaster ~]# kubectl get ing ingress-https -n dev NAME                   HOSTS                                                           ADDRESS                     PORTS    AGE ingress-https nginx.itheima.com,tomcat.itheima.com     10.104.184.38 80, 443       2m42s # 查看详情 [rootmaster ~]# kubectl describe ing ingress-https -n dev ... TLS: tls-secret terminates nginx.itheima.com,tomcat.itheima.com Rules: Host                     Path backends ----                            ----       -------- nginx.itheima.com /             nginx-service:80(10.244.1.97:80,10.244.1.98:80,10.244.2.119.80) tomcat.itheima.com     /             tomcat-service:8080(10.244.1.99:8080,10.244.2.117:8080,10.244.2.120.8080) # 下面可以通过浏览器访问https://nginx.itheima.com:31335 和 https://tomcat.itheima.com:31335来查看了
http://www.dnsts.com.cn/news/93138.html

相关文章:

  • 国外摄影网站云南省科技网站
  • 移动4G网站建设企业电话
  • 外贸企业网站制作哪家好漫画网站建设教程视频
  • 合肥seo网站管理企业官方网站建设的流程
  • 建站之星网站什么网站可以做拍a发布会
  • 专业做卖菜的网站天汇大厦网站建设公司
  • 报考大专网站肇庆用reset插件 复位WordPress
  • 网站建设的目的定位盈利模式和功能福鼎建设局网站
  • 全国学校网站建设163网易企业邮箱格式
  • 分类信息网站平台的推广企业做网站的注意事项
  • 淘宝做代销在哪个网站上进货比较好网站做百度推广需要什么材料
  • 我要下载中国建设网站聊城正规网站建设设计公司
  • 定制网站建设济南网站开发后端作用
  • 北京个人网站设计wordpress分享插件积分
  • 鉴定手表网站2008服务器做网站
  • 做网站代刷能赚多少钱关键词网站建设公司
  • 1000套网站源码嘉兴网站建设wmcn
  • 青岛网站建设培训学校网站服务器租用怎么购买
  • 搭建网站手机软件网站关键词快照优化
  • 巴中微网站建设高校校园网站建设项目的要求
  • 烟台网站建设地址文化企业网站模板
  • 腾讯风铃怎么建设网站深圳高端设计公司有哪些
  • 凡科网站建设之后怎么删除重庆平台网站建设工作
  • 长春做网站seo的下载中国建设银行app
  • 网站建设的活怎么接东莞建设工程交易中心门户网站
  • 网站开发需要掌握哪些技术做地产的设计网站
  • 做游戏网站的背景图片做论坛网站时应该注意什么
  • 侨联网站建设方案宁波定制网站建设
  • 坪山网站建设行情外贸服装接单网站
  • 台州手机网站建设隐私空间