亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.430618.com 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

本文主要從以下4個(gè)方面介紹Init容器:Init容器作用、Init容器特性、Init容器與應(yīng)用容器的區(qū)別、Init容器實(shí)戰(zhàn)。

Kube.NETes中的Pod內(nèi)可以運(yùn)行多個(gè)容器,主要分為2種:Init容器、應(yīng)用容器,Sidecar容器也是一種特殊的Init容器。

Kubernetes-Init容器的六個(gè)特性

Init容器的作用

Init 容器是一種特殊容器,在Pod內(nèi)的應(yīng)用容器啟動(dòng)之前運(yùn)行。用于執(zhí)行一些初始化的任務(wù)或設(shè)置,或者用于延遲執(zhí)行應(yīng)用容器。

有不少場(chǎng)景都需要在應(yīng)用容器啟動(dòng)之前進(jìn)行部分初始化操作,比如:等待某個(gè)服務(wù)需要等待其關(guān)聯(lián)的服務(wù)可用后才啟動(dòng)、從配置中心獲取配置后再啟動(dòng) 等。

Init容器的特性

  • Pod中的所有Init容器按定義的順序串行運(yùn)行,直到它們?nèi)砍晒Y(jié)束后,才能啟動(dòng)應(yīng)用容器。
  • Init容器通常很小,執(zhí)行簡(jiǎn)單的邏輯,它們以輕量的方式快速運(yùn)行。
  • Init容器與編程語言中的初始化對(duì)象類似,只會(huì)執(zhí)行一次。
  • 在所有的 Init 容器沒有成功完成之前,Pod不會(huì)變成 Ready 狀態(tài)。
  • 某個(gè)Init容器運(yùn)行失敗后,會(huì)導(dǎo)致整個(gè)Pod重新啟動(dòng)(重啟策略為 Never 時(shí)例外)。如果 Pod 對(duì)應(yīng)的重啟策略為Never,并且 Pod 的 Init 容器失敗,則Kubernetes會(huì)將Pod狀態(tài)設(shè)置為失敗。
  • Pod重啟后,初始化容器也會(huì)再次運(yùn)行,因此需要確保所有Init容器的操作具有冪等性。這一點(diǎn)與應(yīng)用開發(fā)中要保證某個(gè)接口的冪等性類似。

Init容器與應(yīng)用容器的關(guān)系

Init 容器與應(yīng)用容器非常像,Init容器支持應(yīng)用容器的全部字段和特性,包括資源限制、數(shù)據(jù)卷和安全設(shè)置,Init容器與應(yīng)用容器共享數(shù)據(jù)卷和網(wǎng)絡(luò)。關(guān)系如下圖:

Kubernetes-Init容器的六個(gè)特性

但是Init容器與應(yīng)用容器也有三點(diǎn)不同:

  • 應(yīng)用容器運(yùn)行后沒有特殊情況不會(huì)停止,他們持續(xù)提供服務(wù),沒有運(yùn)行完成的概念。但是Init容器的存在就是為了初始化任務(wù),所以必須是一個(gè)從開始到結(jié)束的過程。
  • 應(yīng)用容器可以多個(gè)并行運(yùn)行。但是Init容器必須當(dāng)前這個(gè)啟動(dòng)完成后,才能啟動(dòng)下一個(gè)。
  • Init容器的設(shè)計(jì)是為了完成初始化任務(wù),所以Init容器必須要在 Pod 就緒之前運(yùn)行完成。自然的Init容器就不支持 生命周期、存活探針、就緒探針。

Init容器使用實(shí)戰(zhàn)

實(shí)戰(zhàn)描述

  • 定義一個(gè)Pod,Pod里定義了Init容器和應(yīng)用容器。
  • Pod里的Init容器先從網(wǎng)絡(luò)上下載數(shù)據(jù),將下載的數(shù)據(jù)放到emptyDir。
  • 等待init容器執(zhí)行完畢后,應(yīng)用容器會(huì)自動(dòng)啟動(dòng),在應(yīng)用容器中掛載emptyDir,此時(shí)應(yīng)用容器可以看到Init容器之前下載的數(shù)據(jù)。

yaml編排文件如下

apiVersion: v1
kind: Pod
metadata:
  name: init-contAIner-test
  namespace: demo
  labels:
    App: init-container-test
spec:
  nodeName: k8s-worker-1
  initContainers:
    - name: download
      image: busybox
      command:
        - wget
        - -O
        - /temp-dir/index.html
        - http://www.baidu.com
      volumeMounts:
        - name: temp-dir
          mountPath: /temp-dir
  containers:
    - name: web-app
      image: Nginx
      ports:
        - containerPort: 80
          hostPort: 8082
      volumeMounts:
        - name: temp-dir
          mountPath: /usr/share/nginx/html
  volumes:
    - name: temp-dir
      emptyDir: {}

執(zhí)行kubectl describe pod init-container-test -n demo命令,可以看到有兩處容器:

Kubernetes-Init容器的六個(gè)特性

如果Init容器執(zhí)行有異常,可以看到Pod會(huì)被不停地重啟。

Kubernetes-Init容器的六個(gè)特性

總結(jié)

本文主要從以下四個(gè)方面介紹Init容器:Init容器作用、Init容器特性、Init容器與應(yīng)用容器的區(qū)別、Init容器實(shí)戰(zhàn)。

重點(diǎn)要注意:

  • Init容器按定義的順序串行運(yùn)行。
  • 確保所有Init容器的操作具有冪等性。

分享到:
標(biāo)簽:Kubernetes
用戶無頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定