文章目录

  • 1.部署ingress服务
  • 2.更改为DaemonSet控制器利用本地端口直接访问
  • 3.实现会话保持
  • 4.Ingress TLS 配置


一种全局的、为了代理不同后端 Service 而设置的负载均衡服务,就是 Kubernetes 里的 Ingress 服务。
• Ingress由两部分组成:Ingress controller和Ingress服务。
• Ingress Controller 会根据你定义的 Ingress 对象,提供对应的代理能力。业界常用的各种 反向代理项目,比如 Nginx、HAProxy、Envoy、Traefik 等,都已经为Kubernetes 专门维 护了对应的 Ingress Controller。

ingress 默认文件大小 ingress类型_nginx

1.部署ingress服务

下载ingress-nginx文件

ingress 默认文件大小 ingress类型_私有仓库_02


查看ingress-nginx文件需要的镜像并将其镜像名称修改为私有仓库里的名字

ingress 默认文件大小 ingress类型_ingress 默认文件大小_03


ingress 默认文件大小 ingress类型_私有仓库_04


ingress 默认文件大小 ingress类型_直接访问_05


ingress 默认文件大小 ingress类型_ingress 默认文件大小_06


然后在私有仓库里search镜像拉取贴标签并推送即成功。

注:也可将其下载好直接导入:

直接下载好的镜像要将其镜像名和ingress-nginx文件里的镜像名一致

ingress 默认文件大小 ingress类型_ingress 默认文件大小_07


ingress 默认文件大小 ingress类型_私有仓库_08


ingress 默认文件大小 ingress类型_ingress 默认文件大小_09


运行:

ingress 默认文件大小 ingress类型_直接访问_10


文件里创建了一个空间,而事实也发现多了一个ingress-nginx命名空间:

ingress 默认文件大小 ingress类型_私有仓库_11


查看pod需要指定namespace

ingress 默认文件大小 ingress类型_私有仓库_12


ingress 默认文件大小 ingress类型_ingress 默认文件大小_13


得出暴露的80对应的端口:

ingress 默认文件大小 ingress类型_ingress 默认文件大小_14


发现可以访问只是404:

ingress 默认文件大小 ingress类型_ingress 默认文件大小_15


创建ingress服务以便实现复制均衡:

当 访问www1.westos.org时负载到myservice上:

ingress 默认文件大小 ingress类型_ingress 默认文件大小_16


得出ingress和暴露端口

ingress 默认文件大小 ingress类型_nginx_17


添加解析

ingress 默认文件大小 ingress类型_nginx_18

ingress 默认文件大小 ingress类型_ingress 默认文件大小_19


访问:

ingress 默认文件大小 ingress类型_私有仓库_20


进入pod内部查看自动添加www1.westos.org域名解析:

ingress 默认文件大小 ingress类型_私有仓库_21


ingress 默认文件大小 ingress类型_nginx_22


为了进一步说明自动会添加解析,先添加www2.westos.org:

创建两个service:

ingress 默认文件大小 ingress类型_ingress 默认文件大小_23


ingress 默认文件大小 ingress类型_nginx_24


ingress 默认文件大小 ingress类型_nginx_25


ingress 默认文件大小 ingress类型_ingress 默认文件大小_26


添加两个控制器给myservice2添加pod:

ingress 默认文件大小 ingress类型_私有仓库_27


ingress 默认文件大小 ingress类型_直接访问_28


ingress 默认文件大小 ingress类型_直接访问_29


查看是否成功创建:

ingress 默认文件大小 ingress类型_ingress 默认文件大小_30


添加ingress服务

ingress 默认文件大小 ingress类型_ingress 默认文件大小_31


ingress 默认文件大小 ingress类型_直接访问_32


添加www2.westos.org的解析

ingress 默认文件大小 ingress类型_ingress 默认文件大小_33


访问成功

ingress 默认文件大小 ingress类型_直接访问_34


同样也自动创建了www2.westos.org:

ingress 默认文件大小 ingress类型_nginx_35


ingress 默认文件大小 ingress类型_ingress 默认文件大小_36

2.更改为DaemonSet控制器利用本地端口直接访问

用DaemonSet结合nodeselector来部署ingress-controller到特定的node上,然后使用 HostNetwork直接把该pod与宿主机node的网络打通,直接使用宿主机的80/433端口就能访 问服务。 
• 优点是整个请求链路最简单,性能相对NodePort模式更好。 
• 缺点是由于直接利用宿主机节点的网络和端口,一个node只能部署一个ingress- controller pod。 
• 比较适合大并发的生产环境使用。

ingress 默认文件大小 ingress类型_私有仓库_37


查看server4的标签:

ingress 默认文件大小 ingress类型_nginx_38


修改文件:

ingress 默认文件大小 ingress类型_ingress 默认文件大小_39


ingress 默认文件大小 ingress类型_直接访问_40

应用更新配置 
• $ kubectl -n ingress-nginx delete deployments.apps nginx-ingress-controller deployment.apps "nginx-ingress-controller" deleted 
• $ kubectl apply -f deploy.yaml

发现只有server4上打开了80和443端口:

ingress 默认文件大小 ingress类型_nginx_41


ingress 默认文件大小 ingress类型_直接访问_42


直接访问且不加暴露的端口并可以实现负载均衡:

ingress 默认文件大小 ingress类型_ingress 默认文件大小_43

3.实现会话保持

为了区分是否可以实现会话保持功能设置将访问www1进行轮询,访问www2保持会话:

ingress 默认文件大小 ingress类型_ingress 默认文件大小_44


ingress 默认文件大小 ingress类型_私有仓库_45


ingress 默认文件大小 ingress类型_ingress 默认文件大小_46


ingress 默认文件大小 ingress类型_私有仓库_47


查看是否生效:

ingress 默认文件大小 ingress类型_nginx_48

4.Ingress TLS 配置

ingress 默认文件大小 ingress类型_直接访问_49


ingress 默认文件大小 ingress类型_直接访问_50


ingress 默认文件大小 ingress类型_ingress 默认文件大小_51


ingress 默认文件大小 ingress类型_nginx_52


再次访问www1时自动加密访问:

ingress 默认文件大小 ingress类型_私有仓库_53