在Kubernetes中通过 pod 打开 pod所在宿主机上的shell

昨日一伙计突然问我 在么把自己打好的 docker镜像 上传到 kubernetes 的 节点的 local 镜像池。

现状大约如下:

1)只有master节点的登录权限;

2)不知道存在哪些worker节点也无法通过 master 借助SSH 登录到 worker节点 (这点我很困惑,难道部署 Kubernetes 集群时不应该打通 部署节点【默认为master1】到其他节点的SSH免密登录吗?还是着就是一个ALL-IN-ONE的单节点集群?)

3)docker client 版本是 24.0.6 ,通过 registory 搭建私有docker镜像仓库 无法解决https协议问题。因为 docker client 没有配置使用 不安全的docker仓库;

4)客户那儿不可能给这个 Kubernetes 集群申请 公网IP或者二级域名,使用反向代理或者自谦证书后 会出现 X509 证书不受信问题。

这个问题的解决就两种途径:

要么把各节点上的 docker client 配置为使用 不安全的docker镜像仓库;

要么找一个具有公网IP或者域名的内网主机申请公共可信证书或者把自签证书配置到各节点上。

但经过试验,可以 通过 pod的 namespace 打开一个 PID 为 1 的shell,这个shell其实就是pod所在宿主机的root用户在其 namespace 中开启的一个 TTY 。这其实是 Kubernetes 中的一个提权漏洞,不知道在未来会不会进行修复。

nsenter 是一个 进入 namespace 的 工具,通用的 Linux OS 中都会含有这个工具。

相关推荐
Mintopia1 分钟前
🐱 LongCat-Image:当AI绘画说上了流利的中文,还减掉了40斤参数 | 共绩算力
人工智能·云原生·aigc
java1234_小锋9 分钟前
Zookeeper分布式锁如何实现?
分布式·zookeeper·云原生
木童66223 分钟前
Ruo-Yi 项目 CICD 完整部署文档(含命令详解)
ci/cd·docker·容器
幺零九零零2 小时前
Docker底层- 命令详解
运维·docker·容器
深圳行云创新3 小时前
行云创新 AI+CloudOS:AI + 云原生落地新范式
人工智能·云原生·系统架构
庸子3 小时前
Kubernetes 可观测性实战:解构 Prometheus + Grafana 企业级监控架构
kubernetes·grafana·prometheus
Ama_tor3 小时前
docker|F盘安装の1键部署软件及数据储存+2个保姆级运行实例
运维·docker·容器
乾元3 小时前
Service Mesh 与网络抽象:AI 如何做服务层次网络策略生成(微服务 / 云原生)
网络·人工智能·安全·微服务·云原生·运维开发·service_mesh
invicinble5 小时前
对于docker在项目中的完整实战
运维·docker·容器
庸子5 小时前
告别手动运维:Kustomize 与 ArgoCD 构建的 GitOps 体系
运维·kubernetes·argocd