Cipta sumber tersuai menggunakan klien Kubernetes go

PHPz
Lepaskan: 2024-02-08 21:24:34
ke hadapan
626 orang telah melayarinya

使用 go Kubernetes 客户端创建自定义资源

Editor PHP Xiaoxin membawakan anda pengenalan untuk menggunakan klien Kubernetes go untuk mencipta sumber tersuai. Dengan pembangunan teknologi asli awan, semakin banyak perusahaan mula mengguna pakai Kubernetes sebagai platform orkestrasi kontena. Mencipta sumber tersuai (CRD) ialah ciri penting Kubernetes, yang boleh membantu pembangun menyepadukan aplikasi dan perkhidmatan mereka dengan lancar ke dalam Kubernetes. Artikel ini akan memperkenalkan secara terperinci cara mencipta sumber tersuai melalui penggunaan klien go Kubernetes, membolehkan anda mengurus dan menggunakan aplikasi anda sendiri dalam Kubernetes dengan lebih fleksibel.

Kandungan soalan

Saya mahu menggunakan klien go kubernetes untuk menggunakan sumber tersuai berdasarkan crd yang digunakan. Berdasarkan dokumentasi pelanggan, saya mengubah suai contoh supaya kelihatan seperti ini:

u := &unstructured.unstructured{}
u.object = map[string]interface{}{
    "metadata": map[string]interface{}{
        "name": task.name,
    },
    "spec": map[string]interface{}{
        "steps": []interface{}{
            map[string]interface{}{
                "image": "ubuntu",
                "name":  "hello",
                "command": []interface{}{
                    "echo",
                },
                "args": []interface{}{
                    "hello world!",
                },
            },
        },
    },
}
u.setgroupversionkind(schema.groupversionkind{
    group:   "tekton.dev",
    version: "v1beta1",
    kind:    "task",
})

err := c.create(context.background(), u)
if err != nil {
    logger.error("error creating tektontask!", "err", err)
} else {
    logger.info("created tektontask.", "task", u)
}
Salin selepas log masuk

Apabila saya cuba melaksanakan kod, saya tidak mendapat maklum balas daripada pembalak. Ralat, tetapi panik:

runtime error: invalid memory address or nil pointer dereference
goroutine 12
Salin selepas log masuk

Semuanya berjalan dalam pengendalian permintaan http, tetapi memandangkan saya telah menggunakannya dengan sumber lain (bukan berasaskan crd) saya rasa itu tidak menjadi isu. Apabila melanjutkan pembalakan saya mendapati bahawa semuanya berfungsi dengan baik sehingga sumber dicipta menggunakan baris itu

err := c.Create(context.Background(), u)
Salin selepas log masuk

Penyelesaian

Mendapati masalah. Saya terlupa untuk memulakan pelanggan

c, err := client.New(config.GetConfigOrDie(), client.Options{})
Salin selepas log masuk

Atas ialah kandungan terperinci Cipta sumber tersuai menggunakan klien Kubernetes go. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:stackoverflow.com
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