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

DDD
Lepaskan: 2024-10-25 04:26:30
asal
727 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!