• 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
     

  • 相关阅读:
    一.node的文件系统;二.node的数据流(Stream接口);
    AlexNet 06
    【Linux】第十四站:进程优先级
    4.03 用户中心-订单管理功能开发
    SpringCloud技术—Docker详解、案例展示
    Python通过下标获取指定的文件并复制到一个新的文件
    腾讯叶聪:朋友圈爆款背后的计算机视觉技术与应用
    微信小程序解析HTML标签带有<p>?
    初学UE5 C++①
    JVM(二)
  • 原文地址:https://blog.csdn.net/zhaoyu_1979/article/details/131140754