机械制造基础 课件项目8 部署Ingress服务_第1页
机械制造基础 课件项目8 部署Ingress服务_第2页
机械制造基础 课件项目8 部署Ingress服务_第3页
机械制造基础 课件项目8 部署Ingress服务_第4页
机械制造基础 课件项目8 部署Ingress服务_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

教材项目8部署Ingress服务目录CONTENTS1Ingress的作用2Ingress的组成3Ingress的配置和使用任务1理解Ingress的作用8.1.1理解Ingress的作用任务实施

集群外部常用访问方式为了使外部的应用能够访问集群内的服务,在Kubernetes目前提供了以下几种方案:NodePort

创建NodePort类型的Service可以实现从集群外部访问内部,采用

NodePort

方式暴露服务面临问题是,服务一旦多起来,NodePort

在每个节点上开启的端口会及其庞大,而且难以维护,而且开启端口多了以后,会面临安全隐患。LoadBalancerLoadBalance方式受限于云平台,且通常在云平台部署ELB还需要额外的费用。Ingress

Ingress是集群外部访问服务最多的方式,也是在生产环境下经常使用的方式。Ingress的组成Ingress由Ingress资源对象和IngressController组成,两者作用如下:1.Ingress资源对象Ingress资源对象是反向代理规则,用来规定HTTP/HTTPS的外部请求应该被转发到的Service,如根据请求中不同的Host和Url路径请求到不同Service上。2.IngressControllerIngressController是一个反向代理程序,它负责解析Ingress的反向代理规则,如果Ingress有增删改的变动,所有的IngressController都会及时更新自己相应的转发规则,当IngressController收到请求后就会根据这些规则将请求转发到对应的Service。简单讲就是Ingress资源对象定义访问规则,IngressController实现访问规则。Ingress的实现原理首先由Ingress资源对象定义规则,即哪些域名访问哪些集群Service。2.Ingresscontroller通过与Kubernetesapi进行交互,动态的读取集群中Ingress资源对象定义的规则,按照这个规则,生成一段nginx配置,再写到nginx-ingress-controller的pod里,这个Ingresscontroller的pod里运行着一个Nginx服务,控制器会把生成的nginx配置写入/etc/nginx.conf文件中,然后reload一下使配置生效,实现动态更新。Ingress访问架构图1.七层访问与四层访问的区别如图8-2所示,ingresscontroller读取ingress的配置,然后实现不同的域名访问不同的集群内部Service,进而实现访问Service匹配的每个Pod资源,在internet和ingresscontroller之间配置ingress-nginxservice的作用是通过NodePort的方式暴露ingresscontroller的Pod服务,这样无论域名对应的是集群的哪个IP地址,都可以访问到后端的Pod服务了。(1)七层访问当代理服务器收到请求时,首先将报文拆开至应用层,分析用户请求的资源,然后代替用户请求后端服务器的资源,这样就可以实现根据不同的域名、URL、加密证书等信息实现转发请求。(2)四层访问会把请求报文拆开至传输层,根据请求的服务器的IP加端口号进行转发,四层代理是由后端服务器进行处理,包括报文的封装都是后端服务器进行封装。2.Ingress实现的七层访问架构图Ingress实现外部域名访问的架构如图8-2所示。图8-2Ingress外部访问架构图ingresscontroller目前主要有两种,分别是基于nginx服务的ingresscontroller和基于traefik的ingresscontroller,其中traefik的ingresscontroller,目前支持http和https协议。由于对nginx比较熟悉,而且需要使用TCP负载,所以选择基于nginx服务的ingresscontroller。8.1.2部署Ingress-Nginx控制器实现http访问

部署Ingress-Nginx控制器1.下载Ingress-Nginx控制器镜像和yaml脚本(1)下载镜像可以通过dockerhub网站下载Ingress-Nginx的镜像,这里已经下载到了本地,只需上传到k8s系统节点上即可,这里将nginx-ingress.tar镜像上传到node1节点,并使用dockerload命令加载到镜像中(2)下载yaml脚本同样可以在github等网站下载运行nginx-ingress-controller控制器的脚本,这里已经提前下载好,上传到master节点即可。在集群中需要部署多个Web服务,每个Web服务都是一个公司的网站,这就要求每个Web服务都要有自己的持久化数据存储,这里使用PV和PVC实现。(3)修改脚本创建控制器服务使用yaml脚本创建控制器Pod

配置Ingress规则1.构建Web服务在yaml目录下创建文件httpd.yaml2.创建Ingress资源对象创建Ingress的目的就是使用一个域名对应到service服务,然后通过这个域名房访问集群内的service,进而访问每个Pod容器服务,在yaml目录下,创建一个文件ingress.yaml3.检查配置结果在windows中,修改C:\Windows\System32\drivers\etc下的hosts本地域名解析文件,加入一行4.为nginx-ingress控制器创建NodePortService8.1.3配置https实现安全访问在8.1.2中实现了使用ingress-nginx为后端pod提供统一的入口,但有个问题需要考虑,就是如何为pod配置CA证书来实现HTTPS访问,如果在每个pod中配置CA需要太多的重复性操作,而且po是随时可能被kubelet杀掉重新创建的,当然这些问题有很多解决方法,如直接将CA配置到镜像中,但是这样又需要很多个CA证书。解决的方法是在ingress规则,为域名配置CA证书,只要可以通过HTTPS访问到域名,至于这个域名是怎么关联到后端提供服务的pod,这就是属于k8s群集内部的通信了,即便使用http来通信,也是可以接受的。生成证书和私匙创建Secret存储证书和私匙修改Ingress配置检查配置结果任务2配置虚拟主机8.2.1基于目录访问发布多站点1.下载镜像2.创建部署tomcat服务的控制器3.创建控制器,检查结果

创建tomcat应用

配置基于目录

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论