Anda telah menghadapi ralat semasa cuba menyahsiri fail YAML Kubernetes ke dalam struct Go menggunakan fungsi api.Codecs.UniversalDecoder().Nyahkod. Ralat berbunyi, "tiada jenis "Deployment" didaftarkan untuk versi "apps/v1beta1."
Apabila menyahsiri fail YAML Kubernetes, anda mesti memastikan bahawa skema objek didaftarkan. Dalam kes ini, objek Deployment didaftarkan di bawah versi apps/v1beta1 API.
Untuk menyelesaikan isu, anda perlu mengimport pakej yang mendaftarkan skema untuk versi apps/v1beta1 Ini boleh dicapai dengan menambahkan baris berikut pada kod anda:
<code class="go">_ "k8s.io/client-go/pkg/apis/extensions/install"</code>
Import ini memastikan bahawa skema untuk objek Deployment didaftarkan dan tersedia untuk digunakan semasa proses penyahserilan. .
Berikut ialah program Go kerja yang diubah suai yang menggabungkan import yang diperlukan:
<code class="go">package main import ( "fmt" "k8s.io/client-go/pkg/api" "k8s.io/client-go/pkg/api/install" "k8s.io/client-go/pkg/apis/extensions/install" ) var service = ` apiVersion: apps/v1beta1 kind: Deployment metadata: name: my-nginx spec: replicas: 2 template: metadata: labels: run: my-nginx spec: containers: - name: my-nginx image: nginx ports: - containerPort: 80 ` func main() { decode := api.Codecs.UniversalDecoder().Decode obj, _, err := decode([]byte(service), nil, nil) if err != nil { fmt.Printf("%#v", err) } fmt.Printf("%#v\n", obj) }</code>
Apabila anda menjalankan program ini, objek Deployment harus berjaya dinyahsiri tanpa menghadapi ralat yang disebutkan di atas.
Atas ialah kandungan terperinci Bagaimana untuk Membetulkan \'tiada jenis \'Deployment\' didaftarkan untuk versi \'apps/v1beta1\'\' Ralat Apabila Menyahserialisasi Kubernetes YAML?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!