最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

kubernetes對象Volume用法詳解

 更新時間:2019年06月11日 10:10:51   投稿:laozhang  
在本篇文章里小編給大家整理的是關(guān)于kubernetes對象Volume用法以及相關(guān)知識點,需要的朋友們學(xué)習(xí)下。

概述

Volume是對各種存儲資源的抽象、虛擬化。為管理、控制、使用存儲資源提供統(tǒng)一接口。Openstack中的volume為虛擬機提供存儲,Docker中的volume為容器提供存儲。因為在kubernetes中可部署運行最小單位是pod ,所以kubernetes的volume為pod提供存儲。當(dāng)然在部署pod時可以不為其提供volume,pod中的容器使用所在節(jié)點的硬盤,能同時讀寫數(shù)據(jù)的地方稱為可讀寫層。這種存儲是容器級的臨時存儲,不是pod級。其生命周期與容器相同,如果容器crash后被重啟,也就是舊容器被刪除而新容器啟動,則舊容器的可讀寫層與容器一起被刪除,其上數(shù)據(jù)丟失。同理如果pod在節(jié)點之間遷移調(diào)度,容器的可讀寫層并不會遷移調(diào)度。因此,kubernetes需要提供pod級volume,本文中的volume特指kubernetes。

Volume類型

Volume是抽象概念,有很多種具體實現(xiàn),每種實現(xiàn)各具目的、特點、特性。差不多什么東西都可以當(dāng)成volume,類型如下:

  • awsElasticBlockStore
  • azureDisk
  • azureFile
  • cephfs
  • configMap
  • csi
  • downwardAPI
  • emptyDir
  • fc (fibre channel)
  • flocker
  • gcePersistentDisk
  • gitRepo (deprecated)
  • glusterfs
  • hostPath
  • iscsi
  • local
  • nfs
  • persistentVolumeClaim
  • projected
  • portworxVolume
  • quobyte
  • rbd
  • scaleIO
  • secret
  • storageos
  • vsphereVolume
  • 這里不對以上所有類型一一介紹,只對目前可能會用到的本地磁盤存儲和分布式存儲做簡單介紹說明

常見存儲類型說明及示例

cephfs

cephfs是一款優(yōu)秀、流行的云環(huán)境存儲解決方案,原因是它開源、高可用、彈性伸縮,對操作系統(tǒng)、硬件無特殊要求,用戶很容易搭建,使用它的節(jié)點也無特別要求。它具備awsElasticBlockStore陳述之所有特點,并且單個voluem可以被多個節(jié)點同時使用。用戶首先搭建自己的cephfs環(huán)境,然后配置kubernetes集群與其對接,最后在pod中使用其提供的volume,詳細(xì)參考這里。

configMap

用戶首先創(chuàng)建configMap并創(chuàng)建數(shù)據(jù)保存其中,此時數(shù)據(jù)保存在kubernetes的etcd數(shù)據(jù)庫中,volume還不存在。當(dāng)用戶在pod中引用創(chuàng)建的configMap時,系統(tǒng)首先在節(jié)點上創(chuàng)建volume并將數(shù)據(jù)保存其中,這個volume占用的是節(jié)占的存儲空間。此后就可以像使用普通volume一樣使用它。

configMap是kubernetes中的一種對象類型,核心本質(zhì)是以volume的方式將單獨管理的配置信息傳遞給pod中的容器,并非用來存儲持久化數(shù)據(jù)。詳細(xì)參考這里。

downwardAPI

與configMap類似,以volume的方式向pod中的容器傳遞信息。configMap中的信息由用戶在創(chuàng)建對象時傳遞,而downwardAPI的信息就來自pod對象本身,downwardAPI不需要創(chuàng)建,它是pod Spec中的一個字段,內(nèi)容指向pod對象本身的其它字段,如pod的metadata、image等信息。在創(chuàng)建pod時系統(tǒng)首先將指向的字段提取出來,然后創(chuàng)建volume并保存提取出來的字段并掛載,容器就可以讀取這些字段了。

downwardAPI的目的是為將pod本身的字段信息如label、annotation等傳遞給容器的一種手段。詳細(xì)參考這里。

emptyDir

在節(jié)點上運行pod實例時才會創(chuàng)建emptyDir volume。它首先是節(jié)點上的一個空目錄,pod中的任何容器都可以用volume的形式掛載使用它。如果容器因為某種原因被刪除并重新啟動,創(chuàng)建的emptyDir不會刪除也不會被清空。當(dāng)pod實例離開節(jié)點調(diào)度到其它節(jié)點或因為縮容被刪除時,emptyDir被刪除,相當(dāng)于pod還在但數(shù)據(jù)丟了。示例:

apiVersion: v1
kind: Pod
metadata:
 name: test-pd
spec:
 containers:
 - image: k8s.gcr.io/test-webserver
  name: test-container
  volumeMounts:
  - mountPath: /cache
   name: cache-volume
 volumes:
 - name: cache-volume
  emptyDir: {}

glusterfs

與cephfs一樣,流行的云環(huán)境下的存儲解決方案

hostPath

apiVersion: v1
kind: Pod
metadata:
 name: test-pd
spec:
 containers:
 - image: k8s.gcr.io/test-webserver
  name: test-container
  volumeMounts:
  - mountPath: /test-pd
   name: test-volume
 volumes:
 - name: test-volume
  hostPath:
   # directory location on host
   path: /data
   # this field is optional
   type: Directory

iscsi

互聯(lián)網(wǎng)小型計算機系統(tǒng)接口,其特點是便宜。

local

與emptyDir相似,它也占用節(jié)點的存儲空間。不同點是它是kubernetes中的一種對象類型,用戶可以像管理普通對象一樣管理它。emptyDir在pod實例開時運行時分配,當(dāng)pod離節(jié)點時刪除。local類型的volume則由用戶創(chuàng)建,系統(tǒng)在合適的節(jié)點上為其分配資源,調(diào)度到這個節(jié)點上的pod可以掛載它,pod離開時它也不會消失,除非用戶刪除。示例:

apiVersion: v1
kind: PersistentVolume
metadata:
 name: example-pv
spec:
 capacity:
  storage: 100Gi
 # volumeMode field requires BlockVolume Alpha feature gate to be enabled.
 volumeMode: Filesystem
 accessModes:
 - ReadWriteOnce
 persistentVolumeReclaimPolicy: Delete
 storageClassName: local-storage
 local:
  path: /mnt/disks/ssd1
 nodeAffinity:
  required:
   nodeSelectorTerms:
   - matchExpressions:
    - key: kubernetes.io/hostname
     operator: In
     values:
     - example-node

nfs

nfs
網(wǎng)絡(luò)文件系統(tǒng)

persistentVolumeClaim

與flocker相似,用來屏蔽不同云環(huán)境

projected

如果一個容器需要掛開多個已經(jīng)存在的volume比如Secret、ConfigMap、DownwardAPI等,原本每個這種類型的volume需要各自占用一個掛載目錄,而projected能將它們整合在一起,并只掛開到一個目錄下,示例:

apiVersion: v1
kind: Pod
metadata:
 name: volume-test
spec:
 containers:
 - name: container-test
  image: busybox
  volumeMounts:
  - name: all-in-one
   mountPath: "/projected-volume"
   readOnly: true
 volumes:
 - name: all-in-one
  projected:
   sources:
   - secret:
     name: mysecret
     items:
      - key: username
       path: my-group/my-username
   - downwardAPI:
     items:
      - path: "labels"
       fieldRef:
        fieldPath: metadata.labels
      - path: "cpu_limit"
       resourceFieldRef:
        containerName: container-test
        resource: limits.cpu
   - configMap:
     name: myconfigmap
     items:
      - key: config
       path: my-group/my-config

相關(guān)文章

  • Docker 配置阿里云容器服務(wù)操作

    Docker 配置阿里云容器服務(wù)操作

    這篇文章主要介紹了Docker 配置阿里云容器服務(wù)操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • Docker 教程之獲取鏡像基礎(chǔ)知識詳解

    Docker 教程之獲取鏡像基礎(chǔ)知識詳解

    這篇文章主要介紹了Docker 教程之獲取鏡像詳解的相關(guān)資料,需要的朋友可以參考下
    2016-12-12
  • 啟動桌面Docker提示虛擬服務(wù)未啟動兩種解決方案

    啟動桌面Docker提示虛擬服務(wù)未啟動兩種解決方案

    Docker 是?個開源的應(yīng)用容器引擎,可以實現(xiàn)虛擬化,這篇文章主要介紹了在啟動Docker?Desktop時遇到的錯誤,并提供了解決方案,文中通過代碼以及圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2025-04-04
  • Docker如何實現(xiàn)容器間的安全通信方式

    Docker如何實現(xiàn)容器間的安全通信方式

    文章介紹了使用自定義網(wǎng)絡(luò)、網(wǎng)絡(luò)訪問控制、數(shù)據(jù)加密、認(rèn)證與授權(quán)機制、安全更新與漏洞管理等方法來提升Docker容器的安全性
    2024-11-11
  • IDEA使用Docker插件遠(yuǎn)程部署項目到云服務(wù)器的方法步驟

    IDEA使用Docker插件遠(yuǎn)程部署項目到云服務(wù)器的方法步驟

    這篇文章主要介紹了IDEA使用Docker插件遠(yuǎn)程部署項目到云服務(wù)器的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • docker鏡像拉取過程和遠(yuǎn)程代理配置過程

    docker鏡像拉取過程和遠(yuǎn)程代理配置過程

    Docker鏡像拉取過程涉及客戶端、守護(hù)進(jìn)程、注冊表和網(wǎng)絡(luò)通信,客戶端發(fā)送請求,守護(hù)進(jìn)程處理并從注冊表下載鏡像層,配置包括Docker守護(hù)進(jìn)程的代理、TLS設(shè)置和防火墻規(guī)則,確保網(wǎng)絡(luò)策略和安全措施到位,以優(yōu)化鏡像拉取和保護(hù)傳輸過程
    2024-11-11
  • 教你如何通過?SSH?連接到?Docker?容器

    教你如何通過?SSH?連接到?Docker?容器

    如何通過?SSH?連接到正在運行的容器,以及為什么在這樣做之前應(yīng)該三思而后行,對如何通過SSH連接到Docker容器相關(guān)知識感興趣的朋友跟隨小編一起看看吧
    2022-01-01
  • docker-compose如何定義一個橋接網(wǎng)絡(luò),并為該網(wǎng)絡(luò)配置一個IP地址池

    docker-compose如何定義一個橋接網(wǎng)絡(luò),并為該網(wǎng)絡(luò)配置一個IP地址池

    在DockerCompose中定義橋接網(wǎng)絡(luò)并配置IP地址池,可以實現(xiàn)服務(wù)的自動IP地址分配,通過定義網(wǎng)絡(luò)、指定子網(wǎng)范圍、設(shè)置網(wǎng)關(guān)和啟用自動分配功能,可以輕松管理服務(wù)的網(wǎng)絡(luò)配置,確保IP地址在子網(wǎng)范圍內(nèi)且不與其他網(wǎng)絡(luò)沖突,以避免網(wǎng)絡(luò)沖突
    2025-01-01
  • docker安裝使用xdebug的過程

    docker安裝使用xdebug的過程

    這篇文章主要介紹了docker安裝使用xdebug的過程,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-09-09
  • 詳解docker私有倉庫搭建與使用實戰(zhàn)

    詳解docker私有倉庫搭建與使用實戰(zhàn)

    這篇文章主要介紹了詳解docker私有倉庫搭建與使用實戰(zhàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-02-02

最新評論

桐柏县| 大厂| 宝山区| 武胜县| 贵阳市| 炉霍县| 吉水县| 吴堡县| 芒康县| 崇州市| 彰化市| 巴南区| 建宁县| 东山县| 车险| 永川市| 惠安县| 新宁县| 左云县| 曲松县| 玛沁县| 佛学| 叙永县| 始兴县| 通海县| 海林市| 泰安市| 梁平县| 建昌县| 鄢陵县| 丹江口市| 扶余县| 青阳县| 青铜峡市| 庄河市| 韶关市| 乌拉特前旗| 洛隆县| 崇仁县| 湖北省| 高平市|