Kubernetes 配置Pod和容器(十) 配置Pod初始化

配置Pod初始化

這個(gè)章節(jié)展示了如何使用一個(gè)初始化容器初始化一個(gè)Pod在應(yīng)用程序容器運(yùn)行之前。

創(chuàng)建一個(gè)Pod包含一個(gè)初始化容器

在本次實(shí)驗(yàn)中創(chuàng)建一個(gè)Pod包含一個(gè)應(yīng)用程序容器和一個(gè)初始化容器。這個(gè)初始化容器在應(yīng)用容器啟動(dòng)之前運(yùn)行完成。

下面是這個(gè)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
    command:
    - wget
    - "-O"
    - "/work-dir/index.html"
    - http://kubernetes.io
    volumeMounts:
    - name: workdir
      mountPath: "/work-dir"
  dnsPolicy: Default
  volumes:
  - name: workdir
    emptyDir: {}

在這個(gè)配置文件,可以看到這個(gè)Pod的初始化容器和應(yīng)用程序容器共享一個(gè)Volume。

初始化容器掛載共享卷在/work-dir,應(yīng)用程序容器掛載共享卷在/usr/share/nginx/html。這個(gè)初始化容器運(yùn)行下面的命令然后退出:

wget -O /work-dir/index.html http://kubernetes.io

注意 這個(gè)初始化容器在nginx服務(wù)根目錄下面寫(xiě)入一個(gè)index.html文件。

創(chuàng)建一個(gè)Pod:

kubectl create -f init.yaml

驗(yàn)證nginx容器是否運(yùn)行:

kubectl get pod init-demo

輸出展示nginx容器正在運(yùn)行:

NAME      READY     STATUS    RESTARTS   AGE
nginx     1/1       Running   0          43m

使用shell進(jìn)入到運(yùn)行的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

輸出展示了nginx服務(wù)的站點(diǎn)頁(yè)面:

<!Doctype html>
<html id="home">

<head>
...
"url": "http://kubernetes.io/"}</script>
</head>
<body>
  ...
  <p>Kubernetes is open source giving you the freedom to take advantage ...</p>
  ...
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容