client-go gin的简单整合十一-Delete

网友投稿 299 2022-09-09

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 NAME READY STATUS RESTARTS AGE nginx 1/1 Running 0 113s zhangpeng-5546976d9-mkslb 1/1 Running 0 102m zhangpeng-5546976d9-tcsb5 1/1 Running 0 101m

编写关于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操作

{"name":"nginx", "namespace":"zhangpeng"}

delete deployment

以zhangpeng deployment为例

以namespace zhangpeng命名空间下zhangpeng deployment为例

[zhangpeng@zhangpeng k8s]$ kubectl get pods -n zhangpeng NAME READY STATUS RESTARTS AGE zhangpeng-5546976d9-mkslb 1/1 Running 0 124m zhangpeng-5546976d9-tcsb5 1/1 Running 0 123m [zhangpeng@zhangpeng k8s]$ kubectl get deployment -n zhangpeng NAME READY UP-TO-DATE AVAILABLE AGE zhangpeng 2/2 2 2 141m

编写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测试

{"name":"zhangpeng", "namespace":"zhangpeng"}

delete namespace

以zhangpeng namespace为例

[zhangpeng@zhangpeng k8s]$ kubectl get ns NAME STATUS AGE default Active 54d kube-node-lease Active 54d kube-public Active 54d kube-system Active 54d zhangpeng Active 21h zhangpeng1 Active 24h

编写delete namespace代码

/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测试

{"name":"zhangpeng"}

总结

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

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:#云原生征文#深入了解Ingress
下一篇:做品质的“巨人”,而非营销的“寡头”!
相关文章

 发表评论

暂时没有评论,来抢沙发吧~