W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
本文介紹在應(yīng)用容器運(yùn)行前,怎樣利用 Init 容器初始化 Pod。
你必須擁有一個(gè) Kubernetes 的集群,同時(shí)你的 Kubernetes 集群必須帶有 kubectl 命令行工具。 建議在至少有兩個(gè)節(jié)點(diǎn)的集群上運(yùn)行本教程,且這些節(jié)點(diǎn)不作為控制平面主機(jī)。 如果你還沒(méi)有集群,你可以通過(guò) Minikube 構(gòu)建一個(gè)你自己的集群,或者你可以使用下面任意一個(gè) Kubernetes 工具構(gòu)建:
要檢查版本,請(qǐng)輸入 ?kubectl version
?。
本例中你將創(chuàng)建一個(gè)包含一個(gè)應(yīng)用容器和一個(gè) Init 容器的 Pod。Init 容器在應(yīng)用容器啟動(dòng)前運(yùn)行完成。
下面是 Pod 的配置文件:
apiVersion: v1
kind: Pod
metadata:
name: init-demo
spec:
containers:
- name: nginx
image: nginx
ports:
- containerPort: 80
volumeMounts:
- name: workdir
mountPath: /usr/share/nginx/html
# These containers are run during pod initialization
initContainers:
- name: install
image: busybox:1.28
command:
- wget
- "-O"
- "/work-dir/index.html"
- http://info.cern.ch
volumeMounts:
- name: workdir
mountPath: "/work-dir"
dnsPolicy: Default
volumes:
- name: workdir
emptyDir: {}
配置文件中,你可以看到應(yīng)用容器和 Init 容器共享了一個(gè)卷。
Init 容器將共享卷掛載到了 ?/work-dir
? 目錄,應(yīng)用容器將共享卷掛載到了 ?/usr/share/nginx/html
? 目錄。 Init 容器執(zhí)行完下面的命令就終止:
wget -O /work-dir/index.html http://info.cern.ch
請(qǐng)注意 Init 容器在 nginx 服務(wù)器的根目錄寫入 ?index.html
?。
創(chuàng)建 Pod:
kubectl create -f https://k8s.io/examples/pods/init-containers.yaml
檢查 nginx 容器運(yùn)行正常:
kubectl get pod init-demo
結(jié)果表明 nginx 容器運(yùn)行正常:
NAME READY STATUS RESTARTS AGE
init-demo 1/1 Running 0 1m
通過(guò) shell 進(jìn)入 init-demo Pod 中的 nginx 容器:
kubectl exec -it init-demo -- /bin/bash
在 shell 中,發(fā)送個(gè) GET 請(qǐng)求到 nginx 服務(wù)器:
root@nginx:~# apt-get update
root@nginx:~# apt-get install curl
root@nginx:~# curl localhost
結(jié)果表明 nginx 正在為 Init 容器編寫的 web 頁(yè)面服務(wù):
<html><head></head><body><header>
<title>http://info.cern.ch</title>
</header>
<h1>http://info.cern.ch - home of the first website</h1>
...
<li><a rel="external nofollow" target="_blank" >Browse the first website</a></li>
...
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: