1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
| from kubernetes import config,client from time import sleep config.load_kube_config(config_file='config')
client_v1=client.CoreV1Api() client_apps=client.AppsV1Api()
service_body=client.V1Service( metadata=client.V1ObjectMeta(name='my-service'), spec=client.V1ServiceSpec( selector={'app':'statefulset'}, ports=[client.V1ServicePort(port=80,target_port=80)], type='ClusterIP' ) ) client_v1.create_namespaced_service(namespace='default',body=service_body) print("service创建完成")
statefulset_body=client.V1StatefulSet( metadata=client.V1ObjectMeta(name='my-statefulset',namespace='default'), spec=client.V1StatefulSetSpec( replicas=5, service_name='my-service', selector=client.V1LabelSelector( match_labels={'app':"statefulset"}), template=client.V1PodTemplateSpec( metadata=client.V1ObjectMeta(labels={'app':"statefulset"}), spec=client.V1PodSpec( containers=[client.V1Container( name='my-container', image='nginx:1.18', image_pull_policy='IfNotPresent', ports=[client.V1ContainerPort(container_port=80)] )] ) ) ) )
client_apps.create_namespaced_stateful_set(namespace='default',body=statefulset_body) print('statefulest已创建完成') sleep(10)
print('开始获取statefulest信息并修改') statefulset_info=client_apps.read_namespaced_stateful_set(name='my-statefulset',namespace='default') statefulset_info.spec.template.spec.containers[0].image='nginx:latest'
client_apps.replace_namespaced_stateful_set(name='my-statefulset',namespace='default',body=statefulset_info) print(f"statefulset镜像已修改")
client_v1.delete_namespaced_service(name='my-service',namespace='default') print("service已删除")
client_apps.delete_namespaced_stateful_set(name='my-statefulset',namespace='default') print('statefulest已删除')
|