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. ...
随机推荐
- css test-align 和 margin 居中什么区别
共同点 test-align 和margin 都可以居中: test-align:Center. margin: 0 auto. 很好但是看下区别: <div style="backg ...
- Go语言打印九九乘法表,这是整洁代码范例
Go语言打印九九乘法表,这是整洁代码范例 / Go 语言输出九九乘法表 / 九九乘法表是我们学习编程时的一项基本练习,它看似简单,通过实现输出九九乘法表可以加深对 Go 语言循环结构的理解和运用. 本 ...
- Flink 在唯品会的实践
简介: Flink 在唯品会的容器化实践应用以及产品化经验. 唯品会自 2017 年开始基于 k8s 深入打造高性能.稳定.可靠.易用的实时计算平台,支持唯品会内部业务在平时以及大促的平稳运行.现平台 ...
- OpenKruise v1.0:云原生应用自动化达到新的高峰
简介:OpenKruise 是针对 Kubernetes 的增强能力套件,聚焦于云原生应用的部署.升级.运维.稳定性防护等领域. 云原生应用自动化管理套件.CNCF Sandbox 项目 -- Op ...
- OceanBase再破纪录!核心成员陈萌萌:坚持HTAP就是坚持我们做数据库的初心
简介: 2021年5月20日,据国际事务处理性能委员会(TPC,Transaction Processing Performance Council)官网披露,蚂蚁集团自主研发的分布式关系型数据库Oc ...
- [PHP] 浅谈 Laravel Scout 的存在意义
注:Laravel Scout 是官方支持的对框架模型数据进行全文检索功能的扩展包. Laravel 的 Scout 与 Eloquent ORM 进行了深度集成,不用开发者再自己进行代码侵入了. L ...
- Win10下小米路由器4A百兆版刷Openwrt固件【图片详细版】
将原来的小米路由器换成了华为,早就听闻刷软路由可以实现去广告,解锁灰色歌单等诸多骚操作.就来榨取这个小米4A的剩余价值来着的. 注意 1. 必须使用路由模式,中继模式是打不开telnet的 更新固件 ...
- Pod进阶篇-Pod生命周期和健康探测以及startupProbe(6)
一.Pod容器探测和钩子 1.1 容器钩子:postStart和preStop postStart:容器创建成功后,运行前的任务,用于资源部署.环境准备等. preStop:在容器被终止前的任务,用于 ...
- vue引入一个单独的数据文件
1.新建一个address.js的文件 2.文件内const citys = { "北京市": ["东城区","西城区",& ...
- SpringBoot获取Bean的工具类
1.beanName 默认是类名首字母小写 下面的类:beanName = bean1 @Component public class Bean1 { public String getBean1() ...