前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >client-go连接kubernetes集群-delete相关操作

client-go连接kubernetes集群-delete相关操作

原创
作者头像
对你无可奈何
发布2022-05-04 18:49:15
3250
发布2022-05-04 18:49:15
举报
文章被收录于专栏:运维专栏运维专栏

背景

紧跟client-go连接kubernetes集群-connect and listclient-go连接kubernetes集群-create相关操作client-go连接kubernetes集群-update相关操作。现在操作一下删除deployment 与namespace。当然了也想看一下操作集群crud的操作都有哪些动作!

client-go连接kubernetes集群-delete相关操作

删除deployment

main.go

代码语言:txt
复制
package main

import (
	"context"
	"flag"
	"fmt"
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
	"k8s.io/client-go/kubernetes"
	"k8s.io/client-go/tools/clientcmd"
	"k8s.io/client-go/util/homedir"
	"path/filepath"
)

func main() {
	var kubeconfig *string
	if home := homedir.HomeDir(); home != "" {
		kubeconfig = flag.String("kubeconfig", filepath.Join(home, ".kube", "config"), "(optional) absolute path to the kubeconfig file")
	} else {
		kubeconfig = flag.String("kubeconfig", "", "absolute path to the kubeconfig file")
	}
	flag.Parse()
	config, err := clientcmd.BuildConfigFromFlags("", *kubeconfig)
	if err != nil {
		panic(err.Error())
	}

	// create the clientset
	clientset, err := kubernetes.NewForConfig(config)
	if err != nil {
		panic(err.Error())
	}
	DeploymentName := "nginx"
	if err = clientset.AppsV1().Deployments("zhangpeng").Delete(context.TODO(), DeploymentName, metav1.DeleteOptions{}); err != nil {
		fmt.Println(err)
		return
	}
}

image.png
image.png

代码语言:txt
复制
kubectl get deploymnt -n zhangpeng 
image.png
image.png

删除namespace

main.go

代码语言:txt
复制
package main

import (
	"context"
	"flag"
	"fmt"
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
	"k8s.io/client-go/kubernetes"
	"k8s.io/client-go/tools/clientcmd"
	"k8s.io/client-go/util/homedir"
	"path/filepath"
)

func main() {
	var kubeconfig *string
	if home := homedir.HomeDir(); home != "" {
		kubeconfig = flag.String("kubeconfig", filepath.Join(home, ".kube", "config"), "(optional) absolute path to the kubeconfig file")
	} else {
		kubeconfig = flag.String("kubeconfig", "", "absolute path to the kubeconfig file")
	}
	flag.Parse()
	config, err := clientcmd.BuildConfigFromFlags("", *kubeconfig)
	if err != nil {
		panic(err.Error())
	}

	// create the clientset
	clientset, err := kubernetes.NewForConfig(config)
	if err != nil {
		panic(err.Error())
	}
	NamespaceName := "zhangpeng"
	if err = clientset.CoreV1().Namespaces().Delete(context.TODO(), NamespaceName, metav1.DeleteOptions{}); err != nil {
		fmt.Println(err.Error())
		return
	} else {
		fmt.Printf("Deleted Namespaces %s\n", NamespaceName)
	}
}
image.png
image.png
代码语言:txt
复制
kubectl get ns
image.png
image.png

zhangpeng namespace删除成功!

其他的:

  1. 当然了除了常用的List delete update and create还有很多操作方法,比如namespace 与 deployment的一些其他操作:
8fedb4d5459537791525966359be5bc.jpg
8fedb4d5459537791525966359be5bc.jpg
f48df2cf6b3a55950e473928d2fce89.jpg
f48df2cf6b3a55950e473928d2fce89.jpg
  1. 接下来要做的:把客户端单独提取出来,跟gin整合做一些简单的crud操作......

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
  • client-go连接kubernetes集群-delete相关操作
    • 删除deployment
    • [image.png]
      • 删除namespace
      • 其他的:
      相关产品与服务
      容器服务
      腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档