| | |
| | | "context" |
| | | "crypto/tls" |
| | | "fmt" |
| | | "k8s.io/client-go/kubernetes" |
| | | "k8s.io/client-go/tools/clientcmd" |
| | | "net/http" |
| | | "os" |
| | | "time" |
| | |
| | | } |
| | | |
| | | // 安装Docker |
| | | installCommand := "sudo curl -fsSL https://get.docker.com -o get-docker.sh && sudo sh get-docker.sh" |
| | | installCommand := "sudo curl -fsSL https://get.docker.com -o get-docker.sh && sudo sh get-docker.sh && sudo systemctl start docker && sudo systemctl enable docker" |
| | | _, err = SSHExec(nodeIP, sshUsername, sshPassword, installCommand, sshPort) |
| | | if err != nil { |
| | | return fmt.Errorf("failed to install Docker on the remote server: %v", err) |
| | | return fmt.Errorf("failed to install Docker on the remote server:%v %v", nodeIP, err) |
| | | } |
| | | |
| | | fmt.Println("Docker has been installed on the remote server.") |
| | |
| | | fmt.Println("kubectl has been installed on the remote server.") |
| | | return nil |
| | | } |
| | | |
| | | var kubeConfig string |
| | | |
| | | func GetClient(cluster string) (*kubernetes.Clientset, error) { |
| | | // 配置 Kubernetes 集群的 kubeconfig 路径 |
| | | //if kubeConfig == nil { |
| | | // kubeConfig = flag.String("kubeconfig", filepath.Join(HomeDir(), ".kube", cluster, "config"), "kubeconfig file") |
| | | // flag.Parse() |
| | | //} |
| | | |
| | | kubeConfig = fmt.Sprintf("%s/.kube/%s/config", HomeDir(), cluster) |
| | | |
| | | // 创建 Kubernetes 客户端 |
| | | config, err := clientcmd.BuildConfigFromFlags("", kubeConfig) |
| | | if err != nil { |
| | | panic(err.Error()) |
| | | } |
| | | |
| | | clientset, err := kubernetes.NewForConfig(config) |
| | | if err != nil { |
| | | panic(err.Error()) |
| | | } |
| | | |
| | | return clientset, nil |
| | | } |