繁体   English   中英

如何使用 kubernetes go-client 从集群内运行的容器创建命名空间

[英]How do i create a namespace using kubernetes go-client from running container inside a cluster

我有一个 Kubernetes 集群和一个正在运行的容器 (X)。 我想从这个容器创建一个新的命名空间,在这个命名空间中部署一个 pod 并生成容器(Y)。 我知道 kubernetes 提供 REST API。 但是,我正在探索 goClient 来做同样的事情,但不确定如何使用命名空间创建 api。

import (
    "github.com/golang/glog"
    "k8s.io/client-go/kubernetes"
    "k8s.io/kubernetes/pkg/api/v1"
    metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)

clientConfig, err := config.createClientConfigFromFile()
if err != nil {
        glog.Fatalf("Failed to create a ClientConfig: %v. Exiting.", err)
}

clientset, err := clientset.NewForConfig(clientConfig)
if err != nil {
        glog.Fatalf("Failed to create a ClientSet: %v. Exiting.", err)
}

nsSpec := &v1.Namespace{ObjectMeta: metav1.ObjectMeta{Name: ns}}

_, err := clientset.Core().Namespaces().Create(nsSpec)
}

这个对我有用:

clientset, err := kubernetes.NewForConfig(config)
if err != nil {
    panic(err)
}

nsName := &corev1.Namespace{
    ObjectMeta: metav1.ObjectMeta{
        Name: "my-new-namespace",
    },
}

clientset.CoreV1().Namespaces().Create(context.Background(), nsName, metav1.CreateOptions{})

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM