身边要有一个k8s集群 阿里云ask可以免费使用 注意是ask 不是ack
然后把apiserver公网暴露出来 并拿到apiserver的远程conf文件
conf如下
apiVersion: v1
clusters:
- cluster:
server: https://47.98.1x8.xxx:6443
certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURUakNDQWphZ0F3SUJBZ0lVQ3hIc0Q1OW9VNFluV2pBRnZXRkFMNWxZanZtLQo=
name: kubernetes
contexts:
- context:
cluster: kubernetes
user: "kubernetes-admin"
name: kubernetes-admin-c2a3d10703de144b0bfab94cab33d81c8
current-context: kubernetes-admin-c2a3d10703de144b0bfab94cab33d81c8
kind: Config
preferences: {}
users:
- name: "kubernetes-admin"
user:
client-certificate-data: LS0tLS1CRUdJTiBDRVJUSUZJHUnZ1UmJzZ1o1K292anQzK0FZaThzVG4yVFZieAp1d01hNFJNK0pNUFI3UjJaOU9ucmwwWURaT1prNkhndjdXZXBLNlp5RlBUdGlrUnpSODJoZWN4OExjcGFRczdYCmlSanVwQWU1RnBDdUNqZVV5YnhPZDZnclVBclN2VEU9Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K
client-key-data: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFb2dJQkFBS0NBUUVBazFib0E5VWhNa1ZURTRSNHM2LzcxMGtVaUlkUmxKRWZXQXBRQ1kyMU5GSkczYkJDClVtMHVxbjFSYUhOTVZEQmFnRGlEMk9ZbXNYYUpBU1pxZiswR1lOdVlMU1NtTXlxdDkrajRad0JHams
把这个代码粘进去 然后对应目录 go mod tidy 一下 加入client-go 相关依赖 我的go版本是1.23的
```go
package main
import (
"context"
"fmt"
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/client-go/kubernetes"
"k8s.io/client-go/tools/clientcmd"
"sync"
)
var (
client *kubernetes.Clientset = nil
lock = sync.Mutex{}
)
func getClient() *kubernetes.Clientset {
kubeconfig := "/Users/haoxuanli/GolandProjects/bookstore/superclient/conf/kubeconf"
config, err := clientcmd.BuildConfigFromFlags("", kubeconfig)
if err != nil {
panic(err.Error())
}
if client == nil {
lock.Lock()
if client == nil {
defer lock.Unlock()
client, err = kubernetes.NewForConfig(config)
}
}
return client
}
func test() {
clientset := getClient()
pods, err := clientset.CoreV1().Pods("kube-public").List(context.Background(), v1.ListOptions{})
if err != nil {
panic(err.Error())
}
for _, pod := range pods.Items {
fmt.Printf("Pod: %s\n", pod.Name)
}
}
func main() {
test()
}
运行结果: 可以通的

好了 各位再见 下次再会


被折叠的 条评论
为什么被折叠?



