美文网首页
Kubernetes 配置Pod和容器(十) 配置Pod初始化

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

作者: YiQinGuo | 来源:发表于2017-06-01 16:19 被阅读178次

配置Pod初始化

这个章节展示了如何使用一个初始化容器初始化一个Pod在应用程序容器运行之前。

创建一个Pod包含一个初始化容器

在本次实验中创建一个Pod包含一个应用程序容器和一个初始化容器。这个初始化容器在应用容器启动之前运行完成。

下面是这个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: {}

在这个配置文件,可以看到这个Pod的初始化容器和应用程序容器共享一个Volume。

初始化容器挂载共享卷在/work-dir,应用程序容器挂载共享卷在/usr/share/nginx/html。这个初始化容器运行下面的命令然后退出:

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

注意 这个初始化容器在nginx服务根目录下面写入一个index.html文件。

创建一个Pod:

kubectl create -f init.yaml

验证nginx容器是否运行:

kubectl get pod init-demo

输出展示nginx容器正在运行:

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

使用shell进入到运行的nginx容器里面:

kubectl exec -it init-demo -- /bin/bash

在shell里面,发送一个GET请求给nginx服务:

root@nginx:~# apt-get update
root@nginx:~# apt-get install curl
root@nginx:~# curl localhost

输出展示了nginx服务的站点页面:

<!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>
  ...

相关文章

网友评论

      本文标题:Kubernetes 配置Pod和容器(十) 配置Pod初始化

      本文链接:https://www.haomeiwen.com/subject/wasefxtx.html