如何解决如何从在相同Kubernetes集群中运行的容器连接到在Kubernetes集群中的主机VM上运行的Docker?
我正在使用其中安装了docker的docker映像,以便运行任务以清理kubernetes集群中每个节点上的docker映像数据。我尝试使用Daemonset,因为它将在除master之外的每个节点上运行,但是事实证明在docker容器内运行cron无效。
因此,我正在尝试使用定期运行的K8s Cronjob,其属性为:
hostNetwork: true
和
volumes:
- name: dockersocket
hostPath:
path: /var/run/docker.sock
我正在运行一个shell脚本,该脚本从上述CronJob创建的容器中运行docker命令。
但是,当我尝试使用docker -H X.X.X.X images
获取所有在kubernetes群集的节点上运行的映像时,其中X.X.X.X是k8s群集中一个节点的IP,
Cannot connect to the Docker daemon at tcp://X.X.X.X:2375. Is the docker daemon running?
我做错什么了吗? 如何从运行在kubernetes集群中的容器连接到运行在kubernetes集群的节点上的Docker?
解决方法
Frame challenge:您正在做的事情不是正确的方法。
通常试图访问Kubernetes集群中的底层Docker是一个坏主意,因为它很容易导致损坏状态,难以修复。
Kubelet具有built-in garbage collection。为什么不调整配置呢?
如果您在大型PaaS提供商之一上运行,则节点的营业额可能会很高(通过自动升级/其他方式),无论如何这都不成问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。