• Ingress详解


    概述

    使用Service里面的NodePort可以将端口号对外暴露,通过IP+端口号进行访问。

    NodePort缺陷:

    • 在每个节点上都会用到端口,在访问时候在任何节点,通过节点IP+端口可以实现访问。意味着每个端口只能使用一次,一个端口对应一个应用。
    • 实际访问中都是用域名,根据不同域名跳转到不同端口服务中。

    Ingress和Pod关系

    pod和ingress通过service关联。

    ingress作为统一入口,由service关联一组pod

    在这里插入图片描述

    Ingress工作流程

    在这里插入图片描述

    使用Ingress

    • 部署Ingress Controller
    • 创建Ingress规则
    kubectl create deployment web --image=nginx
    kubectl expose deployment web --port=80 --target-port=80 --type=NodePort
    
    • 1
    • 2

    网上下载ingress-controller.yaml

    apiVersion: v1
    kind: Namespace
    metadata: 
      name: ingress-nginx
      labels: 
        app.kubernetes.io/name: ingress-nginx
        app.kubernetes.io/part-of: ingress-nginx
    ---
    ...
    ...
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    将hostNetwork改为true

    kubectl apply -f ingress-controller.yaml
    
    • 1

    查看ingress controller状态:

    kubectl get pods -n ingress-nginx
    
    • 1

    创建ingress规则:

    apiVersion: networking.k8s.io/v1beta1
    kind: Ingress
    metadata:
      name: example-ingress
    spec:
      rules:
      - host: example.ingressdemo.com
        http:
          paths:
          - path: /
            backend:
              serviceName: web
              servicePort: 80
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    kubectl apply -f 
    
    • 1

    在Windows系统hosts文件中添加域名访问规则

    192.168.44.145 example.ingressdemo.com
    
    • 1
    kubectl get ing
    
    • 1
  • 相关阅读:
    成为IEEE学生会员
    SFI立昌Ultra Low Capacitance方案与应用
    python+vue实验室课程预约管理系统
    jmeter单接口和多接口测试
    lightdb-归档日志清理优化(22.4)
    前端一面经典vue面试题总结
    docker部署mongoDB
    MySQL基础-多表查询
    开发框架DevExpress XAF - Entity Framework Core 8支持.NET 8性能基准
    微服务面试
  • 原文地址:https://blog.csdn.net/qq_41242680/article/details/126538112