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请求:

[email protected]:~# apt-get update
[email protected]:~# apt-get install curl
[email protected]:~# 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

原文地址:https://www.cnblogs.com/mcsiberiawolf/p/12227849.html

时间: 2024-11-03 11:33:02

kubernetes之创建初始化容器的相关文章

创建Spring容器

对于使用Spring的web应用,无须手动创建Spring容器,而是通过配置文件,声明式的创建Spring容器.在Web应用中,创建Spring容器有如下两种方式:1.直接在web.xml文件中配置:2.利用第三方MVC框架的扩展点. ContextLoaderPlugIn(要导入org.springframework.web.struts-3.0.5.RELEASE.jar包,在struts2.0及以后版本不支持此种方式加载spring) 直接在web.xml文件中配置的方式是更常见.为了让S

配置Spring的用于初始化容器对象的监听器

<!-- 配置Spring的用于初始化容器对象的监听器 --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <context-param> <param-name>contextConfigLocation</param-name> &l

不允许在单例对象中创建Srping容器

spring.net在使用的时候,不允许在单例对象中创建Srping容器 需要将实例化模式转为单例singleton=“false”

Docker创建MySQL容器

原文链接:Docker创建MySQL容器 本文目的是创建一个MySQL的image,并且在新创建出来的容器里自动启动MySQL服务接受外部连接 步骤: 1. 首先创建一个目录并在目录下创建一个Dockerfile,文件内容如下 FROM centos:centos6 MAINTAINER Fanbin Kong "[email protected]" RUN yum install -y mysql-server mysql RUN /etc/init.d/mysqld start &

Docker+Kubernetes(k8s)微服务容器化实践

Docker+Kubernetes(k8s)微服务容器化实践网盘地址:https://pan.baidu.com/s/1uVkMsKgfzsJcShlnuLk3ZQ 密码:1i7q备用地址(腾讯微云):https://share.weiyun.com/5ZcsfIX 密码:udrifz Docker官方支持Kubernetes, Kubernetes是容器编排最大赢家,Kubernetes 以其高效.简便.高水平的可移植性等优势占领了绝大部分市场,江湖一哥地位毋庸置疑,脱胎于谷歌的成熟的Borg

(六) 创建Nginx容器

获取Nginx镜像 最简单的方法就是通过 docker pull nginx 命令来创建 Nginx容器. $ sudo docker pull nginx 或者: $ sudo docker pull registry.docker-cn.com/library/nginx 其中 registry.docker-cn.com 为国内的官方镜像仓库,速度要好很多. 启动Nginx容器 查看镜像: $ sudo docker images REPOSITORY TAG IMAGE ID CREAT

zun 不能创建 docker 容器,报错: datastore for scope &quot;global&quot; is not initialized

问题:zun不能创建docker容器,报错:datastore for scope "global" is not initialized 解决:修改docker 服务配置文件: [[email protected] ~]# cat /usr/lib/systemd/system/docker.service [Unit] Description=Docker Application Container Engine Documentation=https://docs.docker.

物理机centos6上使用docker创建centos7容器并在容器中使用KVM搭建win10系统

环境都通过前面几篇随笔摸索中搭建好了,以下就是简单的将docker创建centos7容器并配置好win10系统的过程记录一下.  1.创建win10容器 docker run -d --name win10 -p 5900:5900 -p 5901:5901 -p 5902:5902 -p 5903:5903 -p 5904:5904 -p 5905:5905 -v /data/zkdocker/vm:/data/zkdocker/vm --privileged=true centos:7 /u

创建fastdfs_nginx容器及nginx配置

创建fastdfs_nginx容器及nginx配置 拉取镜像,创建容器 # 拉取镜像 sudo docker pull ubuntu:18.04 # 创建容器,创建容器时必须使用image:tag,标签不可缺少 sudo docker run -itd --network=host --name fastdfs_nginx -v /home/moluo/store_path/:/home/store_path ubuntu:18.04 进入容器,修改源 sudo docker exec -it