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"}

client-go|client-go gin的简单整合十一-Delete
文章图片

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)

client-go|client-go gin的简单整合十一-Delete
文章图片

postman测试
http://127.0.0.1:8080/deploym...
{"name":"zhangpeng", "namespace":"zhangpeng"}

client-go|client-go gin的简单整合十一-Delete
文章图片

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)

client-go|client-go gin的简单整合十一-Delete
文章图片

postman测试
http://127.0.0.1:8080/namespa...
{"name":"zhangpeng"}

client-go|client-go gin的简单整合十一-Delete
文章图片

总结
  1. client-go 基于gin 的curd算是基本实现
  2. 接下来要实现的
  3. 更优雅的输出
  4. 扩展一下statefulset svc configmap 等等其他k8s资源
  5. 数据的类型也的整理一下
  6. 方法的提取,公共类的整理?结构整理一下

    推荐阅读