Kubernetes容器云平台自动化运维工具——管理job服务
Kubernetes Python运维脚本开发-使用SDK方式管理job服务。
在提供的OpenStack私有云平台上,使用k8s-python-dev镜像创建1台云主机,云主机类型使用4vCPU/12G内存/100G硬盘。该主机中已经默认安装了所需的开发环境,登录默认账号密码为“root/1DaoYun@2022”。
使用Kubernetes python SDK的“kubernetes”Python库,在/root目录下,创建sdk_job_manager.py文件,要求编写python代码,代码实现以下任务:
(1)编写Python程序实现Job资源的创建。Job配置信息如下。如果同名Job存在,先删除再创建。
(2)创建完成后,查询该Job的详细信息,执行结果控制台输出,以json格式展示。
Job创建yaml的信息如下:
apiVersion: batch/v1
kind: Job
metadata:
name: pi
spec:
template:
spec:
containers:
name: pi
image: perl
command: ["perl", "-Mbignum=bpi", "-wle", "print bpi(2000)"]
restartPolicy: Never
backoffLimit: 4
编写完成后,提交该云主机的用户名、密码和IP地址到答题框。from os import path import yaml import json from kubernetes import client, config def main(): config.load_kube_config() with open(path.join(path.dirname(__file__), "nginx-deployment.yaml")) as f: dep = yaml.safe_load(f) k8s_apps_v1 = client.AppsV1Api() k8s_apps_v1.delete_namespaced_deployment(name="nginx-deployment", namespace="default") k8s_apps_v1.create_namespaced_deployment(body=dep, namespace="default") sspi = k8s_apps_v1.read_namespaced_deployment(name="nginx-deployment", namespace="default") deployment_info_json = json.dumps(client.ApiClient().sanitize_for_serialization(sspi)) print(sspi) with open("deployment_sdk_dev.json", "a") as file: file.write(str(deployment_info_json)) if __name__ == '__main__': main()