(資料圖片僅供參考)
在 Kubernetes 中,Pod 中的每個容器都有自己的文件系統,但是容器之間如何共享數據呢?這時就需要使用 Volume 技術了。Volume 是 Kubernetes 提供的一種機制,用于在容器中掛載存儲介質。其中,EmptyDir 是 Kubernetes 內置的一種 Volume 類型,可以創建一個空目錄并共享給多個容器,實現容器之間的數據共享。
可以通過 Pod 中的 volumes 字段來創建 EmptyDir。
apiVersion: v1kind: Podmetadata: name: examplespec: containers: - name: container-1 image: nginx volumeMounts: - name: shared-data mountPath: /usr/share/nginx/html - name: container-2 image: busybox volumeMounts: - name: shared-data mountPath: /data command: ["/bin/sh", "-c", "echo "Hello from container-2" > /data/index.html"] volumes: - name: shared-data emptyDir: {}
在上面的示例中,我們創建了一個名為 shared-data 的 EmptyDir,并分別將其掛載到了兩個容器中。
在容器中,可以直接通過掛載到該容器的 EmptyDir 路徑進行讀寫操作,如下所示:
apiVersion: v1kind: Podmetadata: name: examplespec: containers: - name: container-1 image: nginx volumeMounts: - name: shared-data mountPath: /usr/share/nginx/html - name: container-2 image: busybox volumeMounts: - name: shared-data mountPath: /data command: ["/bin/sh", "-c", "echo "Hello from container-2" > /data/index.html"] volumes: - name: shared-data emptyDir: {}