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

k8s目錄和文件掛載到宿主機(jī)的方式

 更新時(shí)間:2024年01月22日 10:21:25   作者:小邋遢2.0  
Docker是一種流行的容器化技術(shù),它允許開發(fā)人員在不同的環(huán)境中構(gòu)建、打包和運(yùn)行應(yīng)用程序,下面這篇文章主要給大家介紹了關(guān)于k8s目錄和文件掛載到宿主機(jī)的相關(guān)資料,需要的朋友可以參考下

k8s生產(chǎn)中常用的volumes掛載方式有:hostPath、pv,pvc、nfs

1.hostPath掛載     

hostPath是將主機(jī)節(jié)點(diǎn)文件系統(tǒng)上的文件或目錄掛載到Pod 中,同時(shí)pod中的目錄或者文件也會(huì)實(shí)時(shí)存在宿主機(jī)上,如果pod刪除,hostpath中的文件不會(huì)被刪除。(生成的pod只能在同一個(gè)節(jié)點(diǎn)上,調(diào)度到其他節(jié)點(diǎn)就不會(huì)掛載)

配置文件:

[root@master1 k8s-nginx]# cat nginx-test.yaml 
apiVersion: v1
kind: Service
metadata:
  labels:
    app: nginx-service
  name: nginx-service
  namespace: default
spec:
  ports:
    #對(duì)外暴露端口30003
  - nodePort: 30003
    port: 8010
    protocol: TCP
    targetPort: 8010
  selector:
    app: nginx-web
  #NodePort對(duì)外暴露端口
  type: NodePort
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: nginx-web
  name: nginx-web
  namespace: default
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx-web
  template:
    metadata:
      labels:
        app: nginx-web
      namespace: default
    spec:
      imagePullSecrets:
      - name: secret-key
      containers:
      - image: registry.cn-zhangjiakou.aliyuncs.com/ymku/nginx:v2
        name: nginx
        env:  
        - name: TZ  
          value: Asia/Shanghai
        imagePullPolicy: Always
        ports:
        - containerPort: 8010
        resources:
          requests:
            cpu: 100m
            memory: 512Mi
          limits:
            cpu: 1000m
            memory: 1Gi
        volumeMounts:
        - name: nginx-volume-dir
          mountPath: /var/log/nginx
        - name: nginx-volume-file
          mountPath: /var/log/nginx/access2.log
      volumes:
      - name: nginx-volume-dir
        hostPath:
          path: /root/k8s-nginx/nginx/log
          type: DirectoryOrCreate #如果目錄不存在就創(chuàng)建
      - name: nginx-volume-file
        hostPath:
          path: /root/k8s-nginx/nginx/log/access2.log
          type: FileOrCreate ## 如果文件不存在則創(chuàng)建

這個(gè)是master1節(jié)點(diǎn)創(chuàng)建的,pod是在node1節(jié)點(diǎn)上運(yùn)行的,所以日志是存儲(chǔ)在node1節(jié)點(diǎn)上

需要登錄到node1節(jié)點(diǎn)上查看掛載的情況:

 在node1節(jié)點(diǎn)上查看是否目錄和日志文件:

2.nfs掛載

nfs掛載是hostPath掛載的升級(jí)版,優(yōu)點(diǎn)是在不同的node節(jié)點(diǎn)上的日志,文件都可以掛載到nfs的機(jī)器上,只需要配置上nfs掛載的機(jī)器ip和掛載的路徑就行。

安裝nfs,建立共享服務(wù)器(單獨(dú)服務(wù)器安裝nfs掛載,ip:10.10.10.25)
[root@localhost ~]# yum -y install nfs-utils
...
創(chuàng)建存儲(chǔ)目錄:
[root@localhost ~]# mkdir -p /data/nfs/{conf,dist,log}   #可以創(chuàng)建多個(gè)存儲(chǔ)目錄

[root@localhost ~]# vim /etc/exports
/data/nfs 10.10.10.24(rw,no_root_squash)  #可以添加多個(gè)存儲(chǔ)目錄
#將共享目錄以讀寫權(quán)限給node1機(jī)器,因?yàn)閜od是跑在node1節(jié)點(diǎn)上:10.10.10.24

啟動(dòng)nfs應(yīng)用:
[root@localhost ~]# systemctl start nfs

查看進(jìn)程:
[root@localhost ~]# ps -ef |grep nfs
root     104715      2  0 15:56 ?        00:00:00 [nfsd4_callbacks]
root     104721      2  0 15:56 ?        00:00:00 [nfsd]
root     104722      2  0 15:56 ?        00:00:00 [nfsd]
root     104723      2  0 15:56 ?        00:00:00 [nfsd]
root     104724      2  0 15:56 ?        00:00:00 [nfsd]
root     104725      2  0 15:56 ?        00:00:00 [nfsd]
root     104726      2  0 15:56 ?        00:00:00 [nfsd]
root     104727      2  0 15:56 ?        00:00:00 [nfsd]
root     104728      2  0 15:56 ?        00:00:00 [nfsd]
root     104750 103971  0 15:56 pts/0    00:00:00 grep --color=auto nfs


修改/etc/exports后,使文件生效:
[root@localhost ~]# exportfs -r
/data/nfs	10.10.10.24

查看掛載目錄:
[root@localhost nfs]# exportfs
/data/nfs/conf	10.10.10.24
/data/nfs/log 	10.10.10.24
/data/nfs/dist	10.10.10.24
[root@localhost nfs]# exportfs -v
/data/nfs/conf	10.10.10.24(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,no_root_squash,no_all_squash)
/data/nfs/log 	10.10.10.24(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,no_root_squash,no_all_squash)
/data/nfs/dist	10.10.10.24(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,no_root_squash,no_all_squash)

 編寫pod的yaml文件:

vim nginx-nfs.yaml
apiVersion: v1
kind: Service
metadata:
  labels:
    app: nginx-service
  name: nginx-service
  namespace: default
spec:
  ports:
    #對(duì)外暴露端口30003
  - nodePort: 30003
    port: 8010
    protocol: TCP
    targetPort: 8010
  selector:
    app: nginx-web
  #NodePort對(duì)外暴露端口
  type: NodePort
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: nginx-web
  name: nginx-web
  namespace: default
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx-web
  template:
    metadata:
      labels:
        app: nginx-web
      namespace: default
    spec:
      imagePullSecrets:
      - name: secret-key
      containers:
      - image: registry.cn-zhangjiakou.aliyuncs.com/ymku/nginx:v2
        name: nginx
        env:  
        - name: TZ 
          value: Asia/Shanghai
        imagePullPolicy: Always
        ports:
        - containerPort: 8010
        resources:
          requests:
            cpu: 100m
            memory: 512Mi
          limits:
            cpu: 1000m
            memory: 1Gi
        volumeMounts:
        - name: nginx-volume-dir
          mountPath: /var/log/nginx
        #- name: nginx-volume-file
        #  mountPath: /var/log/nginx/access2.log
        #- name: nginx-config
        #  mountPath: /etc/nginx/conf.d
      volumes:
      - name: nginx-volume-dir
        nfs:
          server: 10.10.10.25
          path: /data/nfs 
      #- name: nginx-volume-file
      #    server: 10.10.10.25
      #    path: /data/nfs
      #- name: nginx-config
      #  nfs:
      #    server: 10.10.10.25
      #    path: /data/nfs

驗(yàn)證:到安裝nfs機(jī)器上的/data/nfs/log目錄查看是否有文件

問題:單獨(dú)nfs掛載好像只能掛載一個(gè)目錄,掛載多個(gè)目錄不生效并且導(dǎo)致部分文件消失? 

/etc/exports 配置:

yaml配置: 

        volumeMounts:
        - name: nginx-dir
          mountPath: /etc/nginx/dist
        - name: nginx-log
          mountPath: /var/log/nginx
        - name: nginx-config
          mountPath: /etc/nginx/conf.d
      volumes:
      - name: nginx-dir
        nfs:
          server: 10.10.10.25
          path: /data/nfs/dist
      - name: nginx-log
        nfs:
          server: 10.10.10.25
          path: /data/nfs/log
      - name: nginx-config
        nfs:
          server: 10.10.10.25
          path: /data/nfs/conf

待續(xù)...

3.pv、pvc掛載

pv,pvc掛載是基于nfs掛載的高級(jí)方式(如果不搭配nfs使用,側(cè)配置的pv,pvc默認(rèn)是pod所在node節(jié)點(diǎn)上),通過PV和PVC,Kubernetes可以實(shí)現(xiàn)存儲(chǔ)資源的動(dòng)態(tài)供給、自動(dòng)擴(kuò)展和縮減,以及共享和負(fù)載均衡等高級(jí)特性。PV和PVC的出現(xiàn)使得應(yīng)用容器可以隨時(shí)地掛載或卸載存儲(chǔ)資源,而無需手動(dòng)管理存儲(chǔ)卷的創(chuàng)建、掛載和卸載等操作。

1.創(chuàng)建pv(相當(dāng)于存儲(chǔ)設(shè)備)

vim pv.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: pv
  labels:
    pv: pv-nfs
spec:
  capacity:
    storage: 10Gi
  accessModes:
    - ReadWriteMany
  volumeMode: Filesystem
  persistentVolumeReclaimPolicy: Retain
  storageClassName: nfs
  nfs:
    server: 10.10.10.25
    path: /data/nfs
kubectl apply -f pv.yaml

2.創(chuàng)建pvc(相當(dāng)于調(diào)度存儲(chǔ)設(shè)備資源的)

vim nginx-pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: pvc
spec:
  accessModes:
    - ReadWriteMany
  volumeMode: Filesystem
  resources:
    requests:
      storage: 2Gi
  storageClassName: nfs
  selector:
    matchLabels:
      pv: pv-nfs
kubectl apply -f pvc.yaml

3.創(chuàng)建pod(去請(qǐng)求pvc的)

vim nginx-pod.yaml
apiVersion: v1
kind: Service
metadata:
  labels:
    app: nginx-service
  name: nginx-service
  namespace: default
spec:
  ports:
    #對(duì)外暴露端口30003
  - nodePort: 30003
    port: 8010
    protocol: TCP
    targetPort: 8010
  selector:
    app: nginx-web
  #NodePort對(duì)外暴露端口
  type: NodePort
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: nginx-web
  name: nginx-web
  namespace: default
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx-web
  template:
    metadata:
      labels:
        app: nginx-web
      namespace: default
    spec:
      imagePullSecrets:
      - name: secret-key
      containers:
      - image: registry.cn-zhangjiakou.aliyuncs.com/ymku/nginx:v2
        name: nginx
        env:  
        - name: TZ 
          value: Asia/Shanghai
        imagePullPolicy: Always
        ports:
        - containerPort: 8010
        resources:
          requests:
            cpu: 100m
            memory: 512Mi
          limits:
            cpu: 1000m
            memory: 1Gi
        volumeMounts:
        - name: nginx-log
          mountPath: /var/log/nginx
        #- name: nginx-conf
        #  mountPath: /etc/nginx/conf.d
        #- name: nginx-dist
        #  mountPath: /etc/nginx/dist
      volumes:
      - name: nginx-log
        persistentVolumeClaim:
          claimName: pvc
      #- name: nginx-conf
      #  persistentVolumeClaim:
      #    claimName: pvc
      #- name: nginx-dist
      #  persistentVolumeClaim:
      #    claimName: pvc
		
kubectl apply -f nginx-pod.yaml

查看運(yùn)行狀態(tài):

kubectl describe pod nginx-web-6665c66698-fxhzl

驗(yàn)證:

登錄到nfs的服務(wù)器,進(jìn)到掛載路徑下看是否有文件

總結(jié) 

到此這篇關(guān)于k8s目錄和文件掛載到宿主機(jī)的文章就介紹到這了,更多相關(guān)k8s目錄文件掛載到宿主機(jī)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Rainbond功能架構(gòu)及應(yīng)用管理官方文檔介紹

    Rainbond功能架構(gòu)及應(yīng)用管理官方文檔介紹

    這篇文章主要為大家介紹了Rainbond功能機(jī)構(gòu)及使用官方文檔,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-04-04
  • K8S?使用EFK日志的統(tǒng)一管理(詳細(xì)步驟)

    K8S?使用EFK日志的統(tǒng)一管理(詳細(xì)步驟)

    在Kubernetes中,EFK是一種常見的日志統(tǒng)一管理方案,EFK堆棧允許你收集、存儲(chǔ)、搜素、分析和可視化容器應(yīng)用程序的日志,下面是如何在Kubernetes中使用EFK實(shí)現(xiàn)日志統(tǒng)一管理的詳細(xì)步驟,感興趣的朋友一起看看吧
    2025-01-01
  • Kubernetes?DNS解析實(shí)戰(zhàn)過程

    Kubernetes?DNS解析實(shí)戰(zhàn)過程

    Kubernetes中,Pod需Ready狀態(tài)才會(huì)被CoreDNS解析,而Service創(chuàng)建時(shí)即添加記錄,當(dāng)服務(wù)依賴Pod解析時(shí)易引發(fā)啟動(dòng)死循環(huán),通過設(shè)置Service的publishNotReadyAddresses為true,可解決此問題,允許未就緒Pod的IP立即被解析
    2025-09-09
  • 使用kubeadm部署kubernetes1.27.1版本教程

    使用kubeadm部署kubernetes1.27.1版本教程

    文章概述了K8s集群搭建的準(zhǔn)備與兩種部署方式:kubeadm(快速)和二進(jìn)制(手動(dòng)),涵蓋單master配置、硬件要求、網(wǎng)絡(luò)設(shè)置及初始化流程,適用于測(cè)試環(huán)境,提供參考經(jīng)驗(yàn)
    2025-08-08
  • k8s部署ingress-nginx的詳細(xì)步驟大全

    k8s部署ingress-nginx的詳細(xì)步驟大全

    nginx一般是作為服務(wù)的入口,其在kubernetes的部署方式也大致相似,這篇文章主要給大家介紹了關(guān)于k8s部署ingress-nginx的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2024-01-01
  • Ansible部署K8s集群的方法

    Ansible部署K8s集群的方法

    這篇文章主要介紹了Ansible部署K8s集群,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-02-02
  • k8s無法刪除pv,pvc的問題及解決

    k8s無法刪除pv,pvc的問題及解決

    在Kubernetes中刪除PVC時(shí),若未指定名稱或使用錯(cuò)誤參數(shù),會(huì)報(bào)錯(cuò)"no name was specified",解決方法為:使用`kubectl delete pvc <pvc-name>`明確指定PVC名稱,或通過`kubectl delete pvc --all`刪除所有PVC,同時(shí)確保正確指定命名空間(-n)
    2025-09-09
  • k8s調(diào)度原理以及自定義調(diào)度器方式

    k8s調(diào)度原理以及自定義調(diào)度器方式

    文章主要介紹了Kubernetes中的kube-scheduler組件及其調(diào)度流程,然后詳細(xì)講解了如何通過調(diào)度器擴(kuò)展程序和調(diào)度框架來定制和擴(kuò)展調(diào)度器,包括創(chuàng)建簡(jiǎn)單的自定義調(diào)度器擴(kuò)展程序和調(diào)度框架插件的實(shí)現(xiàn)步驟,最后討論了自定義調(diào)度策略時(shí)需要注意的問題及解決方案
    2026-04-04
  • k8s之yaml文件的使用及說明

    k8s之yaml文件的使用及說明

    這篇文章主要介紹了YAML文件在Kubernetes中的使用,包括YAML文件的格式、創(chuàng)建資源對(duì)象、創(chuàng)建Service服務(wù)、查看和測(cè)試Service、解釋Kubernetes中的port概念以及如何使用`kubectl`命令生成和修改YAML模板,同時(shí),文章也簡(jiǎn)要介紹了如何編寫和訪問MySQL的YAML文件
    2025-11-11
  • 某集團(tuán)任意文件下載到虛擬主機(jī)getshell的方法

    某集團(tuán)任意文件下載到虛擬主機(jī)getshell的方法

    這篇文章主要介紹了某集團(tuán)任意文件下載到虛擬主機(jī)getshell的方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-01-01

最新評(píng)論

舟曲县| 仪陇县| 茂名市| 临朐县| 类乌齐县| 汕尾市| 满洲里市| 东山县| 兖州市| 民权县| 乡城县| 龙江县| 西盟| 罗江县| 普定县| 安庆市| 广丰县| 开封县| 罗源县| 六枝特区| 南陵县| 余庆县| 苗栗市| 竹溪县| 深州市| 射阳县| 余姚市| 丰台区| 蓝田县| 奎屯市| 腾冲县| 克东县| 邻水| 河曲县| 安宁市| 台南市| 丰镇市| 封丘县| 湛江市| 合江县| 翼城县|