当前位置:首页 > Web开发 > 正文

kubernetes之创建初始化容器

2024-03-31 Web开发

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

备注:此文档参考官方文档,并加以本身的理解。如有误导性的内容,,请攻讦斧正。

创建一个有初始化容器的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" - 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

初始化容器早 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": ""}</script> </head> <body> ... <p>Kubernetes is open source giving you the freedom to take advantage ...</p> ...

删除Pod资源:

# kubectl delete pods init-demo

kubernetes之创建初始化容器

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/31143.html