本文主要从以下4个方面介绍Init容器:Init容器作用、Init容器特性、Init容器与应用容器的区别、Init容器实战。
Kubernetes中的Pod内可以运行多个容器,主要分为2种:Init容器、应用容器,Sidecar容器也是一种特殊的Init容器。
Init 容器是一种特殊容器,在Pod内的应用容器启动之前运行。用于执行一些初始化的任务或设置,或者用于延迟执行应用容器。
有不少场景都需要在应用容器启动之前进行部分初始化操作,比如:等待某个服务需要等待其关联的服务可用后才启动、从配置中心获取配置后再启动 等。
Init 容器与应用容器非常像,Init容器支持应用容器的全部字段和特性,包括资源限制、数据卷和安全设置,Init容器与应用容器共享数据卷和网络。关系如下图:
但是Init容器与应用容器也有三点不同:
apiVersion: v1kind: Podmetadata: name: init-container-test namespace: demo labels: app: init-container-testspec: nodeName: k8s-worker-1 initContainers: - name: download image: busybox command: - wget - -O - /temp-dir/index.html - http://www.baidu.com volumeMounts: - name: temp-dir mountPath: /temp-dir containers: - name: web-app image: nginx ports: - containerPort: 80 hostPort: 8082 volumeMounts: - name: temp-dir mountPath: /usr/share/nginx/html volumes: - name: temp-dir emptyDir: { }
执行kubectl describe pod init-container-test -n demo命令,可以看到有两处容器:
如果Init容器执行有异常,可以看到Pod会被不停地重启。
本文主要从以下四个方面介绍Init容器:Init容器作用、Init容器特性、Init容器与应用容器的区别、Init容器实战。
重点要注意:
(责任编辑:焦点)
粤港澳大湾区244项能源保供重点工程项目全面提速 预计2025年全面建成投产
去年广安民营经济GDP增长贡献率达60.7% 已成为经济发展的“主力军”
中国中冶(601618)融资余额12.39亿元 融券余额1509.92万元(03