• K8S之Ingress 对外暴露应用(十四)



    Ingress为弥补NodePort不足而生
    • Pod与Ingress的关系
    • Ingress Controller
    • Ingress 规则配置

    一,Ingress为弥补NodePort不足而生
    NodePort存在的不足:
    • 一个端口只能一个服务使用,端口需提前规划
    • 只支持4层负载均衡
    二,Ingress是什么
    Ingress:Ingress公开了从集群外部到集群内服务的HTTP和HTTPS路由的规则集合,而具体实现流量路
    由则是由Ingress Controller负责。

    • Ingress:K8s中的一个抽象资源,给管理员
    提供一个暴露应用的入口定义方法
    • Ingress Controller:根据Ingress生成具体
    的路由规则,并对Pod负载均衡器
    使用流程:
    1. 部署Ingress Controller
    2. 创建Ingress规则

    三,Ingress Controller
    Ingress Controller有很多实现,我们这里采用官方维护的Nginx控制器。
    项目地址:https://github.com/kubernetes/ingress-nginx
    下载YAML:wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/nginx0.30.0/deploy/static/mandatory.yaml 
    修改YAML:
    • 镜像地址修改成国内的:lizhenliang/nginx-ingress-controller:0.30.0 
    • 将Ingress Controller暴露,一般使用宿主机网络(hostNetwork: true)或者使用NodePort
    其他控制器:https://kubernetes.io/docs/concepts/services-networking/ingress-controllers


    四,Ingress 规则配置
    创建:
    kubectl apply -f xxx.yaml
    查看:
    kubectl get ingress
    测试:本地电脑绑定hosts记录对应ingress里面配置的域名
    例: web.xxxedu.cn

    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
    name: xxxedu
    spec:
    rules:
    - host: web.xxxedu.cn
    http:
    paths:
    - path: /
    pathType: Prefix
    backend:
    service:
    name: web
    port:
    number: 80
     

  • 相关阅读:
    C语言——全局变量和局部变量重名了会怎么样
    Python自学教程2:大牛们怎么写注释
    go-redis简单使用
    彻底搞懂Spring的循环依赖
    Springboot MybatisPlus整合多数据源
    计算机存储 和 零拷贝
    OpenGL - Parallax Mapping
    【职场篇】五年游戏开发老兵,我为什么劝你学UE?
    软件测试面试题:缺陷记录应包含的内容?
    Jenkins 带参数执行shell脚本
  • 原文地址:https://blog.csdn.net/zhaoyu_1979/article/details/131140754