Cara Memaparkan Maklumat Status Pod Lanjutan Menggunakan Klien Kubernetes Go
Berbeza dengan maklumat status pod asas yang disediakan oleh pod.Status.Phase, yang hanya menawarkan set pilihan yang terhad, klien Kubernetes Go membolehkan anda mendapatkan maklumat status yang lebih terperinci, sama seperti yang dipaparkan dalam perintah kubectl get pods di bawah lajur "Status".
Mendapatkan Init :0/1 dan Status PodInitializing
Untuk mendapatkan status lanjutan, seperti Init:0/1 dan PodInitializing, anda boleh menggunakan langkah berikut:
Import perpustakaan yang diperlukan:
<code class="go">import ( "context" "fmt" "github.com/golang/protobuf/ptypes" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/client-go/kubernetes" )</code>
Buat set pelanggan Kubernetes:
<code class="go">clientset, err := kubernetes.NewForConfig(config) if err != nil { // Handle error }</code>
Ambil pod:
<code class="go">pods, err := clientset.CoreV1().Pods("").List(context.TODO(), metav1.ListOptions{}) if err != nil { // Handle error }</code>
Lelar melalui pod dan dapatkan maklumat status terperincinya:
<code class="go">for i, pod := range pods.Items { podInfo := fmt.Sprintf("[%d] Pod: %s", i, pod.GetName()) // Get pod conditions for _, condition := range pod.Status.Conditions { // Check for `Initialized` condition if condition.Type == "Initialized" { podInfo += fmt.Sprintf(", Status: PodInitializing") } // Check for `ContainersReady` condition if condition.Type == "ContainersReady" { // Parse the `LastProbeTime` condition lastProbeTime, err := ptypes.Timestamp(condition.LastProbeTime) if err != nil { // Handle error } podInfo += fmt.Sprintf(", Status: Init:%d/%d", condition.Status == metav1.ConditionFalse, pod.Status.InitContainerStatuses != nil ? len(pod.Status.InitContainerStatuses) : 0) + lastProbeTime.String() } } fmt.Println(podInfo) }</code>
Dengan menggunakan pendekatan ini, anda boleh mendapatkan semula maklumat status lanjutan secara pemprograman untuk pod, termasuk status seperti Init:0/1 dan PodInitializing, membolehkan anda memperoleh pemahaman yang lebih mendalam tentang kesihatan dan keadaan pod anda.
Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Maklumat Status Pod Lanjutan dalam Pelanggan Kubernetes Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!