zoukankan      html  css  js  c++  java
  • k8s 暴露服务的几种方式

    Deployment+LoadBalancer模式的Service

    如果要把ingress部署在公有云,那用这种方式比较合适。用Deployment部署ingress-controller,创 建一个type为LoadBalancer的service关联这组pod。大部分公有云,都会为LoadBalancer的service自 动创建一个负载均衡器,通常还绑定了公网地址。只要把域名解析指向该地址,就实现了集群服务 的对外暴露。

    Deployment+NodePort模式的Service

    同样用deployment模式部署ingress-controller,并创建对应的服务,但是type为NodePort。这样, ingress就会暴露在集群节点ip的特定端口上。由于nodeport暴露的端口是随机端口,一般会在前面 再搭建一套负载均衡器来转发请求。该方式一般用于宿主机是相对固定的环境ip地址不变的场景。 NodePort方式暴露ingress虽然简单方便,但是NodePort多了一层NAT,在请求量级很大时可能对性 能会有一定影响。

    DaemonSet+HostNetwork+nodeSelector

    用DaemonSet结合nodeselector来部署ingress-controller到特定的node上,然后使用HostNetwork直 接把该pod与宿主机node的网络打通,直接使用宿主机的80/433端口就能访问服务。这时,ingresscontroller所在的node机器就很类似传统架构的边缘节点,比如机房入口的nginx服务器。该方式整 个请求链路最简单,性能相对NodePort模式更好。缺点是由于直接利用宿主机节点的网络和端口, 一个node只能部署一个ingress-controller pod。比较适合大并发的生产环境使用。

  • 相关阅读:
    魔塔猎人上线后反馈和后期计划
    自己做的roguelike+恶魔城游戏《魔塔猎人》已发布。
    我的开源项目
    Unity3D工程源码目录
    小二助手(react应用框架)-http访问
    小二助手(react应用框架)-概述
    unity3d开发app的框架
    为小团队协作和个人任务管理而生的Team应用
    使用unity3d开发app
    好久未登陆
  • 原文地址:https://www.cnblogs.com/liuyuanzhe/p/13610982.html
Copyright © 2011-2022 走看看