2020-08-06 Volume(數(shù)據(jù)卷)

1. Volume

  • Kubernetes中的Volume提供了在容器中掛載外部存儲(chǔ)的能力
  • Pod需要設(shè)置卷來源(spec.volume)和掛載點(diǎn)(spec.containers.volumeMounts)兩個(gè)信息后才可以使用相應(yīng)的Volume

2. emptyDir

創(chuàng)建一個(gè)空卷,掛載到Pod中的容器。Pod刪除該卷也會(huì)被刪除。
應(yīng)用場(chǎng)景:Pod中容器之間數(shù)據(jù)共享。

apiVersion: v1
kind: Pod
metadata:
  name: my-pod
spec:
  containers:
  - name: write
    image: centos
    command: ["bash","-c","for i in {1..100};do echo $i >> /data/hello;sleep 1;done"]
    volumeMounts:
    - name: data    ---使用的數(shù)據(jù)卷名稱,跟volumes:name要能匹配上
      mountPath: /data

  - name: read
    image: centos
    command: ["bash","-c","tail -f /data/hello"]
    volumeMounts:
    - name: data
      mountPath: /data

volumes:    ---定義數(shù)據(jù)卷來源,支持定義多個(gè)數(shù)據(jù)卷
  - name: data
    emptyDir: {}

3. hostPath

掛載Node文件系統(tǒng)上文件或者目錄到Pod中的容器。
應(yīng)用場(chǎng)景:Pod中容器需要訪問宿主機(jī)文件。

apiVersion: v1
kind: Pod
metadata:
  name: my-pod
spec:
  containers:
  - name: busybox
    image: busybox
    args:
    - /bin/sh
    - -c
    - sleep 36000
    volumeMounts:
    - name: data
      mountPath: /data    ---容器上的/data目錄
  volumes:
  - name: data
    hostPath:
      path: /tmp    ---宿主機(jī)上的/tmp目錄
      type: Directory    ---掛載的是一個(gè)目錄

4. NFS(網(wǎng)絡(luò)存儲(chǔ))

安裝服務(wù)端(最好另外找一臺(tái)機(jī)器專門做存儲(chǔ))

yum install nfs-utils -y
vi /etc/exports
/data/nfs *(rw,no_root_squash)    ---暴露/data/nfs 目錄,支持所有的IP來訪問,支持讀寫權(quán)限
systemctl start nfs

安裝客戶端(node節(jié)點(diǎn)都要安裝)

yum install nfs-utils -y
systemctl start nfs

nfs.yaml

apiVersion: apps/v1beta1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  replicas: 3
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx
        volumeMounts:
        - name: wwwroot
          mountPath: /usr/share/nginx/html    ---網(wǎng)站根目錄
        ports:
        - containerPort: 80
      volumes:
      - name: wwwroot
        nfs:
          server: 192.168.9.61   ---nfs服務(wù)地址
          path: /data/nfs    ---nfs暴露的目錄

kubectl apply -f nfs.yaml ---創(chuàng)建nfs的pod

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容