python+k8s——基础练习
列表
core_api = client.CoreV1Api() # 管理核心资源(Pod, Service, ConfigMap 等)
apps_api = client.AppsV1Api() # 管理应用资源(Deployment, StatefulSet, DaemonSet 等)
batch_api = client.BatchV1Api() # 管理批处理任务资源(Job, CronJob)
rbac_api = client.RbacAuthorizationV1Api() # 管理角色和权限绑定资源
networking_api = client.NetworkingV1Api() # 管理网络资源(Ingress, NetworkPolicy)
custom_objects_api = client.CustomObjectsApi() # 管理自定义资源(CRD)
查看所有的命名空间
from kubernetes import client,config
config.kube_config.load_kube_config(config_file='C:/Users/4407/Desktop/config')
v1 = client.CoreV1Api()
for namespace in v1.list_namespace().items:
print(namespace.metadata.name)
查看pod的名字
from kubernetes import client,config
config.kube_config.load_kube_config('C:/Users/4407/Desktop/config')
v1 = client.CoreV1Api()
for pod in v1.list_pod_for_all_namespaces().items:
print(pod.metadata.name)
基本操作
# 对于查看pod 分为 查看指定名称空间里的pod 查看指定标签的pod 查看pod的状态
import kubernetes.config
from kubernetes import client, config
kubernetes.config.kube_config.load_kube_config('C:\\Users\\4407\\Desktop\\config')
core_v1 = kubernetes.client.CoreV1Api()
ns = 'ingress-nginx'
a = core_v1.list_namespaced_service(namespace=ns)
for i in a.items:
print(i)
import kubernetes.config
from kubernetes import client, config
# 加载 Kubernetes 配置
kubernetes.config.kube_config.load_kube_config('C:\\Users\\4407\\Desktop\\config')
# 实例化 CoreV1Api 类
core_v1 = kubernetes.client.CoreV1Api()
# 指定命名空间
namespace = 'ingress-nginx'
# 获取指定命名空间下的所有服务
service_list = core_v1.list_namespaced_service(namespace=namespace)
# 遍历服务列表并打印每个服务的名字
for service in service_list.items:
print(service.metadata.name)
# 遍历服务列表并打印每个服务的名字
for service in service_list.items:
print('hhhhh' + service.metadata.name)
# 查看pod的名字
from kubernetes import client, config
config.kube_config.load_kube_config('C:\\Users\\4407\\Desktop\\config')
ret = client.CoreV1Api()
a = ret.list_namespaced_pod('dev')
for i in ret.list_namespaced_pod('dev').items:
print(i.metadata.name)
# 不可以写成 for i in ret.list_namespaced_pod.items('dev'):
创建pod
from kubernetes import client,config
config.load_kube_config('C:\\Users\\4407\\Desktop\\config')
pod = client.V1Pod(metadata=client.V1ObjectMeta(name="my-test01"),
spec=client.V1PodSpec(containers=[
client.V1Container(
name="my-test",
ports=[client.V1ContainerPort(name="nginx", container_port=8088, host_port=8088)],
image="centos"
)
]
)
)
ret = client.CoreV1Api()
try:
a = ret.create_namespaced_pod("dev", pod)
print("pod create sussess , pod status is '%s' " % str(a.status))
except Exception as e:
print("pod create error and status is '%s'" %e)
pod = client.V1Pod(
metadata=client.V1ObjectMeta(name="my-pod"),
spec=client.V1PodSpec(
containers=[
client.V1Container(
name="my-container",
image="nginx",
ports=[client.V1ContainerPort(container_port=80)]
)
]
)
)
ret = client.CoreV1Api()
ns = "dev"
try:
api_response = ret.create_namespaced_pod(ns, pod)
print("Pod created. Status='%s'" % str(api_response.status))
except Exception as e:
print("Error: %s" % e)
# 创建deployment
from kubernetes import config,client
config.kube_config.load_kube_config(r"C:\Users\4407\Desktop\yun\config")
deploy = client.V1Deployment(
metadata=client.V1ObjectMeta(
name="my-pod",
namespace="default"),
spec=client.V1DeploymentSpec(
replicas=1,
selector=client.V1LabelSelector(
match_labels={
"app": "nginx"
}
),
template=client.V1PodTemplateSpec(
metadata=client.V1ObjectMeta(labels={"app" : "nginx"}),
spec=client.V1PodSpec(
containers=[
client.V1Container(
name="nginx",
image="nginx",
ports=[
client.V1ContainerPort(container_port=8089)
]
)
]
)
)
)
)
deplo_get = client.AppsV1Api()
try:
resource = deplo_get.create_namespaced_deployment(namespace="default",body=deploy)
print("deployment create sussessfully. status: '%s'" % resource.status)
except Exception as e:
print("deployment create error. status is '%s'" %e)
# 创建job
import yaml
from kubernetes import config,client
config.kube_config.load_kube_config(r"C:\Users\4407\Desktop\yun\config")
def creat_job():
job = client.BatchV1Api()
with open('f.yaml','r') as f:
job_yaml = yaml.safe_load(f)
job_create = job.create_namespaced_job(namespace="default", body=job_yaml)
return job_create
try:
print("job create sussessful. status is '%s'" %str(creat_job().status))
except Exception as e:
print("job create error. status is '%s" %e)
python+k8s——基础练习的更多相关文章
- Kubeasz部署K8s基础测试环境简介
下面介绍使用Kubeasz部署K8s集群环境. https://github.com/easzlab/kubeasz在需要使用kubeeasz项目安装的k8s时,需要将所有需要它来部署的节点上,都安装 ...
- docker+k8s基础篇一
Docker+K8s基础篇(一) docker的介绍 A:为什么是docker B:k8s介绍 docker的使用 A:docker的安装 B:docker的常用命令 C:docker容器的启动和操作 ...
- Python文件基础
===========Python文件基础========= 写,先写在了IO buffer了,所以要及时保存 关闭.关闭会自动保存. file.close() 读取全部文件内容用read,读取一行用 ...
- 3.Python编程语言基础技术框架
3.Python编程语言基础技术框架 3.1查看数据项数据类型 type(name) 3.2查看数据项数据id id(name) 3.3对象引用 备注Python将所有数据存为内存对象 Python中 ...
- Python爬虫基础
前言 Python非常适合用来开发网页爬虫,理由如下: 1.抓取网页本身的接口 相比与其他静态编程语言,如java,c#,c++,python抓取网页文档的接口更简洁:相比其他动态脚本语言,如perl ...
- 小白必看Python视频基础教程
Python的排名从去年开始就借助人工智能持续上升,现在它已经成为了第一名.Python的火热,也带动了工程师们的就业热.可能你也想通过学习加入这个炙手可热的行业,可以看看Python视频基础教程,小 ...
- Python爬虫基础之requests
一.随时随地爬取一个网页下来 怎么爬取网页?对网站开发了解的都知道,浏览器访问Url向服务器发送请求,服务器响应浏览器请求并返回一堆HTML信息,其中包括html标签,css样式,js脚本等.我们之前 ...
- 《两地书》--Kubernetes(K8s)基础知识(docker容器技术)
大家都知道历史上有段佳话叫“司马相如和卓文君”.“皑如山上雪,皎若云间月”.卓文君这么美,却也抵不过多情女儿薄情郎. 司马相如因一首<子虚赋>得汉武帝赏识,飞黄腾达之后便要与卓文君“故来相 ...
- 零基础学Python--------第2章 Python语言基础
第2章 Python语言基础 2.1 Python语法特点 2.11注释 在Python中,通常包括3种类型的注释,分别是单行注释.多行注释和中文编码声明注释. 1.单行注释 在Python中,使用 ...
- Python学习基础笔记(全)
换博客了,还是csdn好一些. Python学习基础笔记 1.Python学习-linux下Python3的安装 2.Python学习-数据类型.运算符.条件语句 3.Python学习-循环语句 4. ...
随机推荐
- python 远程windows系统执行cmd命令
如果你的服务器是windows系统,不想一台一台mstsc远程到桌面上去操作,python是有模块可以远程处理的:winrm pip install pywinrm 安装模块即可 windows系统服 ...
- 力扣901(java&python)-股票价额跨度(中等)
题目: 编写一个 StockSpanner 类,它收集某些股票的每日报价,并返回该股票当日价格的跨度. 今天股票价格的跨度被定义为股票价格小于或等于今天价格的最大连续日数(从今天开始往回数,包括今天) ...
- Apache Flink 在汽车之家的应用与实践
简介: 汽车之家如何基于 Flink 上线了 AutoStream 平台并持续打磨. 本文整理自汽车之家实时计算平台负责人邸星星在 Flink Forward Asia 2020 分享的议题< ...
- [Contract] Solidity 合约发布到测试网 ropsten 的作用
当我们本地完成了一系列测试以后,接下来就是准备上线了. 关于合约部署可以参考这篇:Solidity 合约使用 truffle 部署到测试网和主网 你可能有一个疑问,在上主网之前,先上测试网的作用是什么 ...
- ESP32 使用LVGL案例
一.完成LVGL移植 在使用LVGL提供的测试案例时,需要先移植LVGL,不明白的小伙伴看我之前的笔记 esp-idf 移植 lvgl8.3.3. 移植完成后的项目文件如下图所示 二.添加需要的测试案 ...
- 005_Orcad里创建Homogeneous分裂元件
005_Orcad里创建Homogeneous分裂元件 两种类型Homogeneous和Hetergeneous的区别,都是用来把一个复杂的元件分成多个部分来画,不同的是homogeneous画的每部 ...
- webpack调优技巧
webpack优化主要有三个方面:1.提高构建速度,2.减少打包体积,3.优化用户体验 提高构建速度: 启用多线程 thread-loader 使用thread-loader插件可以启用多线程进行构建 ...
- Dijkstra迪杰斯特拉求最短路和最短路的条数和各个点权值的最大值
作为一个城市的紧急救援队队长,你会得到一张你所在国家的特殊地图. 该地图显示了由一些道路连接的几个分散的城市. 地图上标出了每个城市的救援队伍数量以及任意两个城市之间每条道路的长度. 当其他城市接到紧 ...
- ChatGPT开源项目精选合集
大家好,我是 Java陈序员. 2023年,ChatGPT 的爆火无疑是最值得关注的事件之一,AI对话.AI绘图等工具层出不穷. 今天给大家介绍几个 ChatGPT 的开源项目! 关注微信公众号:[J ...
- VMware最小化安装Centos7.6-无桌面
目录 安装包工具 新建虚拟机 安装 centos 7.6 系统 终端登陆系统 设置ip地址 关闭防火墙 关闭 SELINUX SELINUX=enforcing 硬盘挂载 桥接上网方式 安装包工具 V ...