在kubernetes go client中,什么是clientset?
它在多个地方定义。
在client-go包装中。https://github.com/kubernetes/client-go/blob/62b2cb756b8cea8fba00764ff123993eb44dbd48/kubernetes/clientset.go#L120
文档对他们两个说了同样的话:
Clientset包含组的客户端。每个组的客户端集中只有一个版本。
这很混乱。什么是团体?
@Jose Armesto 给出的描述是正确的,我想用一个片段来支持它。
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"
)
var kubeconfig string
func init() {
// kubeconfig file parsing
flag.StringVar(&kubeconfig, "kubeconfig", "", "path to Kubernetes config file")
flag.Parse()
}
func main() {
// create the config object from kubeconfig
config, err := clientcmd.BuildConfigFromFlags("", kubeconfig)
// create clientset (set of muliple clients) for each Group (e.g. Core),
// the Version (V1) of Group and Kind (e.g. Pods) so GVK.
clientset, err := kubernetes.NewForConfig(config)
ctx := context.Background()
// executes GET request to K8s API to get pods 'cart' from 'prepayment' namespace
pod, err := clientset.CoreV1().Pods("prepayment").Get(ctx, "cart", metav1.GetOptions{})
fmt.Println("err: ", err)
fmt.Println("pod: ", pod)
}
Run Code Online (Sandbox Code Playgroud)
Kubernetes中的每种资源类型(Pod,Deployments,Service等)都是API组的成员。这些在逻辑上将不同类型“分组”。组的一些示例是
coreextensionsbatchappsauthenticationautoscaling组还包含版本。版本允许开发人员对API进行重大更改,并按原样进行管理。组内版本的一些示例
core/v1extensions/v1betaapps/v1beta1batch/v1,batch/v2alpha1(请注意同一组中的两个版本)authentication/v1, authentication/v1beta1autoscaling/v1, autoscaling/v2alpha1因此,客户文档说它正在为每个组创建一个不同的客户。
| 归档时间: |
|
| 查看次数: |
1716 次 |
| 最近记录: |