Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mendapatkan Butiran Pod daripada Kluster Kubernetes Menggunakan Pustaka Go-client?

Bagaimana untuk Mendapatkan Butiran Pod daripada Kluster Kubernetes Menggunakan Pustaka Go-client?

DDD
DDDasal
2024-10-25 04:26:30719semak imbas

How to Retrieve Pod Details from a Kubernetes Cluster Using the Go-client Library?

Dapatkan Butiran Pod dengan Kubernetes Go-client

Apabila bekerja dalam kelompok Kubernetes, adalah penting untuk mempunyai cara untuk mengakses butiran pod dengan cekap. Pustaka klien-go Kubernetes menyediakan antara muka untuk berinteraksi dengan kluster, membolehkan pembangun mendapatkan semula pelbagai maklumat.

Satu tugas biasa ialah menyenaraikan semua pod dalam ruang nama tertentu, sama seperti menggunakan perintah kubectl "kubectl dapatkan pod -n ". Operasi ini memerlukan mendapatkan maklumat seperti nama pod, status, kesediaan, kiraan mulakan semula dan umur.

Untuk mencapainya, kami menggunakan perpustakaan klien-go untuk berinteraksi dengan API Kubernetes. Coretan kod berikut menunjukkan cara menyenaraikan pod dalam ruang nama yang diberikan:

<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>

Setelah kami mendapatkan semula senarai pod, kami mengulangi setiap pod dan bekasnya untuk mengumpulkan butiran yang diperlukan:

<code class="go">for _, pod := range podList.Items {
    podCreationTime := pod.GetCreationTimestamp()
    age := time.Since(podCreationTime.Time).Round(time.Second)

    podStatus := pod.Status

    var containerRestarts int32
    var containerReady int
    var totalContainers int

    for container := range pod.Spec.Containers {
        containerRestarts += podStatus.ContainerStatuses[container].RestartCount
        if podStatus.ContainerStatuses[container].Ready {
            containerReady++
        }
        totalContainers++
    }

    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>

Pembolehubah "data" yang terhasil mengandungi tatasusunan rentetan, yang mewakili butiran pod yang dikehendaki: nama, kesediaan, status, kiraan mulakan semula dan umur. Data ini kemudiannya boleh dicetak atau dimanipulasi dengan mudah seperti yang diperlukan.

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Butiran Pod daripada Kluster Kubernetes Menggunakan Pustaka Go-client?. 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