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操作

http://127.0.0.1:8080/pod/delete

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

XlkVV48G5d.png

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)
 

image.png

postman测试

http://127.0.0.1:8080/deploym...

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

KxFwPTjqoA.png

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)

image.png

postman测试

http://127.0.0.1:8080/namespa...

{"name":"zhangpeng"}

image.png

总结

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

29 声望
9 粉丝
0 条评论
推荐阅读
Ubuntu20.4 docker运行stable diffusion webui
环境前提系统环境ubuntu20.04 {代码...} nvida cuda显卡驱动默认已经安装成功 {代码...} 安装配置dockerupgrade系统更新系统依赖: {代码...} 卸载之前的Docker环境确认是否之前安装过docker并卸载: {代码...} ...

对你无可奈何阅读 84

花了几个月时间把 MySQL 重新巩固了一遍,梳理了一篇几万字 “超硬核” 的保姆式学习教程!(持续更新中~)
MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。

民工哥14阅读 2k

封面图
硬卷完了!MongoDB 打怪升级进阶成神之路( 2023 最新版 )!
前面我们学习:MySQL 打怪升级进阶成神之路、Redis 打怪升级进阶成神之路,然后我们还在继续 NoSQL 的卷王之路。从第一篇文章开始,我们逐步详细介绍了 MogoDB 基础概念、安装和最基本的CURD操作、索引和聚合、工...

民工哥7阅读 704

封面图
又一款内存数据库横空出世,比 Redis 更强,性能直接飙升一倍!杀疯了
KeyDB是Redis的高性能分支,专注于多线程,内存效率和高吞吐量。除了多线程之外,KeyDB还具有仅在Redis Enterprise中可用的功能,例如Active Replication,FLASH存储支持以及一些根本不可用的功能,例如直接备份...

民工哥4阅读 1.7k评论 2

封面图
突破难关:Docker镜像和容器的区别以及构建的最佳实践
Docker 可谓是开启了容器化技术的新时代,现在无论大中小公司基本上都对容器化技术有不同程度的尝试,或是已经进行了大量容器化的改造。伴随着 Kubernetes 和 Cloud Native 等技术和理念的普及,也大大增加了业务...

张晋涛4阅读 1.2k

封面图
蚂蚁安全科技 Nydus 镜像加速实践
蚂蚁安全科技 Nydus 镜像加速实践原创 曦栖 金融级分布式架构文|蚂蚁集团 ZOLOZ 团队使用全球领先安全科技,为用户和机构提供安全、便捷的安全风控解决方案。本文 6386 字 阅读 12 分钟背景简介ZOLOZ[1]是蚂蚁集...

SOFAStack1阅读 3.8k

封面图
Win10 安装Docker以及Jenkins(超级详细篇)
安装Docker下载地址:[链接] ,按照它的指引教程,无脑下一步即可。安装成功后电脑会重启。打开docker桌面端,会显示进入链接,下载WSL 安装包进行无脑安装即可。安装 Linux 内核更新包 (重启电脑)重启 Docker ...

九旬3阅读 1.1k

29 声望
9 粉丝
宣传栏