這篇文章主要介紹了kubernetes中Pod初始化容器之Init Container的示例分析,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
創(chuàng)新互聯(lián)是專業(yè)的高邑網(wǎng)站建設(shè)公司,高邑接單;提供成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè),網(wǎng)頁設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行高邑網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!
一:前言
在很多應(yīng)用場(chǎng)景中,應(yīng)用在啟動(dòng)之前都需要進(jìn)行如下初始化操作
1. 等待其他關(guān)聯(lián)組件正確運(yùn)行(例如數(shù)據(jù)庫)
2.基于環(huán)境變量或配置模版生成配置文件
3.從遠(yuǎn)程數(shù)據(jù)庫獲取本地所需配置,或者將自身注冊(cè)到某個(gè)中央數(shù)據(jù)庫中
4.下載相關(guān)依賴包,或者對(duì)系統(tǒng)進(jìn)行一些配置操作
Init container與應(yīng)用容器本質(zhì)上是一樣的,但他們是僅運(yùn)行一次就結(jié)束的任務(wù),并且必須在成功執(zhí)行完成后,系統(tǒng)才能繼續(xù)執(zhí)行下一個(gè)容器。
二:實(shí)例
nginx-init-containers.yaml
apiVersion: v1
kind: Pod
metadata:
name: nginx
spec:
initContainers:
- name: install
image: busybox
command:
- wget
- "-O"
- "/work-dir/index.html"
- http://kubernetes.io
volumeMounts:
- name: workdir
mountPath: "/work-dir"
containers:
- name: nginx
image: nginx
ports:
- containerPort: 80
volumeMounts:
- name: workdir
mountPath: /usr/share/nginx/html
volumes:
- name: workdir
emptyDir: {}
kubectl create -f nginx-init-containers.yaml
kubectl describe pod nginx
三:說明
init container與應(yīng)用容器的區(qū)別
1.運(yùn)行方式不同,它們必須先于應(yīng)用容器執(zhí)行完成,當(dāng)設(shè)置了多個(gè)init container時(shí),將按順序逐個(gè)運(yùn)行,當(dāng)所有init container都成功運(yùn)行后,kubernetes才會(huì)初始化Pod的各種信息。
2.在init container的定義中也可以設(shè)置資源限制,volume的使用和安全策略,但與應(yīng)用容器略有不同
3.init container不能設(shè)置readinessProbe探針,因?yàn)楸仨氃谒鼈兂晒\(yùn)行后才能繼續(xù)運(yùn)行Pod中定義的普通容器
4.在Pod重新啟動(dòng)時(shí),init container將會(huì)重新運(yùn)行
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“kubernetes中Pod初始化容器之Init Container的示例分析”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來學(xué)習(xí)!