k8s clientConfig和rawConfig区别解析
作者:王景迁
k8s clientConfig和rawConfig区别
k8s.io/client-go v0.28.2
nonInteractiveDeferredLoadingClientConfig := clientcmd.NewNonInteractiveDeferredLoadingClientConfig( &clientcmd.ClientConfigLoadingRules{ExplicitPath: "/root/.kube/config"}, &clientcmd.ConfigOverrides{}) clientConfig, err := nonInteractiveDeferredLoadingClientConfig.ClientConfig() rawConfig, err := nonInteractiveDeferredLoadingClientConfig.RawConfig()
基于kubeconfig可以创建clientConfig和rawConfig。两者区别在于,clientConfig包含了访问kube-apiserver的地址和认证鉴权信息,缺少cluster信息;rawConfig是包含kubeconfig所有内容的对象。
补充:k8s解析kubeconfig的两种常用方式
k8s解析kubeconfig的两种常用方式
k8s v1.19.0
方法1
staging/src/k8s.io/client-go/tools/clientcmd/client_config.goBuildConfigFromFlags函数根据本地kubeconfig文件路径来生成restclient.Config对象。
staging/src/k8s.io/client-go/tools/clientcmd/loader.goLoad方法读取指定目录下多个文件内容并合并,转换成clientcmdapi.Config对象。
Load函数基于字节切片生成clientcmdapi.Config对象。
方法2
staging/src/k8s.io/client-go/tools/clientcmd/client_config.goBuildConfigFromKubeconfigGetter函数根据KubeconfigGetter来生成kubeconfig对象。其中,KubeconfigGetter是生成clientcmdapi.Config对象的方法,可以调用上面的Load函数来实现。
到此这篇关于k8s clientConfig和rawConfig区别解析的文章就介绍到这了,更多相关k8s clientConfig和rawConfig内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!