zoukankan      html  css  js  c++  java
  • Kubernetes之Ingress认识

    Kubernetes之Ingress认识

    Ingress基本认识

    • 在之前我们通过Service的类型 ClusterIP、NodePort、LoadBlance中的NodePort实现端口的暴露,实现任意node节点+暴露的端口实现pod的访问

    • 这种方式就有一个缺陷

      • 我们所暴露的那个端口,在每个节点上都会被占用,也就是一个端口在集群中只能对应一个应用,只能使用一次

      • 实际访问中,一般我们都是通过域名来访问,然后根据域名来跳转到固定的ip,实现服务访问

      • 这时候,NodePort这种方式就出现了弊端,我该如何通过域名实现负载均衡访问我所有的pod呢?

    • ingress的出现就解决了这个尴尬问题

    Ingress的工作流程

    Ingress和Pod的关系

    • 通过上图我们可以知道

      • ingress是通过Service和pod关联的

        • service是通过标签labels关联pod的

      • ingress作为统一的入口,会维护很多的域名

        • 这些域名与Service进行关联

        • 实现一个域名与多个pod进行关联,实现负载均衡

    部署并使用:Ingress

    环境初始化

    • 我们创建一个测试的pod

      • kubectl create deployment webnginx --image nginx

    • 暴露我们创建的pod

      • kubectl expose deployment webnginx --port 80 --target-port 80 --type NodePort

      • 这个时候我们已经可以通过节点IP + 暴露的端口进行访问服务了

    部署ingress

    • 然后就是部署Ingress了,这里我们使用官方维护的nginx控制器,实现部署

    查看ingress部署信息

    • 然后我们查看一下该pod

      • 该资源编排文件是创建了一个名称空间的

      • 所以我们需要制定名称空间去查看

    • 查看ingress的pod部署信息

      • kubectl get pods -n ingress-nginx

    配置ingress规则

    • ingress是创建好了,至于上面我们画的流程图该如何实现了,这就需要我们手动去配置实现了

      • ingress-rule.yaml [提取码:6666]

      • 然后我们可以来解读一下里面配置的规则

    • 部署ingress-rule.yaml

    • 我们可以看到ingress 部署到了node1节点

    • 此时我们想要在浏览器进行访问,需要在win10的hosts文件中配置一下路由规则

      • 因为我们的服务不是在公网,所以需要做以下操作,做域名映射

        • 修改:C:WindowsSystem32driversetchosts 文件

        • 前面是我们部署ingress Pod的节点ip,后面是我们部署的ingress规则监听的域名

    测试

    • 我们再次查看一下ingress的服务以及监听的端口

    • 然后我们使用浏览器开始访问

    .

  • 相关阅读:
    XML 特殊字符
    asp.net Application、 Session、Cookie、ViewState、Cache、Hidden 的区别
    Oracle 和 SqlServer 的区别
    TFS源代码管理的8大注意事项
    json 排序
    网页中内容的显示问题
    e.target与事件委托简例(转)
    form 中的 table元素过滤定位事件
    (转) Ajax 重定向
    Django ajax post 403 问题
  • 原文地址:https://www.cnblogs.com/msi-chen/p/14346893.html
Copyright © 2011-2022 走看看