docker - Docker 容器对 Kubernetes 主节点的影响
问题描述
我目前正在使用 k8s 上的 Hyperledger Fabric v1.4 部署。生成的链码容器基本上是由运行在对等 pod 和 k8s 中的容器创建的,因此不了解和控制链码容器。在这样一个 Docker 容器与 k8s 一起运行并且 k8s 不知道特定 docker 容器的情况下,Docker 容器是否有可能以某种方式获得对 k8s 主 API 的访问权限并获得对整个 k8s 的访问权限因此集群?
我问这个问题的目的是弄清楚是否有一种方法可以使用 k8s 中任何 pod 外部的容器,通过未经授权访问 k8s 来对 k8s 集群造成任何不良影响。我谈到的链码容器是使用受信任的模板图像创建的,容器中唯一可能的恶意组件是用户提供的单个 golang、java 或 nodejs 脚本。所以我真正的问题是,“是否有可能使用这些用户脚本获得对 k8s 集群的未经授权的访问?” 我主要关注一个管理器 k8s 服务,比如 Azure Kubernetes 服务。
解决方案
你的问题完全改变了意思,所以我会尝试重写答案。
您必须记住,pod
默认情况下您正在运行的代码仅限于正在运行的代码namespace
。如果你没有给它任何更高的权限。此外,代码没有以 root 身份运行。
您可以阅读Pod 安全策略并为 Pod 或容器配置安全上下文。
TLDR。只要您不给它任何特殊特权或权利,它就应该为您的集群节省很多。
推荐阅读
- java - 该应用程序在主屏幕上关闭并重新启动
- python - SKlearn 管道:ValueError:输入包含 NaN
- c++ - 将 *.hpp 或 *.cpp 文件包含在 *.h 文件中哪个更好
- typescript - 带有类方法装饰器的打字稿奇怪行为
- java - 升级到 SpringBoot 2.5.0 GA - 丢失所有指标
- angular - 为什么在服务中调用 LoginEndpoint 并订阅 observable 时会调用两次?
- node.js - nodejs升级后运行apollo服务器的问题(使用nestjs和fastify)
- python-3.x - 为什么密码以原始格式存储到 Django 中的数据库中?
- python - 使用 pandas 库中的 ewm() 的 MACD 股票指标函数
- soapui - SOAP UI 4.5 为 TLS 1.2 配置返回错误