面试题答案
一键面试创建运行Python文件读写脚本的Kubernetes Job步骤
- 编写Python脚本:例如,创建一个
file_io.py
脚本用于文件读写。
import os
# 写入文件
with open('output.txt', 'w') as f:
f.write('This is a test output from Python script.')
# 读取文件
with open('output.txt', 'r') as f:
content = f.read()
print(content)
- 创建Docker镜像:编写
Dockerfile
将Python脚本和相关依赖打包进镜像。
FROM python:3.9
COPY file_io.py /app/
WORKDIR /app
CMD ["python", "file_io.py"]
然后构建镜像:docker build -t yourusername/file - io - job:v1.
3. 创建Kubernetes Job资源对象:编写job.yaml
文件。
apiVersion: batch/v1
kind: Job
metadata:
name: file - io - job
spec:
template:
spec:
containers:
- name: file - io - container
image: yourusername/file - io - job:v1
restartPolicy: Never
- 部署Job:在包含
job.yaml
的目录下执行kubectl apply -f job.yaml
Job资源对象关键字段含义
- apiVersion:指定使用的Kubernetes API版本,
batch/v1
表示适用于批处理任务的API版本。 - kind:资源类型,这里是
Job
,表明这是一个批处理任务定义。 - metadata:包含元数据,如
name
为Job的名称,用于在Kubernetes集群中唯一标识该Job。 - spec:Job的具体配置部分。
- template:定义Pod模板,描述Job运行时Pod的属性。
- spec.containers:定义Pod中的容器列表,这里
name
为容器名称,image
指定容器使用的镜像。 - spec.restartPolicy:重启策略,
Never
表示Pod完成任务后不会重启,适用于批处理Job,任务完成即结束。
- spec.containers:定义Pod中的容器列表,这里
- template:定义Pod模板,描述Job运行时Pod的属性。