Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Menyenaraikan Butiran Pod dalam Kubernetes menggunakan Klien Go?

Bagaimana untuk Menyenaraikan Butiran Pod dalam Kubernetes menggunakan Klien Go?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-24 19:04:02746semak imbas

How to List Pod Details in Kubernetes using the Go Client?

Senarai Butiran Pod dengan Kubernetes Go-Client

Mengakses butiran pod menggunakan pustaka klien-go Kubernetes membolehkan anda mendapatkan semula maklumat yang serupa dengan menggunakan perintah kubectl get pods.

Untuk mendapatkan butiran khusus seperti nama, status, keadaan sedia, mulakan semula dan umur pod dalam ruang nama yang diberikan, ikut langkah berikut:

  1. Import pakej yang diperlukan:
<code class="go">import (
    "context"
    "fmt"
    "time"

    corev1 "k8s.io/api/core/v1"
    metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)</code>
  1. Buat fungsi untuk menyenaraikan pod dalam ruang nama yang diingini:
<code class="go">func GetPods(client *meshkitkube.Client, namespace string) (*v1core.PodList, error) {
    podInterface := client.KubeClient.CoreV1().Pods(namespace)
    podList, err := podInterface.List(context.TODO(), v1.ListOptions{})
    if err != nil {
        return nil, err
    }
    return podList, nil
}</code>
  1. Lelar melalui yang diambil pod untuk mengekstrak data yang diperlukan:
<code class="go">// List pod details similar to `kubectl get pods -n <my namespace>`
for _, pod := range podList.Items {
    podCreationTime := pod.GetCreationTimestamp()
    age := time.Since(podCreationTime.Time).Round(time.Second)
    podStatus := pod.Status
    containerRestarts := int32(0)
    containerReady := 0
    totalContainers := len(pod.Spec.Containers)
    for container := range pod.Spec.Containers {
        containerRestarts += podStatus.ContainerStatuses[container].RestartCount
        if podStatus.ContainerStatuses[container].Ready {
            containerReady++
        }
    }
    name := pod.GetName()
    ready := fmt.Sprintf("%v/%v", containerReady, totalContainers)
    status := fmt.Sprintf("%v", podStatus.Phase)
    restarts := fmt.Sprintf("%v", containerRestarts)
    ageS := age.String()
    data = append(data, []string{name, ready, status, restarts, ageS})
}</code>

Atas ialah kandungan terperinci Bagaimana untuk Menyenaraikan Butiran Pod dalam Kubernetes menggunakan Klien Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn