请教一个 k8s 网络安全方面问题

2023-08-23 19:46:10 +08:00
 fighterhit

背景是租用了一批第三方公司的服务器(可以认为不那么可信),现在想把它们以 k8s worker 节点的方式接入到我们已有集群中,k8s apiserver 还有部分节点位于我们自己数据中心服务器上,现在想提高一下防护避免被攻击,主要考虑以下几点:

  1. 担心第三方公司服务器可能会有他们的人登录,我们在上面部署虚拟机,在虚拟机内部署 kubelet ,这样应该能最大程度避免他们接触到虚机内的 kubelet 以及容器?
  2. 网络安全方面,为了避免第三方公司能查看到我们服务器 ip ,想搭建一个加密隧道,但不清楚业界目前常用搭建安全隧道工具有哪些,github 查到一个 gost ,不清楚可用性和安全性如何,以及怎么和 k8s 结合起来。另一方面,更安全点想实现只允许我们服务器到第三方服务器通信,从我们数据中心建 pod 调过去;反过来通信不行,但貌似 k8s 节点注册以及监听资源变化必须从 kubelet 向 apiserver 发起,没法反过来,不知道还是否有办法可行。也就是限制单向通信还能保证 k8s 整个调度流程正常。

这方面看到 kubeedge 等边缘计算框架云边通信单独有 cloudcore 、edgecore 组件,似乎有加密隧道功能,想拿来直接用,不确定可行性怎么样、是否还有其它办法?

1447 次点击
所在节点    Kubernetes
11 条回复
seers
2023-08-23 19:53:46 +08:00
你用他们资源自己虚拟化个 node 出来再接入资源池
fighterhit
2023-08-23 20:05:35 +08:00
@seers 对!刚才突然想到可以这样接入资源方便。但是第二点网络访问上怎么控制安全点呢?比如搭个正向代理,所有服务都走代理,数据中心防火墙只给代理机器开防火墙?
seers
2023-08-23 20:10:56 +08:00
@fighterhit 给你们的 k8s api 套个 slb 就行了,对外暴露一个 slb 地址
fighterhit
2023-08-23 20:18:15 +08:00
@seers 只用 slb 对公网开放吗?不安全吧,正向代理主要考虑尽可能限制访问 apiserver 的客户端范围,不确定是否还有其它更好的办法?
fighterhit
2023-08-23 20:36:19 +08:00
@seers 还有一点是 vnode 只解决了资源接入问题,集群内地址网络访问也要互通,需要服务发现
sampeng
2023-08-24 09:04:53 +08:00
背景是什么?为啥要接入?
fighterhit
2023-08-24 09:08:58 +08:00
@sampeng 成本原因吧。有安全经验指教下?
EsSkOyN
2023-08-24 09:30:51 +08:00
https://zhuanlan.zhihu.com/p/560161230?utm_id=0
还是很难限制的 建议不要想直接往集群里接
sampeng
2023-08-24 10:30:06 +08:00
无解…内部环境是最容易攻破的。k8s 不解决这种问题…
sampeng
2023-08-24 10:32:02 +08:00
@fighterhit 这就是因噎废食了,人力成本要远远大于服务器成本了…对方机器不知道你集群 ip 路由表都没法写
dnsjia
2023-08-24 12:57:59 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/967745

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX