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的服务以及监听的端口

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

    .

  • 相关阅读:
    在有跳板机的情况下,SecureCRT自动连接到目标服务器
    JavaScript中使用console调试程序的坑
    Python中docstring文档的写法
    Nginx+uWSGI+Django原理
    uWSGI uwsgi_response_write_body_do(): Connection reset by peer 报错的解决方法
    Python LOGGING使用方法
    Python计算斗牛游戏的概率
    Python垃圾回收机制详解
    PhantomJS实现最简单的模拟登录方案
    如何设置Jquery UI Menu 菜单为横向展示
  • 原文地址:https://www.cnblogs.com/msi-chen/p/14346893.html
Copyright © 2011-2022 走看看