client-go|client-go gin的简单整合十一-Delete
背景:
完成了client-go gin的简单整合十-Update,下面演示一下namespace deployment pod的删除,删除完成了也可以总结一下进行更深入的操作了!删除就从pod deployment namespace的顺序开始了!
delete Pod
以nginx Pod为例
注意:zhangpeng namespace 下nginx pod为例
[zhangpeng@zhangpeng k8s]$ kubectl get pods -n zhangpeng
NAMEREADYSTATUSRESTARTSAGE
nginx1/1Running0113s
zhangpeng-5546976d9-mkslb1/1Running0102m
zhangpeng-5546976d9-tcsb51/1Running0101m
编写关于pod delete的代码
继续模仿create update 写delete方法,其实delete只需要namespace 和pod的name就可以了,简化一下:
/src/service/Pod.go
func DeletePod(g *gin.Context) {
var NewPod Pod
if err := g.ShouldBind(&NewPod);
err != nil {
g.JSON(500, err)
}
err := K8sClient.CoreV1().Pods(NewPod.Namespace).Delete(context.TODO(), NewPod.Name, metav1.DeleteOptions{})
if err != nil {
fmt.Println(err)
}
g.JSON(200, "ok")
}
添加路由运行main.go
main.go增加路由,并运行main.go
r.POST("/pod/delete", service.DeletePod)
postman操作
http://127.0.0.1:8080/pod/delete
{"name":"nginx",
"namespace":"zhangpeng"}
文章图片
delete deployment 以zhangpeng deployment为例
以namespace zhangpeng命名空间下zhangpeng deployment为例
[zhangpeng@zhangpeng k8s]$ kubectl get pods -n zhangpeng
NAMEREADYSTATUSRESTARTSAGE
zhangpeng-5546976d9-mkslb1/1Running0124m
zhangpeng-5546976d9-tcsb51/1Running0123m
[zhangpeng@zhangpeng k8s]$ kubectl get deployment -n zhangpeng
NAMEREADYUP-TO-DATEAVAILABLEAGE
zhangpeng2/222141m
编写delete deployment代码
/src/service/Deployment.go
func DeleteDep(g *gin.Context) {
var newDep Deployment
if err := g.ShouldBind(&newDep);
err != nil {
g.JSON(500, err)
}
err := K8sClient.AppsV1().Deployments(newDep.Namespace).Delete(context.Background(), newDep.Name, metav1.DeleteOptions{})
if err != nil {
g.JSON(500, err)
}
g.JSON(200, "Deployment has delete")
}
添加路由并运行main.go
r.POST("/deployment/delete", service.DeleteDep)
文章图片
postman测试
http://127.0.0.1:8080/deploym...
{"name":"zhangpeng",
"namespace":"zhangpeng"}
文章图片
delete namespace 以zhangpeng namespace为例
[zhangpeng@zhangpeng k8s]$ kubectl get ns
NAMESTATUSAGE
defaultActive54d
kube-node-leaseActive54d
kube-publicActive54d
kube-systemActive54d
zhangpengActive21h
zhangpeng1Active24h
编写delete namespace代码
【client-go|client-go gin的简单整合十一-Delete】/src/service/Deployment.go
func DeleteDep(g *gin.Context) {
var newDep Deployment
if err := g.ShouldBind(&newDep);
err != nil {
g.JSON(500, err)
}
err := K8sClient.AppsV1().Deployments(newDep.Namespace).Delete(context.Background(), newDep.Name, metav1.DeleteOptions{})
if err != nil {
g.JSON(500, err)
}
g.JSON(200, "Deployment has delete")
}
添加路由并运行main.go
r.POST("/namespace/update", service.DeleteNameSpace)
文章图片
postman测试
http://127.0.0.1:8080/namespa...
{"name":"zhangpeng"}
文章图片
总结
- client-go 基于gin 的curd算是基本实现
- 接下来要实现的
- 更优雅的输出
- 扩展一下statefulset svc configmap 等等其他k8s资源
- 数据的类型也的整理一下
- 方法的提取,公共类的整理?结构整理一下
推荐阅读
- 关于 Data Lake 的概念、架构与应用场景介绍
- 使用 Databricks 进行营销效果归因分析的应用实践【Databricks 数据洞察公开课】
- SQL|这道 Mysql 的解题思想,值得学习!
- Python学习|GitHub原生AI代码生成工具Copilot的试用记录
- github|你还在手动写代码吗(Github的Copilot有多强?)
- 有趣的论文|代码自动生成(Github Copilot)
- 人工智能|可耻!爆火的编程神器GitHub Copilot抄袭实锤(背后问题引人深思 ....)
- 有趣的库|Pycharm GitHub Copilot python 代码建议和代码补全
- 投资|效率提升的万亿级机会:折扣业态的研究和思考
- {调取该文章的TAG关键词}|蓝领白领供需错配:3000元招不到农民工,却可以招个大学生