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

惠州 网站建设百度邮箱登录入口

惠州 网站建设,百度邮箱登录入口,辽宁手机版建站系统信息,做网站把自己做死ingress 概念 k8s的对外服务#xff0c;ingress service作用现在两个方面#xff1a; 1、集群内部#xff1a;不断跟踪的变化#xff0c;更新endpoint中的pod对象#xff0c;基于pod的ip地址不断变化的一种服务发现机制。 2、集群外部#xff1a;类似于负载均衡器ingress service作用现在两个方面 1、集群内部不断跟踪的变化更新endpoint中的pod对象基于pod的ip地址不断变化的一种服务发现机制。 2、集群外部类似于负载均衡器把流量ip端口不涉及转发urlhttp https把请求转发到pod当中。 service NodePort: 容器端口-----service端口-----NodePort,设定了nodeport,每个节点都会有一个端口被打开30000-32767 ip端口: 节点ip30000-32767.s实现负载均衡 loadbalancer: 云平台上的一种service服务。云平台提供负载均衡ip地址 extrenal: 域名映射 ingress ingress基于城名进行映射把url(http https)请求转发到service再由service把请求转发到每一个pod. ingress只要一个或者少量的狗官网ip或者LB可以把多个http请求暴露到外网七层反向代理。 service的service是一个基于域名和url路径把一个或多个请求转发到service ingress转发请求七层----service四层----pod ingress的组成 ingress是一个api对象通过yaml文件来进行配置。ingress的作用是定义请求如何转发到service的规则配置模板 ingress通过http和https暴露集群内部的service给service提供一个外部的url负载均衡ssl/tlshttps的能力实现一个基于域名的负载均衡。 ingress-controller 具体的实现反向代理和负载均衡的程序。对ingress定义的规则进行解析根据ingress的配置规则进行请求的转发。 ingress-controller不是k8s自带的组件功能ingress-controller一个统称。 nginx ingress controllertraefik都是ingress-controller开源 ingress资源的定义项 1、定义外部流量的路由规则 2、定义了服务暴露方式主机名、url访问路径和其他属性 3、负载均衡ingress-controller ingress-controller的运行方式是pod方式运行在集群当中 nginx-ingress-controller: ingressbao露服务的方式 1、方式一deploymentLoadBalancer deploymentLoadBalancer模式ingress部署在公有云。会ingress里面会有一个typetypeLoadBalancer。公有云平台会为loadBalancer的service创建一个负载均衡器。绑定一个公网地址。 通过域名指向这个公网地址就可以实现集群对外暴露。 2、方式二DaemonSethostnetworknodeSelector DaemonSet在每个节点都会创建一个pod hostnetworkpod共享节点主机的网络命令空间。容器内直接使用节点主机的ip端口。pod直接访问主机上的的网络资源。 nodeSelector: 根据标签来选择部罢的节点。nginx-ingress-controller部罢的节点。 缺点直接利用节点上的主机的网络和端口一个node只能部署一个ingress-controller pod 比较适合大并发的生产环境性能最好。 为什么适合大并发 pod共享节点主机的网络资源 客户端发起请求域名将先到DNS DNS开始解析域名。映射到ingress-controller所在的节点 ingress-controller以pod形式运行在节点上。hostnetwork可以和节点主机共享网络 ingress的配置来定义URL的地址 根据ingress的标签匹配将请求转发到service service寻找endpoints发现匹配能够转发的pod 最终还是由ingress-controller将请求转发到不同的pod上。实现负载均衡 service和endpoints在这里起发现和监控的总用 实际的负载均衡由ingress-controller实现 master01-- wget https://gitee.com/mirrors/ingress-nginx/raw/nginx-0.30.0/deploy/static/mandatory.yaml 修改mandatory.yaml vim mandatory.yaml 191 #kind: Deployment 192 kind: DaemonSet 200 # replicas: 1 215 hostNetwork: true 220 test1: true每台节点主机都添加nginx-ingress-controller镜像 tar -xf ingree.contro-0.30.0.tar.gz docker load -i ingree.contro-0.30.0.tarmaster01-- kubectal get pod -n ingress-nginxkubectl label nodes node02 ingresstruekubectl apply -f mandatory.yaml在node02做映射 vim nginx.yaml apiVersion: v1 kind: PersistentVolumeClaim metadata:name: nfs-pvc spec:accessModes:- ReadWriteManystorageClassName: nfs-client-storageclassresources:requests:storage: 2Gi--- #定义pod apiVersion: apps/v1 kind: Deployment metadata:name: nginx-applabels:app: nginx1 spec:replicas: 3selector:matchLabels:app: nginx1template:metadata:labels:app: nginx1spec:containers:- name: nginximage: nginx:1.22volumeMounts:- name: nfs-pvcmountPath: /usr/share/nginx/htmlvolumes:- name: nfs-pvcpersistentVolumeClaim:claimName: nfs-pvc--- #定义serviceapiVersion: v1 kind: Service metadata:name: nginx-app-svc spec:ports:- protocol: TCPport: 80targetPort: 80selector:app: nginx1--- #定义ingressapiVersion: networking.k8s.io/v1 kind: Ingress metadata:name: nginx-app-ingress spec:rules:- host: www.test1.comhttp:paths:- path: / #匹配工作目录的根目录pathType: Prefix #根据前缀进行匹配 只要是/开头的都可以匹配到例如/ www.test1.com/www1/www2/www3backend: #指定后台服务器service:name: nginx-app-svcport:number: 80 查看挂载目录--192.168.10.40 echo 123 index.html访问 curl www.test2.com 3、方式三demploymentnodePort master01--- vim mandatory.yaml 191 kind: Deployment 215 #hostNetwork: true 200 replicas: 1 219 kubernetes.io/os: linux 220 #test1: truekubectl apply -f mandatory.yaml wget https://gitee.com/mirrors/ingress-nginx/raw/nginx-0.30.0/deploy/static/provider/baremetal/service-nodeport.yaml #获取service-nodeport.yaml文件 mandatory.yaml  service-nodeport.yaml apiVersion: v1 kind: Service metadata:name: ingress-nginxnamespace: ingress-nginxlabels:app.kubernetes.io/name: ingress-nginxapp.kubernetes.io/part-of: ingress-nginx spec:type: NodePortports:- name: httpport: 80targetPort: 80protocol: TCP- name: httpsport: 443targetPort: 443protocol: TCPselector:app.kubernetes.io/name: ingress-nginxapp.kubernetes.io/part-of: ingress-nginx--- #现在执行这个yaml文件会生成一个service,在ingress-nginx这个命名空间生成一个service,所有的controller的请求都会 #从这个定义的service的nodeport的端口把请求转发到自定义的service的podvim nodeport.yaml apiVersion: v1 kind: PersistentVolumeClaim metadata:name: nfs-pvc2 spec:accessModes:- ReadWriteManystorageClassName: nfs-client-storageclassresources:requests:storage: 2Gi--- apiVersion: apps/v1 kind: Deployment metadata:name: nginx-app2labels:app: nginx2 spec:replicas: 3selector:matchLabels:app: nginx2template:metadata:labels:app: nginx2spec:containers:- name: nginximage: nginx:1.22volumeMounts:- name: nfs-pvc2mountPath: /usr/share/nginx/htmlvolumes:- name: nfs-pvc2persistentVolumeClaim:claimName: nfs-pvc2 --- apiVersion: v1 kind: Service metadata:name: nginx-app-svc1 spec:ports:- protocol: TCPport: 80targetPort: 80selector:app: nginx2 --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata:name: nginx-app-ingress spec:rules:- host: www.test2.comhttp:paths:- path: /pathType: Prefixbackend:service:name: nginx-app-svc1port:number: 80kubectl apply -f nodeport.yaml查看挂载目录--192.168.10.40 echo lyw index.html在node02做映射 访问 curl www.test2.com:31679 nodeport不再是deployment的service创建的 核心的控制组件时nginx-ingress-controller host----ingress的配置找到pod----controller----把请求发到pod nodeport-----controller-----ingress----service----pod nodeport暴露端口的方式是最简单的。nodeport多了一层net(地址转换) 并发量大的对性能会有一定影响。内部都会用nodeport   通过虚拟主机的方式实现http代理 ingress的方式实现一个ingress可以实现不同主机的访问 实验举例 pod1.yaml apiVersion: apps/v1 kind: Deployment metadata:name: deploymentlabels:test: nginx1 spec:replicas: 1selector:matchLabels:test: nginx1template:metadata:labels:test: nginx1spec:containers:- name: nginx1image: nginx:1.22 --- apiVersion: v1 kind: Service metadata:name: svc-1 spec:ports:- port: 80targetPort: 80protocol: TCPselector:test: nginx1pod2.yaml apiVersion: apps/v1 kind: Deployment metadata:name: deployment2labels:test: nginx2 spec:replicas: 1selector:matchLabels:test: nginx2template:metadata:labels:test: nginx2spec:containers:- name: nginx1image: nginx:1.22 --- apiVersion: v1 kind: Service metadata:name: svc-2 spec: ports:- port: 80targetPort: 80protocol: TCPselector: test: nginx2 ingress1-2.yaml apiVersion: networking.k8s.io/v1 kind: Ingress metadata:name: ingress1 spec:rules:- host: www.test1.comhttp:paths:- path: /pathType: Prefixbackend:service:name: svc-1port:number: 80 --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata:name: ingress2 spec:rules:- host: www.test1.comhttp:paths:- path: /pathType: Prefixbackend:service:name: svc-2port:number: 80做映射 kubectl apply -f pod1.yaml kubectl apply -f pod2.yaml kubectl apply -f ingress1-2.yamlcurl www.test1.com:31679 curl www.test2.com:31679 daemonsethostnetworknodeselector实现访问多个主机 实验举例 nginx-service.yaml apiVersion: v1 kind: PersistentVolumeClaim metadata:name: nfs-pvc spec:accessModes:- ReadWriteManystorageClassName: nfs-client-storageclassresources:requests:storage: 2Gi--- apiVersion: apps/v1 kind: Deployment metadata:name: nginx-applabels:app: nginx1 spec:replicas: 1selector:matchLabels:app: nginx1template:metadata:labels:app: nginx1spec:containers:- name: nginximage: nginx:1.22volumeMounts:- name: nfs-pvcmountPath: /usr/share/nginx/htmlvolumes:- name: nfs-pvcpersistentVolumeClaim:claimName: nfs-pvc --- apiVersion: v1 kind: Service metadata:name: nginx-app-svc spec:ports:- protocol: TCPport: 80targetPort: 80selector:app: nginx1 --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata:name: nginx-app-ingress spec:rules:- host: www.test1.comhttp:paths:- path: /pathType: Prefixbackend:service:name: nginx-app-svcport:number: 80nginx-service2.yaml apiVersion: v1 kind: PersistentVolumeClaim metadata:name: nfs-pvc1 spec:accessModes:- ReadWriteManystorageClassName: nfs-client-storageclassresources:requests:storage: 2Gi--- apiVersion: apps/v1 kind: Deployment metadata:name: nginx-app2labels:app: nginx2 spec:replicas: 3selector:matchLabels:app: nginx2template:metadata:labels:app: nginx2spec:containers:- name: nginximage: nginx:1.22volumeMounts:- name: nfs-pvc1mountPath: /usr/share/nginx/htmlvolumes:- name: nfs-pvc1persistentVolumeClaim:claimName: nfs-pvc1 --- apiVersion: v1 kind: Service metadata:name: nginx-app-svc2 spec:ports:- protocol: TCPport: 80targetPort: 80selector:app: nginx2 --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata:name: nginx-app-ingress2 spec:rules:- host: www.test2.comhttp:paths:- path: /pathType: Prefixbackend:service:name: nginx-app-svc2port:number: 80查看挂载目录--192.168.10.40 echo 123 index.html #连个pv都要写index.htmlkubectl apply -f mandatory.yaml kubectl apply -f nginx-service.yaml kubectl apply -f nginx-service2.yaml 总结 ingress-controller两种方式nginx-ingress-controller、traefik ingress-controller的三种工作模式 deploymentloadbalancer需要云平台提供一个负载均衡的公网地址。公有云上做。需要收费 daemonsethostnetworknodeselector一般都会指定节点部署controller。缺点就是和宿主机共享网络只能是一个controller的pod hostnetwork会和宿主机共享网络。所以需要指定标签 deploymentNodePort这是最常用最简单的方式。他会集中一个nodeport端口所有ingress的请求都会转发到nodeport。然后由service将流量转发到pod 一个ingress的nodeport可以实现访问多个虚拟主机。和nginx类似。同一个端口下可以有多个域名
http://www.zqtcl.cn/news/474742/

相关文章:

  • 网站开发模版宁波网
  • 以鹦鹉做头像的网站wordpress post是什么
  • 公司怎么建立自己网站做网站需要编码吗
  • 网站域名根目录在哪里wordpress做跟随导航导航
  • 昆明网站建站推广it外包工作怎么样
  • 上海长宁网站建设公司WordPress 采集文章 图片
  • 紫色 网站网络设计的最后一个步骤是
  • 广东省建设安全卡查询网站网站开发需要的语言
  • 网站的建设需要考虑什么问题投放广告的网站
  • 雅虎提交网站入口常州哪家做网站好
  • 哪些网站是503错误代码太原搭建网站的公司
  • 网站建设公司需要有什么东西凡科建站seo
  • 荷泽网站建设买链接做网站 利润高吗
  • 网站嵌套代码网络营销与策划实训
  • 网上做环评立项的网站是哪个网站开发是前端吗
  • 公司网站可以自己建立吗前端网站开发教程
  • 淘宝客导购网站营销推广软件有哪些
  • 专做写字楼出租的网站建设银行北京招聘网站
  • 龙华观澜网站建设酒店网站建设策划
  • 淄博网站排名做版权保护的网站
  • 专业轻电商网站建设公司新闻发布的网站
  • 设计型网站营销存在的问题及改进
  • 南通建设企业网站wordpress 位置地图
  • 无锡本地网站有哪些手机拍摄720全景软件
  • 泉州晋江网站建设费用东莞市住房和城乡建设局门户网站
  • 苏州网站建设哪家便宜平谷手机网站设计
  • 建设项目一次公示网站嘉兴新站seo外包
  • 电子商务网站模板 html专业网站建设服务报价
  • 网页设计和网站建设的区别研发一款app要多少钱
  • seo网站建设方案建个企业网站需要多少钱