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

client-go连接kubernetes集群-delete相关 *** 作,第1张

背景

紧跟client-go连接kubernetes集群-connect and list,client-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删除成功!

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


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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/990760.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存