다음을 사용하여 Kubernetes YAML 파일을 Go 구조체로 역직렬화하려고 할 때 오류가 발생했습니다. api.Codecs.UniversalDecoder().Decode 함수. 오류에는 "apps/v1beta1" 버전에 "배포" 종류가 등록되지 않았습니다.
Kubernetes YAML 파일을 역직렬화할 때 다음의 스키마를 확인해야 합니다. 이 경우 배포 개체는 API의 apps/v1beta1 버전에 등록됩니다.
문제를 해결하려면 apps/v1beta1 버전에 대한 스키마입니다. 이는 코드에 다음 줄을 추가하여 달성할 수 있습니다.
<code class="go">_ "k8s.io/client-go/pkg/apis/extensions/install"</code>
이 가져오기를 통해 배포 객체의 스키마가 등록되어 역직렬화 프로세스 중에 사용할 수 있게 됩니다. .
다음은 필요한 가져오기를 통합하는 수정된 작업 Go 프로그램입니다.
<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>
이 프로그램을 실행할 때 배포 개체는 없이 성공적으로 역직렬화되어야 합니다. 앞서 언급한 오류가 발생했습니다.
위 내용은 Kubernetes YAML을 역직렬화할 때 \"no kind \"배포\"가 버전 \"apps/v1beta1\"\"에 등록됨 오류를 수정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!