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

研發(fā)工程師玩轉(zhuǎn)Kubernetes——emptyDir

這篇具有很好參考價(jià)值的文章主要介紹了研發(fā)工程師玩轉(zhuǎn)Kubernetes——emptyDir。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

kubernets可以通過(guò)emptyDir實(shí)現(xiàn)在同一Pod的不同容器間共享文件系統(tǒng)。
研發(fā)工程師玩轉(zhuǎn)Kubernetes——emptyDir,kubernetes,kubernetes,容器,云原生
正如它的名字,當(dāng)Pod被創(chuàng)建時(shí),emptyDir卷會(huì)被創(chuàng)建,這個(gè)時(shí)候它是一個(gè)空的文件夾;當(dāng)Pod被刪除時(shí),emptyDir卷也會(huì)被永久刪除。

同一Pod上不同容器之間共享

# bash
if [ -f /tempdir/lockfile ] && ! { set -C; 2>/dev/null >/tempdir/lockfile; }; then
    tail -f /tempdir/lockfile
else
    exec 3>/tempdir/lockfile
    if [ -n "$POD_NAME" ]; then
        pod_name=$POD_NAME
    else
        pod_name="unknown_pod"
    fi
    if [ -n "$CONTAINER_NAME" ]; then
        container_name=$CONTAINER_NAME
    else
        container_name="unknown_container"
    fi
    while true; do
        echo "$pod_name $container_name write something to lockfile" >&3
        sleep 5
    done
fi

我們使用上面這段腳本,會(huì)檢測(cè)/tempdir/lockfile文件是否存在。如果不存在則創(chuàng)建這個(gè)文件,并獲取Pod和Container名稱(chēng),然后每隔5秒鐘在/tempdir/lockfile寫(xiě)入一句話;如果存在,則不停打印新寫(xiě)入這個(gè)文件的內(nèi)容。
然后使用下面的清單文件創(chuàng)建一個(gè)deployment

# emptydir_same_pod.yaml 
apiVersion: apps/v1
kind: Deployment
metadata:
  name: emptydir-deployment
spec:
  selector:
    matchLabels:
      app: emptydir-container
  replicas: 1
  template:
    metadata:
      labels:
        app: emptydir-container
    spec:
      containers:
      - name: emptydir-container1
        image: busybox
        command: ["/bin/sh", "-c", "if [ -f /tempdir/lockfile ] && ! { set -C; 2>/dev/null >/tempdir/lockfile; }; then tail -f /tempdir/lockfile; else exec 3>/tempdir/lockfile; if [ -n \"$POD_NAME\" ]; then pod_name=$POD_NAME; else pod_name=\"unknown_pod\"; fi; if [ -n \"$CONTAINER_NAME\" ]; then container_name=$CONTAINER_NAME; else container_name=\"unknown_container\"; fi; while true; do echo \"$pod_name $container_name write something to lockfile\" >&3; sleep 5; done; fi;"]
        volumeMounts:
        - name: emptydir-volume
          mountPath: /tempdir
        env:
        - name: POD_NAME
          valueFrom:
            fieldRef:
              fieldPath: metadata.name
        - name: CONTAINER_NAME
          value: emptydir-container1
      - name: emptydir-container2
        image: busybox
        command: ["/bin/sh", "-c" ,"if [ -f /tempdir/lockfile ] && ! { set -C; 2>/dev/null >/tempdir/lockfile; }; then tail -f /tempdir/lockfile; else exec 3>/tempdir/lockfile; if [ -n \"$POD_NAME\" ]; then pod_name=$POD_NAME; else pod_name=\"unknown_pod\"; fi; if [ -n \"$CONTAINER_NAME\" ]; then container_name=$CONTAINER_NAME; else container_name=\"unknown_container\"; fi; while true; do echo \"$pod_name $container_name write something to lockfile\" >&3; sleep 5; done; fi;"]
        volumeMounts:
        - name: emptydir-volume
          mountPath: /tempdir
        env:
        - name: POD_NAME
          valueFrom:
            fieldRef:
              fieldPath: metadata.name
        - name: CONTAINER_NAME
          value: emptydir-container2
      volumes:
      - name: emptydir-volume
        emptyDir: 
          medium: Memory
          sizeLimit: 1Gi

這個(gè)Deployment會(huì)創(chuàng)建一個(gè)Pod,這個(gè)Pod會(huì)含有兩個(gè)容器:emptydir-container1和emptydir-container2。
使用下面命令創(chuàng)建這個(gè)部署

kubectl create -f emptydir_same_pod.yaml 

deployment.apps/emptydir-deployment created

然后登錄到容器中查看/tempdir/lockfile文件的內(nèi)容

kubectl exec pods/emptydir-deployment-75c6545df5-slznj --container emptydir-container1 -it -- tail -f /tempdir/lockfile

emptydir-deployment-75c6545df5-slznj emptydir-container1 write something to lockfile
emptydir-deployment-75c6545df5-slznj emptydir-container1 write something to lockfile
emptydir-deployment-75c6545df5-slznj emptydir-container1 write something to lockfile
……

kubectl exec pods/emptydir-deployment-75c6545df5-slznj --container emptydir-container2 -it -- tail -f /tempdir/lockfile

emptydir-deployment-75c6545df5-slznj emptydir-container1 write something to lockfile
emptydir-deployment-75c6545df5-slznj emptydir-container1 write something to lockfile
emptydir-deployment-75c6545df5-slznj emptydir-container1 write something to lockfile
……

可以看到emptydir-container1容器在持續(xù)寫(xiě)入內(nèi)容;emptydir-container2因?yàn)闄z測(cè)到/tempdir/lockfile文件存在,就不會(huì)寫(xiě)入文件。
通過(guò)下面指令可以看到emptydir-container2的輸出

kubectl logs pods/emptydir-deployment-75c6545df5-slznj --container emptydir-container2

emptydir-deployment-75c6545df5-slznj emptydir-container1 write something to lockfile
emptydir-deployment-75c6545df5-slznj emptydir-container1 write something to lockfile
emptydir-deployment-75c6545df5-slznj emptydir-container1 write something to lockfile
……

同一個(gè)Node的不同Pod間不可以共享

我們應(yīng)用Pod親和性,讓Deployment在同一個(gè)Node上部署相同的Pod。

# emptydir_same_node.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: emptydir-same-node-deployment
spec:
  selector:
    matchLabels:
      app: emptydir-container
  replicas: 2
  template:
    metadata:
      labels:
        app: emptydir-container
    spec:
      affinity:
        podAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
          - labelSelector:
                matchExpressions:
                - key: app
                  operator: In
                  values:
                  - emptydir-container
            topologyKey: "kubernetes.io/hostname"
      containers:
      - name: emptydir-container
        image: busybox
        command: ["/bin/sh", "-c", "if [ -f /tempdir/lockfile ] && ! { set -C; 2>/dev/null >/tempdir/lockfile; }; then tail -f /tempdir/lockfile; else exec 3>/tempdir/lockfile; if [ -n \"$POD_NAME\" ]; then pod_name=$POD_NAME; else pod_name=\"unknown_pod\"; fi; if [ -n \"$CONTAINER_NAME\" ]; then container_name=$CONTAINER_NAME; else container_name=\"unknown_container\"; fi; while true; do echo \"$pod_name $container_name write something to lockfile\" >&3; sleep 5; done; fi;"]
        volumeMounts:
        - name: emptydir-volume
          mountPath: /tempdir
        env:
        - name: POD_NAME
          valueFrom:
            fieldRef:
              fieldPath: metadata.name
        - name: CONTAINER_NAME
          value: emptydir-container
      volumes:
      - name: emptydir-volume
        emptyDir: 
          medium: Memory
          sizeLimit: 1Gi

創(chuàng)建好這個(gè)部署后,我們可以通過(guò)下面指令確認(rèn)它們被部署在同一個(gè)Node(ubuntuc)上。

kubectl get pods -o wide
NAME                                             READY   STATUS    RESTARTS   AGE   IP            NODE      NOMINATED NODE   READINESS GATES
emptydir-same-node-deployment-6b6cfbb769-vhj7k   1/1     Running   0          34s   10.1.43.199   ubuntuc   <none>           <none>
emptydir-same-node-deployment-6b6cfbb769-mgh8h   1/1     Running   0          34s   10.1.43.198   ubuntuc   <none>           <none>

然后查看每個(gè)Pod上/tempdir/lockfile文件的內(nèi)容

kubectl exec pods/emptydir-same-node-deployment-6b6cfbb769-mgh8h --container emptydir-container -it -- tail -f /tempdir/lockfile

emptydir-same-node-deployment-6b6cfbb769-mgh8h emptydir-container write something to lockfile
emptydir-same-node-deployment-6b6cfbb769-mgh8h emptydir-container write something to lockfile
emptydir-same-node-deployment-6b6cfbb769-mgh8h emptydir-container write something to lockfile
……

kubectl exec pods/emptydir-same-node-deployment-6b6cfbb769-vhj7k --container emptydir-container -it -- tail -f /tempdir/lockfile

emptydir-same-node-deployment-6b6cfbb769-vhj7k emptydir-container write something to lockfile
emptydir-same-node-deployment-6b6cfbb769-vhj7k emptydir-container write something to lockfile
emptydir-same-node-deployment-6b6cfbb769-vhj7k emptydir-container write something to lockfile
……

可以看到它們打印出來(lái)的Pod名稱(chēng)不同,即可以證明:同一個(gè)Node上不同Pod創(chuàng)建的emptyDir是不同的。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-632856.html

參考資料

  • https://kubernetes.io/zh-cn/docs/concepts/storage/volumes/#emptydir

到了這里,關(guān)于研發(fā)工程師玩轉(zhuǎn)Kubernetes——emptyDir的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 研發(fā)工程師玩轉(zhuǎn)Kubernetes——使用Node特性定向調(diào)度Pod

    在《研發(fā)工程師玩轉(zhuǎn)Kubernetes——使用污點(diǎn)(taint)驅(qū)逐Pod》中我們提到親和性(affinity)中的requiredDuringSchedulingIgnoredDuringExecution,它可以定向調(diào)度Pod。本節(jié)我們將使用相關(guān)特性完成定向調(diào)度的介紹。 我們先模擬Pod被部署在Master Node上的場(chǎng)景。這個(gè)時(shí)候我們可以使用nodeSelector對(duì)

    2024年02月08日
    瀏覽(20)
  • 【個(gè)人介紹】后端研發(fā)工程師

    1. 熟悉JAVA基礎(chǔ)、多線程、并發(fā)編程、設(shè)計(jì)模式、數(shù)據(jù)結(jié)構(gòu)與算法、JVM原理與調(diào)優(yōu)等。 2. 熟悉SpringBoot、SpringCloud、SpringCloud Alibaba、JPA、MyBatis等框架。 3. 熟悉數(shù)據(jù)庫(kù)設(shè)計(jì)、MySQL原理與索引優(yōu)化、Redis、Memecache、MongoDB等。 4. 熟悉Nginx、主從集群、TCP/IP、NIO編程、Reactor模式、Nett

    2023年04月09日
    瀏覽(36)
  • 一些研發(fā)工程師在Springboot注意點(diǎn)

    一些研發(fā)工程師在Springboot注意點(diǎn)

    1. 正確設(shè)計(jì)代碼目錄結(jié)構(gòu) 雖然您有很大的自由度,但有一些基本規(guī)則值得遵循來(lái)設(shè)計(jì)您的源代碼結(jié)構(gòu)。 避免使用默認(rèn)包。確保所有內(nèi)容(包括入口點(diǎn))都在命名良好的包中,這樣您就可以避免與組裝和組件掃描相關(guān)的意外情況; 將 Application.java(應(yīng)用程序的入口類(lèi))放在頂

    2024年02月08日
    瀏覽(22)
  • 技術(shù)精英求職必備:大數(shù)據(jù)研發(fā)工程師簡(jiǎn)歷模板

    原則 撰寫(xiě)針對(duì)大數(shù)據(jù)研發(fā)工程師職位的簡(jiǎn)歷時(shí),關(guān)鍵在于準(zhǔn)確展現(xiàn)您在 大數(shù)據(jù)處理、分析和應(yīng)用開(kāi)發(fā)方面的綜合技能、項(xiàng)目經(jīng)驗(yàn)和技術(shù)成就 。簡(jiǎn)歷應(yīng)作為您展示跨多個(gè)技術(shù)棧的 編程能力、構(gòu)建完整大數(shù)據(jù)解決方案和有效解決大數(shù)據(jù)技術(shù)問(wèn)題 的能力的窗口。確保每一項(xiàng)經(jīng)歷

    2024年02月21日
    瀏覽(26)
  • 技術(shù)精英求職必備:AIGC(圖像生成)研發(fā)工程師簡(jiǎn)歷指南

    核心原則 撰寫(xiě)針對(duì)AIGC(圖像生成)研發(fā)工程師職位的簡(jiǎn)歷時(shí),關(guān)鍵在于準(zhǔn)確展現(xiàn)您在深度學(xué)習(xí)、計(jì)算機(jī)視覺(jué)和圖像生成算法方面的綜合技能、項(xiàng)目經(jīng)驗(yàn)和技術(shù)成就。簡(jiǎn)歷應(yīng)作為您展示跨多個(gè)技術(shù)棧的編程能力、構(gòu)建完整的圖像生成解決方案和有效解決AIGC技術(shù)問(wèn)題的能力的窗口

    2024年03月25日
    瀏覽(28)
  • 【社招】【中國(guó)電信-天翼云】誠(chéng)聘高級(jí)FPGA研發(fā)工程師

    【社招】【中國(guó)電信-天翼云】誠(chéng)聘高級(jí)FPGA研發(fā)工程師

    基礎(chǔ)架構(gòu)部門(mén)介紹: 天翼云是中國(guó)電信旗下云計(jì)算品牌,致力于成為領(lǐng)先的云計(jì)算服務(wù)提供商。 基礎(chǔ)架構(gòu)部作為天翼云的核心部門(mén),負(fù)責(zé)構(gòu)建天翼云的整個(gè)物理基礎(chǔ)設(shè)施。打造了包括紫金DPU、物理服務(wù)器、物理網(wǎng)絡(luò)、RDMA網(wǎng)絡(luò)、操作系統(tǒng)、虛擬化、IDC在內(nèi)的核心底座產(chǎn)品。基

    2024年02月03日
    瀏覽(27)
  • 《研發(fā)效能(DevOps)工程師》課程簡(jiǎn)介(二)丨IDCF

    《研發(fā)效能(DevOps)工程師》課程簡(jiǎn)介(二)丨IDCF

    為貫徹落實(shí)《關(guān)于深化人才發(fā)展體制機(jī)制改革的意見(jiàn)》,推動(dòng)實(shí)施人才強(qiáng)國(guó)戰(zhàn)略,促進(jìn)專(zhuān)業(yè)技術(shù)人員提升職業(yè)素養(yǎng)、補(bǔ)充新知識(shí)新技能,實(shí)現(xiàn)人力資源深度開(kāi)發(fā),推動(dòng)經(jīng)濟(jì)社會(huì)全面發(fā)展,根據(jù)《中華人民共和國(guó)勞動(dòng)法》有關(guān)規(guī)定,工業(yè)和信息化部教育與考試中心聯(lián)合有關(guān)部門(mén)

    2024年02月07日
    瀏覽(22)
  • 博冠光電8K事業(yè)部招聘研發(fā)工程師及產(chǎn)品經(jīng)理

    一、高級(jí)結(jié)構(gòu)工程師 工作職責(zé):1、負(fù)責(zé)公司產(chǎn)品的機(jī)械結(jié)構(gòu)設(shè)計(jì)、模具開(kāi)發(fā)和量產(chǎn)導(dǎo)入;2、負(fù)責(zé)機(jī)械結(jié)構(gòu)方向的技術(shù)預(yù)研,包括技術(shù)專(zhuān)題研究,技術(shù)難題攻關(guān);?3、負(fù)責(zé)結(jié)構(gòu)組的技術(shù)管理工作,包括帶新人,材料選型,設(shè)計(jì)審核;4、領(lǐng)導(dǎo)安排的其他工作。任職要求:1.、本

    2024年02月12日
    瀏覽(28)
  • 阿里云研發(fā)工程師劉睿:阿里云消息生態(tài)及最佳實(shí)踐

    阿里云研發(fā)工程師劉睿:阿里云消息生態(tài)及最佳實(shí)踐

    2022 年 9 月 24 日,阿里云用戶(hù)組(AUG)第 12 期活動(dòng)在廈門(mén)舉辦?;顒?dòng)現(xiàn)場(chǎng),阿里云消息中間件研發(fā)工程師劉睿,向參會(huì)企業(yè)代表分享了阿里云消息生態(tài)及最佳實(shí)踐。本文根據(jù)演講內(nèi)容整理而成。 眾所周知,消息中間件作為現(xiàn)代軟件體系中的底層基礎(chǔ)軟件,和數(shù)據(jù)庫(kù)一樣廣泛

    2023年04月09日
    瀏覽(24)
  • 突破職場(chǎng)競(jìng)爭(zhēng),引領(lǐng)未來(lái)發(fā)展:考取《研發(fā)效能(DevOps)工程師職業(yè)技術(shù)認(rèn)證》

    突破職場(chǎng)競(jìng)爭(zhēng),引領(lǐng)未來(lái)發(fā)展:考取《研發(fā)效能(DevOps)工程師職業(yè)技術(shù)認(rèn)證》

    就業(yè)形勢(shì)堪憂(yōu),什么最有保障?考個(gè)“國(guó)家級(jí)”證書(shū)傍身吧! 工信部教考中心作為中國(guó)領(lǐng)先的行業(yè)技能認(rèn)證機(jī)構(gòu),其頒發(fā)的認(rèn)證證書(shū)不僅代表了個(gè)人在信息技術(shù)領(lǐng)域的專(zhuān)業(yè)能力,更可以錄入工業(yè)和信息化技術(shù)技能人才數(shù)據(jù)庫(kù),這是一個(gè)重要的信息資源平臺(tái),它可以幫助企業(yè)和

    2024年02月05日
    瀏覽(17)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包