国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

k8s存儲卷-動態(tài)PV

這篇具有很好參考價值的文章主要介紹了k8s存儲卷-動態(tài)PV。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

pv和PVC,存儲卷:

存儲卷:

EmptyDir:容器內(nèi)部,隨著pod銷毀,emptyDir也會消失,不能做數(shù)據(jù)持久化

HostPath:持久化存儲數(shù)據(jù),可以和節(jié)點上目錄做掛載,pod被銷毀了數(shù)據(jù)還在

NFS:一臺機器,提供pod發(fā)起的掛載的請求

PV和PVC:

PVC就是pid發(fā)起掛載的反請求:

PV持久化存儲的目錄,ReadWriteMary

?????????????????????ReadOnlyMany

?????????????????????ReadwriteOnce

Nfs:可以支持三種方式

HostPath ReadwriteOnce

Iscsi不支持ReadwriteMany

pv的回收策略:

Retain released需要人工設(shè)置,調(diào)整回available

??????????????Recyc 回收,自動調(diào)整回available

??????????????Delete 刪除

靜態(tài)PV和PVC:

運維負責PV:創(chuàng)建好持久化存儲卷,聲明好讀寫和掛載類型,以及可以提供存儲空間

PVC開發(fā)做,要和開發(fā)溝通好,你期望的讀寫和掛載類型,以及存儲空間

當我發(fā)布PVC之后可以生成PV,還可以在共享服務器上直接生成掛載目錄

PVC直接綁定和使用PV

動態(tài)PV需要兩個組件:

  1. 卷插件,k8s本身支持的動態(tài)PV創(chuàng)建不包括NFS,需要聲明和安裝一個外部插件,叫做provisioner:存儲分配器,可以動態(tài)創(chuàng)建PV,然后根據(jù)PVC的請求自動綁定和使用
  2. StorageClass:來定義PV的屬性,存儲類型,大小回收策略

今天還是用NFS來實現(xiàn)動態(tài)PV,NFS支持的方式NFS-Client,provisioner來適配NFS-Client

NFS-Client-provisioner卷插件

架構(gòu)圖:

k8s存儲卷-動態(tài)PV,kubernetes,容器,云原生

實驗演示:

k8s存儲卷-動態(tài)PV,kubernetes,容器,云原生

/opt/k8s 20.0.0.0/24(rw,no_root_squash,sync)

k8s存儲卷-動態(tài)PV,kubernetes,容器,云原生

vim /etc/exports

systemctl restart rpcbind

systemctl restart nfs

showmount -e

k8s存儲卷-動態(tài)PV,kubernetes,容器,云原生

其他節(jié)點查看:

showmount -e 20.0.0.74

k8s存儲卷-動態(tài)PV,kubernetes,容器,云原生

、創(chuàng)建 Service Account,用來管理 NFS Provisioner 在 k8s 集群中運行的權(quán)限,

設(shè)置 nfs-client 對 PV,PVC,StorageClass 等的規(guī)則

回到master節(jié)點:

創(chuàng)建serviceAccount:

Nfs provisioner:是一個插件,沒有權(quán)限是無法再集群當中獲取k8s的消息,插件要有權(quán)限能夠監(jiān)聽apiserver,獲取Get,list(獲取集群的列表資源)創(chuàng)建一個資源賬戶

Rbac:Role-base ACCESS CONTORL 定義角色在集群當中可以使用的權(quán)限

#創(chuàng)建集群角色

kubectl explain ClusterRole ?

#查看Kubernetes RBAC(Role-Based Access Control)的 ClusterRole 配置,

命名為 nfs-client-provisioner-clusterrole。這個 ClusterRole 定義了一組權(quán)限規(guī)則,

允許一個特定的服務賬戶(通常是用于 NFS 客戶端 Provisioner 的賬戶)執(zhí)行一些與存儲相關(guān)的操作。

k8s存儲卷-動態(tài)PV,kubernetes,容器,云原生

k8s存儲卷-動態(tài)PV,kubernetes,容器,云原生

#創(chuàng)建集群角色

kubectl explain ClusterRole ?

#查看Kubernetes RBAC(Role-Based Access Control)的 ClusterRole 配置,

命名為 nfs-client-provisioner-clusterrole。這個 ClusterRole 定義了一組權(quán)限規(guī)則,

允許一個特定的服務賬戶(通常是用于 NFS 客戶端 Provisioner 的賬戶)執(zhí)行一些與存儲相關(guān)的操作。

k8s存儲卷-動態(tài)PV,kubernetes,容器,云原生

vim nfs-client-rbac.yaml

apiVersion: v1

kind: ServiceAccount

metadata:

??name: nfs-client-provisioner

---

apiVersion: rbac.authorization.k8s.io/v1

kind: ClusterRole

metadata:

??name: nfs-client-provisioner-clusterrole

rules:

??- apiGroups: [""]

????resources: ["persistentvolumes"]

????verbs: ["get", "list", "watch", "create", "delete"]

??- apiGroups: [""]

????resources: ["persistentvolumeclaims"]

????verbs: ["get", "list", "watch", "update"]

??- apiGroups: ["storage.k8s.io"]

????resources: ["storageclasses"]

????verbs: ["get", "list", "watch"]

??- apiGroups: [""]

????resources: ["events"]

????verbs: ["list", "watch", "create", "update", "patch"]

??- apiGroups: [""]

????resources: ["endpoints"]

????verbs: ["create", "delete", "get", "list", "watch", "patch", "update"]

---

apiVersion: rbac.authorization.k8s.io/v1

kind: ClusterRoleBinding

metadata:

??name: nfs-client-provisioner-clusterrolebinding

subjects:

- kind: ServiceAccount

??name: nfs-client-provisioner

??namespace: default

roleRef:

??kind: ClusterRole

??name: nfs-client-provisioner-clusterrole

??apiGroup: rbac.authorization.k8s.io

k8s存儲卷-動態(tài)PV,kubernetes,容器,云原生

k8s存儲卷-動態(tài)PV,kubernetes,容器,云原生

k8s存儲卷-動態(tài)PV,kubernetes,容器,云原生

部署插件:

NFS-privisioner , deployment來創(chuàng)建插件pod

1.20之后有一個新的機制

SelfLink:API的資源對象之一,表示資源對象在集群當中自身的一個連結(jié),self-Link是一個唯一的標識號,可以用于標識k8s集群當中的每個資源的對象

Self Link的值是一個URL,指向該資源對象的k8s API路徑

更好的實現(xiàn)資源對象的查找和引用

部署插件之前操作:

vim /etc/kubernetes/manifests/kube-apiserver.yaml

k8s存儲卷-動態(tài)PV,kubernetes,容器,云原生

k8s存儲卷-動態(tài)PV,kubernetes,容器,云原生

- --feature-gates=RemoveSelfLink=false

--feature-gates:在不破壞現(xiàn)有規(guī)則以及功能基礎(chǔ)上引入新功能或者修改現(xiàn)有功能的機制,禁用不影響規(guī)則

kubectl apply -f /etc/kubernetes/manifests/kube-apiserver.yaml

kubectl delete pods kube-apiserver -n kube-system

kubectl get pods -n kube-system | grep apiserver

k8s存儲卷-動態(tài)PV,kubernetes,容器,云原生

#創(chuàng)建 NFS Provisioner

接下來部署NFS-privisioner插件:

NFS的provisionner的客戶端以pod的方式運行在集群當中,監(jiān)聽k8s集群當中PV的請求,然后動態(tài)的創(chuàng)建于NFS相關(guān)的PV

容器里使用的配置,在provisioner當中定義好環(huán)境變量,傳給容器,storageclass的名稱,NFS服務器的地址,NFS的目錄

vim nfs-client-provisioner.yaml

apiVersion: apps/v1

kind: Deployment

metadata:

??name: nfs1

spec:

??replicas: 1

??selector:

????matchLabels:

??????app: nfs1

??strategy:

????type: Recreate

??template:

????metadata:

??????labels:

????????app: nfs1

????spec:

??????serviceAccountName: nfs-client-provisioner ?????????#指定Service Account賬戶

??????containers:

????????- name: nfs1

??????????image: quay.io/external_storage/nfs-client-provisioner:latest

??????????imagePullPolicy: IfNotPresent

??????????volumeMounts:

????????????- name: nfs

??????????????mountPath: /persistentvolumes

??????????env:

????????????- name: PROVISIONER_NAME

??????????????value: nfs-storage ???????????????#配置provisioner的Name,

????????????- name: NFS_SERVER

??????????????value: 20.0.0.74 ????????????#配置綁定的nfs服務器

????????????- name: NFS_PATH

??????????????value: /opt/k8s ??????????????????#配置綁定的nfs服務器目錄

??????volumes: ?????????????????????????????????#申明nfs數(shù)據(jù)卷

????????- name: nfs

??????????nfs:

????????????server: 20.0.0.74

????????????path: /opt/k8s

k8s存儲卷-動態(tài)PV,kubernetes,容器,云原生

k8s存儲卷-動態(tài)PV,kubernetes,容器,云原生

運行腳本

k8s存儲卷-動態(tài)PV,kubernetes,容器,云原生

k8s存儲卷-動態(tài)PV,kubernetes,容器,云原生

定義存儲卷相關(guān)的請求數(shù)據(jù),創(chuàng)建 StorageClass,負責建立 PVC 并調(diào)用 NFS provisioner 進行預定的工作,并讓 PV 與 PVC 建立關(guān)聯(lián)

apiVersion: storage.k8s.io/v1

kind: StorageClass

metadata:

??name: nfs-client-storageclass

provisioner: nfs-storage

parameters:

??archiveOnDelete: "false"

reclaimPolicy: Retain

allowVolumeExpansion: true

vim nfs-client-storageclass.yaml

k8s存儲卷-動態(tài)PV,kubernetes,容器,云原生

k8s存儲卷-動態(tài)PV,kubernetes,容器,云原生

k8s存儲卷-動態(tài)PV,kubernetes,容器,云原生

解析:

NAME: storageclass的名稱

PROVISIONER: 對應的創(chuàng)建PV的provision的插件

RECLAIMPOLICY:回收策略,保留

VOLUMEBINDINGMODE:卷綁定模式,immediate表示PVC請求創(chuàng)建PV時,系統(tǒng)會立即綁定一個可用的PV

WaitForFirstConsumer:第一個使用出現(xiàn)之后再綁定PV

ALLOWVOLUMEEXPANSION:表示可以在運行時對PV進行擴容

創(chuàng)建 PVC 和 Pod 測試

k8s存儲卷-動態(tài)PV,kubernetes,容器,云原生

vim test-pvc-pod.yaml

apiVersion: v1

kind: PersistentVolumeClaim

metadata:

??name: nfs-pvc

spec:

??accessModes:

????- ReadWriteMany

??storageClassName: nfs-client-storageclass

??resources:

????requests:

??????storage: 2Gi

---

apiVersion: apps/v1

kind: Deployment

metadata:

??name: test-storageclass-deployment

??labels:

????app: nginx1

spec:

??replicas: 1

??selector:

????matchLabels:

??????app: nginx1

??template:

????metadata:

??????labels:

????????app: nginx1

????spec:

??????containers:

??????- name: nginx1

????????image: nginx:1.22

????????volumeMounts:

????????- name: nfs-pvc

??????????mountPath: /usr/share/nginx/html

??????volumes:

??????- name: nfs-pvc

????????persistentVolumeClaim:

??????????claimName: nfs-pvc

k8s存儲卷-動態(tài)PV,kubernetes,容器,云原生

k8s存儲卷-動態(tài)PV,kubernetes,容器,云原生

k8s存儲卷-動態(tài)PV,kubernetes,容器,云原生

k8s存儲卷-動態(tài)PV,kubernetes,容器,云原生

k8s存儲卷-動態(tài)PV,kubernetes,容器,云原生

k8s存儲卷-動態(tài)PV,kubernetes,容器,云原生

測試

k8s存儲卷-動態(tài)PV,kubernetes,容器,云原生

共享成功

k8s存儲卷-動態(tài)PV,kubernetes,容器,云原生

//查看 NFS 服務器上是否生成對應的目錄,

自動創(chuàng)建的 PV 會以 ${namespace}-${pvcName}-${pvName} 的目錄格式放到 NFS 服務器上

ls /opt/k8s/

k8s存儲卷-動態(tài)PV,kubernetes,容器,云原生

再添加一條測試,看是否能夠同時綁定多條

k8s存儲卷-動態(tài)PV,kubernetes,容器,云原生

k8s存儲卷-動態(tài)PV,kubernetes,容器,云原生

共享服務器查看

k8s存儲卷-動態(tài)PV,kubernetes,容器,云原生

如何刪除恢復

k8s存儲卷-動態(tài)PV,kubernetes,容器,云原生

k8s存儲卷-動態(tài)PV,kubernetes,容器,云原生

再次使用時數(shù)據(jù)并沒有刪除

如何修改回收策略

k8s存儲卷-動態(tài)PV,kubernetes,容器,云原生

k8s存儲卷-動態(tài)PV,kubernetes,容器,云原生

沒有回收策略

k8s存儲卷-動態(tài)PV,kubernetes,容器,云原生

k8s存儲卷-動態(tài)PV,kubernetes,容器,云原生

k8s存儲卷-動態(tài)PV,kubernetes,容器,云原生

k8s存儲卷-動態(tài)PV,kubernetes,容器,云原生

動態(tài)PV的默認策略是刪除,共享目錄也會被刪除

k8s存儲卷-動態(tài)PV,kubernetes,容器,云原生

總結(jié):動態(tài)PV

Provisioner插件---支持NFS

Stroageclass:定義PV的屬性

動態(tài)PV的默認策略是刪除,動態(tài)策略沒有回收

動態(tài)PV刪除PVC之后的狀態(tài),released

總的來說:文章來源地址http://www.zghlxwxcb.cn/news/detail-797549.html

  1. 創(chuàng)建賬號,給卷插件能夠在集群內(nèi)部運行,獲取資源,監(jiān)聽時間,創(chuàng)建,刪除,更新PV
  2. 創(chuàng)建插件pod,卷插件的pod創(chuàng)建PV
  3. Storageclass:給PV賦予權(quán)限(PVC被刪除之后的狀態(tài),以及回收策略)
  4. 創(chuàng)建PVC----完成

到了這里,關(guān)于k8s存儲卷-動態(tài)PV的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務器費用

相關(guān)文章

  • K8S臨時存儲-本地存儲-PV和PVC的使用-動態(tài)存儲(StorageClass)

    容器中的文件在磁盤上是臨時存放的,當容器崩潰或停止時容器上面的數(shù)據(jù)未保存, 因此在容器生命周期內(nèi)創(chuàng)建或修改的所有文件都將丟失。 在崩潰期間,kubelet 會以干凈的狀態(tài)重新啟動容器。 當多個容器在一個 Pod 中運行并且需要共享文件時,會出現(xiàn)另一個問題,跨所有容

    2024年04月16日
    瀏覽(22)
  • 【K8S 存儲卷】K8S的存儲卷+PV/PVC

    【K8S 存儲卷】K8S的存儲卷+PV/PVC

    目錄 一、K8S的存儲卷 1、概念: 2、掛載的方式: 2.1、emptyDir: 2.2、hostPath: 2.3、NFS共享存儲: 二、PV和PVC: 1、概念 2、請求方式 3、靜態(tài)請求流程圖: 4、PV和PVC的生命周期 5、PV的狀態(tài): 6、PV的讀寫掛載方式: 7、回收策略: 三、PV和PVC靜態(tài)請求實驗: 1、默認的Retain保留策

    2024年02月02日
    瀏覽(58)
  • Kubernetes(k8s)安裝NFS動態(tài)供給存儲類并安裝KubeSphere

    Kubernetes(k8s)安裝NFS動態(tài)供給存儲類并安裝KubeSphere

    它是一款全棧的 Kubernetes 容器云 PaaS 解決方案(來源于官網(wǎng)),而我覺得它是一款強大的Kubernetes圖形界面,它繼承了如下組件 (下面這段內(nèi)容來自官網(wǎng)): Kubernetes DevOps 系統(tǒng) 基于 Jenkins 為引擎打造的 CI/CD,內(nèi)置 Source-to-Image 和 Binary-to-Image 自動化打包部署工具 基于 Istio 的微

    2024年02月09日
    瀏覽(32)
  • K8S動態(tài)PV

    pv和pvc存儲卷 存儲卷: emptyDir容器內(nèi)部,隨著pod銷毀,emptyDir也會消失,不能做數(shù)據(jù)持久化 hostPath:持久化存儲數(shù)據(jù),可以和節(jié)點上目錄做掛載。pod被銷毀了數(shù)據(jù)還在 NFS:一臺機器,提供pod內(nèi)容器所有的掛載點 pv和pvc: pvc就是pod發(fā)起得掛載得請求 pv:持久化存儲得目錄,Re

    2024年01月23日
    瀏覽(17)
  • k8s ------存儲卷(PV、PVC)

    k8s ------存儲卷(PV、PVC)

    目錄 一:為什么需要存儲卷? 二:emptyDir存儲卷? ?三:hostPath存儲卷? 四:nfs共享存儲卷? ?五:PVC 和 PV 1、PVC 和 PV介紹 2、PV和PVC之間的相互作用遵循的生命周期 3、PV 的4 種狀態(tài) 4、一個PV從創(chuàng)建到銷毀的具體流程 六:靜態(tài)創(chuàng)建pv和pvc資源由pod運用過程 ?1、配置nfs存儲 ?

    2024年02月13日
    瀏覽(19)
  • k8s 存儲卷和pvc,pv

    k8s 存儲卷和pvc,pv

    存儲卷---數(shù)據(jù)卷 容器內(nèi)的目錄和宿主機的目錄進行掛載。 容器在系統(tǒng)上的生命周期是短暫的,deletek8s用控制器創(chuàng)建的pod,delete相當于重啟,容器的狀態(tài)也會回復到初始狀態(tài)。 一旦回到初始狀態(tài),所有的后天編輯的文件的都會消失。 容器容器和節(jié)點之間創(chuàng)建一個可以持久化保

    2024年01月16日
    瀏覽(23)
  • k8s中的PV和PVC存儲介紹

    目錄 一.PV介紹 1.含義 2.關(guān)鍵配置參數(shù) 二.PVC介紹 1.含義 2.關(guān)鍵參數(shù)配置 三.PV和PVC的生命周期問題 1.PV的生命周期會有4個階段 2.用戶申請空間PV的周期流程 3.PV和PVC的使用/釋放/回收 四.案例演示 1.NFS配置 2.新建PV 3.新建PVC 4.新建Pod測試 5.模擬刪除Pod后后端目錄內(nèi)數(shù)據(jù)不會受影響

    2024年03月15日
    瀏覽(20)
  • K8S持久化存儲--- PVC和PV的存儲

    PersistentVolume ( PV )是群集中的一塊存儲,由管理員配置或使用存儲類動態(tài)配置。 它是集群中的資源,就像 pod 是 k8s 集群資源一樣。 PV是容量插件,如 Volumes ,其生命周期獨立于使用 PV 的任何單個 pod 。 PersistentVolumeClaim ( PVC )是一個持久化存儲卷,我們在創(chuàng)建 pod 時可以

    2023年04月10日
    瀏覽(18)
  • 【云原生】K8S存儲卷:PV、PVC詳解

    【云原生】K8S存儲卷:PV、PVC詳解

    容器磁盤上的文件的生命周期是短暫的,這就使得在容器中運行重要應用時會出現(xiàn)一些問題。首先,當容器崩潰時,kubelet 會重啟它,但是容器中的文件將丟失——容器以干凈的狀態(tài)(鏡像最初的狀態(tài))重新啟動。其次,在Pod中同時運行多個容器時,這些容器之間通常需要共

    2024年02月12日
    瀏覽(21)
  • Kubernetes基礎(chǔ)(二十二)-K8S的PV/PVC/StorageClass詳解

    Kubernetes基礎(chǔ)(二十二)-K8S的PV/PVC/StorageClass詳解

    先來個 一句話總結(jié) :PV、PVC是K8S用來做存儲管理的資源對象,它們讓存儲資源的使用變得 可控 ,從而保障系統(tǒng)的穩(wěn)定性、可靠性。StorageClass則是為了減少人工的工作量而去 自動化創(chuàng)建 PV的組件。所有Pod使用存儲只有一個原則: 先規(guī)劃 ?→? 后申請 ?→? 再使用 。 1.1 PV概念

    2024年02月20日
    瀏覽(28)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包