簡體   English   中英

如何從運行在同一 Kube.netes 集群中的容器連接到 Docker,它在 Kube.netes 集群中的主機虛擬機上運行?

[英]How do I connect to Docker, running on host VMs in a Kubernetes cluster from a container running in the same Kubernetes cluster?

我正在使用內部安裝了 docker 的 docker 圖像,以便運行任務來清理我的 kube.netes 集群中每個節點上的 docker 圖像數據。 我嘗試使用 Daemonset,因為它會在除 master 之外的每個節點上運行,但在 docker 容器內運行 cron 證明是徒勞的。

因此,我正在嘗試使用具有以下屬性的定期運行的 K8s Cronjob:

hostNetwork: true

      volumes:
        - name: dockersocket
          hostPath:
            path: /var/run/docker.sock

我正在運行一個 shell 腳本,該腳本從上述 CronJob 創建的容器中運行 docker 命令。

但是,當我嘗試使用docker -H XXXX images (其中 XXXX 是 k8s 集群中一個節點的 IP)獲取在 kube.netes 集群的節點上運行的所有圖像時,出現以下錯誤:

Cannot connect to the Docker daemon at tcp://XXXX:2375. Is the docker daemon running?

難道我做錯了什么? 如何從運行在 kube.netes 集群內的容器連接到運行在 kube.netes 集群節點上的 Docker?

框架挑戰:你正在做的不是正確的方法。

嘗試訪問 Kube.netes 集群中的底層 Docker通常被視為一個壞主意,因為它很容易導致難以修復的損壞 state。

Kubelet 有內置的垃圾收集器 為什么不為此調整配置呢?

如果您在大型 PaaS 提供商之一上運行,您的節點周轉率可能會足夠高(來自自動升級/其他),這無論如何都不是問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM