zoukankan      html  css  js  c++  java
  • kubernetes之创建初始化容器

    简介

    此文讲述在应用容器运行之前如何使用初始化容器。

    备注:此文档参考官方文档,并加以自己的理解。如有误导性的内容,请批评指正。

    创建一个有初始化容器的Pod

    创将一个Pod,该Pod中包含一个应用容器和初始化容器。在应用容器开始之前,初始化容器的初始化任务已经完成。文件名:init-containers.yaml

    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

    初始化容器挂载了一个共享的Volume即:/work-dir,应用容器挂载的共享Volume/usr/share/nginx/html目录下。初始化容器运行如下的命令

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

    初始化容器早 nginx server 的根目录下写入index.html文件。

    创建Pod:

    # kubectl apply -f /root/k8s-example/pods/init-containers.yaml
    

    确认初始化容器已经运行:

    # kubectl get pod init-demo
    

    输出结果显示 nginx 容器已经正在运行

    NAME        READY   STATUS    RESTARTS   AGE
    init-demo   1/1     Running   0          17s
    

    进入init-demoPod中正在运行的nginx容器的shell内:

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

    在shell中发出GET请求:

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

    输出显示nginx正在运行由init容器编写的网页:

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

    删除Pod资源:

    # kubectl delete pods init-demo
    
  • 相关阅读:
    程序员如何利用空闲时间挣零花钱
    常见的数据交互之跳转页面传值
    一个能让cin和scanf 一样快的方法:
    HDU 4901 DP
    POJ 2823 线段树 Or 单调队列
    POJ 3264 线段树 ST
    POJ 3468 线段树+状压
    POJ 2777 线段树
    QQ 临时会话+图标 HTML代码
    POJ 1463 Strategic game
  • 原文地址:https://www.cnblogs.com/mcsiberiawolf/p/12227849.html
Copyright © 2011-2022 走看看