(資料圖片僅供參考)
在 Kubernetes 中,Pod 中的每個(gè)容器都有自己的文件系統(tǒng),但是容器之間如何共享數(shù)據(jù)呢?這時(shí)就需要使用 Volume 技術(shù)了。Volume 是 Kubernetes 提供的一種機(jī)制,用于在容器中掛載存儲(chǔ)介質(zhì)。其中,EmptyDir 是 Kubernetes 內(nèi)置的一種 Volume 類(lèi)型,可以創(chuàng)建一個(gè)空目錄并共享給多個(gè)容器,實(shí)現(xiàn)容器之間的數(shù)據(jù)共享。
可以通過(guò) Pod 中的 volumes 字段來(lái)創(chuàng)建 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: {}
在上面的示例中,我們創(chuàng)建了一個(gè)名為 shared-data 的 EmptyDir,并分別將其掛載到了兩個(gè)容器中。
在容器中,可以直接通過(guò)掛載到該容器的 EmptyDir 路徑進(jìn)行讀寫(xiě)操作,如下所示:
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: {}