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

Posted saynaihe

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了client-go连接kubernetes集群-delete相关操作相关的知识,希望对你有一定的参考价值。

背景

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

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

删除deployment

main.go

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
	


kubectl get deploymnt -n zhangpeng 

删除namespace

main.go

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)
	

kubectl get ns


zhangpeng namespace删除成功!

其他的:

  1. 当然了除了常用的List delete update and create还有很多操作方法,比如namespace 与 deployment的一些其他操作:


  1. 接下来要做的:把客户端单独提取出来,跟gin整合做一些简单的crud操作…

以上是关于client-go连接kubernetes集群-delete相关操作的主要内容,如果未能解决你的问题,请参考以下文章

client-go连接kubernetes集群

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

client-go连接kubernetes集群

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

client-go 源码分析

client-go gin的简单整合一(list列表相关操作