[英]Check if a pod is running on a k8s cluster in a go program
我正在用 Go 編寫一個命令行工具,它將根據特定命名空間中k8s
集群上特定 pod 的存在執行操作。
我可以在我的go
程序中通過命令行(shell)調用來做類似的事情
kubectl get pods -n mynapespace l app=myapp
或者如果我不確定標簽,那么一些更不優雅的東西是:
kubectl get pods -n mynapespace | grep -i somepatternIamcertainabout
但是,考慮到我使用的是 k8s 本機語言 (Go),我想知道是否有更多的 Go 本機/特定方法來對 k8s api 服務器進行此類查詢,而無需從我的 cli 工具中求助於 shell 調用。
但是,考慮到我使用的是 k8s 本機語言 (Go),我想知道是否有更多的 Go 本機/特定方法來對 k8s api 服務器進行此類查詢,而無需從我的 cli 工具中求助於 shell 調用。
如果你想在用go編寫的程序中與k8s 集群對話而不求助於 shell 調用, client-go庫是你的不二之選。 它包含您在 go 程序中查詢 k8s api 服務器所需的一切。
包括什么
kubernetes
包包含訪問 Kubernetes API 的客戶端集。discovery
包用於發現 Kubernetes API 服務器支持的 API。dynamic
包包含一個動態客戶端,可以對任意 Kubernetes API 對象執行通用操作。plugin/pkg/client/auth
包包含可選的身份驗證插件,用於從外部來源獲取憑證。transport
包用於設置身份驗證和啟動連接。tools/cache
包對於編寫控制器很有用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.