V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
annoygaga
V2EX  ›  Kubernetes

K8S 里面怎么做类似 VPC 的网络结构比较好?

  •  
  •   annoygaga · 17 小时 11 分钟前 · 788 次点击

    如题,需求是希望用 K8S 在内部平台做类似 VPC 那样的网络区分,保证不同链路下,网络的安全,这块大家目前走的什么方案呀?

    PS:维护的人很少,希望方案比较完整,坑比较少

    PS:k8s 集群可能有多个机房,希望方案附带了这方面的适配

    25 条回复    2024-10-25 00:20:17 +08:00
    defunct9
        1
    defunct9  
       17 小时 3 分钟前
    rancher 吧
    annoygaga
        2
    annoygaga  
    OP
       16 小时 56 分钟前
    @defunct9 rancher 有 VPC ? rancher 不是个平台发行版么?
    defunct9
        3
    defunct9  
       16 小时 43 分钟前
    人少就用这玩意好了
    zhoulq7
        4
    zhoulq7  
       16 小时 39 分钟前
    使用 rancher 管理 k8s 集群,k8s 集群使用 Canal 网络插件, 启用项目网络隔离。
    vus520
        5
    vus520  
       16 小时 38 分钟前
    1. 基本的网络策略,pod 之间的通信,命名空间隔离,可以用网络策略结合 CNI 插件(如 Calico 或 Cilium )来实现
    2. 服务之间的通信可以使用使用 Istio 或 Linkerd 等服务网格来管理,可以有更细粒度的控制和安全性,比如流量管理、监控和安全策略
    FabricPath
        6
    FabricPath  
       16 小时 13 分钟前
    网络层的权限管理能力太弱了,只能控制通和不通;
    建议你直接用 ServiceMesh 去解决权限问题
    annoygaga
        7
    annoygaga  
    OP
       14 小时 12 分钟前
    @defunct9 目前用的云厂商的托管 k8s ,没上 rancher 的话
    annoygaga
        8
    annoygaga  
    OP
       14 小时 11 分钟前
    @vus520 好弄吗?
    annoygaga
        9
    annoygaga  
    OP
       14 小时 11 分钟前
    @FabricPath ServiceMesh 没什么经验,这个好维护吗?以及,能达到那个水平吗?
    annoygaga
        10
    annoygaga  
    OP
       14 小时 10 分钟前
    @zhoulq7 如果没有 rancher 可以搞吗?
    guokehujin
        11
    guokehujin  
       14 小时 4 分钟前
    推荐 kube-ovn cni
    defunct9
        12
    defunct9  
       13 小时 59 分钟前
    你没说明白你的需求和现状,你都有 ACK 了,还弄啥 rancher
    GeekGao
        13
    GeekGao  
       13 小时 57 分钟前
    默认拒绝所有入站流量的网络策略,只允许特定流量的网络策略。然后使用 CNI 配置,限制特定节点 label 可以访问
    annoygaga
        14
    annoygaga  
    OP
       13 小时 49 分钟前
    @defunct9 我用的托管,但是希望在 k8s 内部再做 vpc ,目前是一个 vpc 内,有业务需求需要多个网络之间隔离
    annoygaga
        15
    annoygaga  
    OP
       13 小时 48 分钟前
    @GeekGao 有平台级别的解决方案么,就这个逻辑的
    defunct9
        16
    defunct9  
       13 小时 46 分钟前
    业务需求用 namespace 隔开就可以了。vpc 已经是个大平板广场了,再做 vpc 不行了吧。
    GeekGao
        17
    GeekGao  
       13 小时 41 分钟前
    @annoygaga CNI 用 calico 就行了啊,这个逻辑多简单。不用额外的平台。
    sampeng
        18
    sampeng  
       13 小时 5 分钟前
    没明白你的需求是啥。。

    每个 pod 不同的网络权限?那你需要 istio ?这个需要有人。坑很深,概念那是一套一套的。会了很爽。但是交接和招新人是个很大问题。istio 的网络控制层面会严格控制代理每个 pod 的进和出的流量。

    你都有不同的集群了。不同集群天然就是网络隔离的啊。解决好每个集群所在网络安全不就好了么。
    sampeng
        19
    sampeng  
       13 小时 0 分钟前
    我就记得有这么个东西。。
    https://kubernetes.io/docs/concepts/services-networking/network-policies/

    自己维护一个 list 就完事了。
    CCIEliu
        20
    CCIEliu  
       11 小时 45 分钟前
    cilium 或者 calico 都行,个人推荐 cilium ,可观察性好一点。如果想容易维护那就 calico 。

    其实还是直接做 networkpolicy 好一点,已经在同一个集群了,没必要非要搞个 vpc 类似概念出来。
    就继续按照 k8s 的思路,用 networkpolicy 管理网络就好了。

    ps:如果真的想 vpc ,那就直接在基础设施上新建新的 k8s 集群,彻底隔离。。。故障域也隔离开了。
    annoygaga
        21
    annoygaga  
    OP
       9 小时 35 分钟前
    @defunct9 主要是希望隔离性和 vpc 一样,主要是安全层面的需求
    annoygaga
        22
    annoygaga  
    OP
       9 小时 35 分钟前
    @sampeng 一个集群,希望里面不同的 service 下(或者 namespace 下吧)的网络不互通,类似 vpc ,主要是安全的需求
    annoygaga
        23
    annoygaga  
    OP
       9 小时 34 分钟前
    @CCIEliu 其实是 k8s 内部使用者,搞出两个网络,这么个需求,主要 for 安全
    07212423
        24
    07212423  
       8 小时 21 分钟前
    印象中 k8s 的网络从设计上就是一个平面。你的需求更像是安全需求,而不是 vpc 需求。 应该看看网络策略
    annoygaga
        25
    annoygaga  
    OP
       7 小时 11 分钟前
    @07212423 是的,本质上安全需求,类似 vpc 的安全需求
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1268 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 47ms · UTC 23:31 · PVG 07:31 · LAX 16:31 · JFK 19:31
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.