天天看點

Kubernetes部分Volume類型介紹及yaml示例

  EmptyDir類型的volume建立于pod被排程到某個主控端上的時候,而同一個pod内的容器都能讀寫EmptyDir中的同一個檔案。一旦這個pod離開了這個主控端,EmptyDirr中的資料就會被永久删除。是以目前EmptyDir類型的volume主要用作臨時空間,比如Web伺服器寫日志或者tmp檔案需要的臨時目錄。yaml示例如下:

  HostDir屬性的volume使得對應的容器能夠通路目前主控端上的指定目錄。例如,需要運作一個通路Docker系統目錄的容器,那麼就使用/var/lib/docker目錄作為一個HostDir類型的volume;或者要在一個容器内部運作CAdvisor,那麼就使用/dev/cgroups目錄作為一個HostDir類型的volume。一旦這個pod離開了這個主控端,HostDir中的資料雖然不會被永久删除,但資料也不會随pod遷移到其他主控端上。是以,需要注意的是,由于各個主控端上的檔案系統結構和内容并不一定完全相同,是以相同pod的HostDir可能會在不同的主控端上表現出不同的行為。yaml示例如下:

  NFS類型的volume。允許一塊現有的網絡硬碟在同一個pod内的容器間共享。yaml示例如下:

  Kubemetes提供了Secret來處理敏感資料,比如密碼、Token和密鑰,相比于直接将敏感資料配置在Pod的定義或者鏡像中,Secret提供了更加安全的機制(Base64加密),防止資料洩露。Secret的建立是獨立于Pod的,以資料卷的形式挂載到Pod中,Secret的資料将以檔案的形式儲存,容器通過讀取檔案可以擷取需要的資料。yaml示例如下:

繼續閱讀