當我在Kubernetes中運行一個Golang應用程式時,我想獲得它所運行的pod的注釋,
。有什么庫可以幫助我做到這一點嗎?
uj5u.com熱心網友回復:
你要找的是庫
https://github.com/kubernetes/apimachinery。它有如下的方法,對你的使用情況是有用的。func (meta *ObjectMeta) SetAnnotations(annotations map[string]string)
func HasAnnotation(obj ObjectMeta, ann string) bool
參考:
- https://pkg.go.dev/k8s.io/[email protected]/pkg/apis/meta/v1#HasAnnotation
- https://pkg.go.dev/k8s.io/[email protected]/pkg/apis/meta/v1#ObjectMeta.SetAnnotations
uj5u.com熱心網友回復:
假設你知道你想要檢索注釋的pod的名字,使用下面的例子pod nginx-6799fc88d8-mzmcj:
package main
import (
"context"/span>
"fmt"/span>
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" /span>
"k8s.io/client-go/kubernetes"。
"k8s.io/client-go/rest"/span>
)
func main() {
config, _ := rest.InClusterConfig()
clientet, _ := kubernetes.NewForConfig(config)
pod, _ := clientset.CoreV1().Pods("default").Get(context.TODO(), "nginx-6799fc88d8-zmcj", metav1.GetOptions{})
for annotation_name, annotation_value := range pod.GetAnnotations(){
fmt.Println(annotation_name, annotation_value)
}
}
而結果是:
$ /span>kubectl logs incluster-app-6dc44ddcf5-dxj8p
cni.projectcalico.org/containerID 7a63f9befd1174d68384adc05735fbcb1482dfe0d312839736531e90fa9fe790
cni.projectcalico.org/podIP10.0.124.193/32
cni.projectcalico.org/podIPs 10.0.124.193/32.
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/313762.html
標籤:
