配置统一,集群外或集群内使用client-go

使得当在集群内内部运行时,使用ServiceAccount,在集群外部时使用~/.kube/config中的配置,则可以采用如下的方式:

	var config *rest.Config
	var kubeConfig *string

	if home := 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()

	// 使用 ServiceAccount 创建集群配置(InCluster模式)
	if config, err = rest.InClusterConfig(); err != nil {
		// 使用 KubeConfig 文件创建集群配置
		if config, err = clientcmd.BuildConfigFromFlags("", *kubeConfig); err != nil {
			return err
		}
	}
posted @ 2023-01-10 12:40  cosmoswong  阅读(116)  评论(0编辑  收藏  举报