k8s學習九-ingress

孟諸 2022-01-08 03:57:38 阅读数:682

k8s ingress

1 Ingress概述

在前面使用Service中的NodePort將服務端口號暴漏以供外部訪問,這樣顯然會存在一些弊端:

  • 通過ip+端口的方式對外提供服務
  • 每個節點上都會其端口,訪問時通過ip+端口進行訪問
  • 每個端口對應一個應用服務

但是在實際中是通過域名來訪問應用的,根據域名跳轉到不同端口服務中,所以需要在Service之上再添加一層訪問入口,這一層就是Ingress。

2 Ingress工作流程

在這裏插入圖片描述
ingress和pod通過service進行關聯,實際訪問中ingress作為一個統一的入口,由service關聯一組pod。

3 ingress使用

Ingress對外暴露應用,還是首先需要通過Service的NodePort暴露端口,在此基礎上再進行操作。

1 創建一個nginx pod

// 創建nginx應用
[[email protected] ~]# kubectl create deployment web --image=nginx
deployment.apps/web created
// 將上述應用對外暴露端口
[[email protected] ~]# kubectl expose deployment web --port=80 --target-port=80 --type=NodePort
service/web exposed
// 查看
[[email protected] ~]# kubectl get pod,svc
NAME READY STATUS RESTARTS AGE
pod/web-5dcb957ccc-rq5k5 1/1 Running 0 92s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/kubernetes ClusterIP 10.96.0.1 443/TCP 69d
service/web NodePort 10.106.108.66 80:31558/TCP 28s

2 部署ingress controller
執行yaml文件
在這裏插入圖片描述
3 配置ingress規則

  • 編寫yaml配置文件
    在這裏插入圖片描述
  • 運行yaml文件
    在這裏插入圖片描述
  • 訪問測試
    windows中配置好域名映射後即可訪問
    在這裏插入圖片描述
版权声明:本文为[孟諸]所创,转载请带上原文链接,感谢。 https://gsmany.com/2022/01/202201080357382135.html