> 백엔드 개발 > Golang > Kubernetes YAML 파일을 Go 구조체로 역직렬화할 때 \'No Kind Registered\' 오류를 해결하는 방법은 무엇입니까?

Kubernetes YAML 파일을 Go 구조체로 역직렬화할 때 \'No Kind Registered\' 오류를 해결하는 방법은 무엇입니까?

Patricia Arquette
풀어 주다: 2024-10-29 16:26:02
원래의
843명이 탐색했습니다.

How to Resolve

Kubernetes YAML 파일을 Go 구조체로 역직렬화

Kubernetes YAML 파일을 Go 구조체로 역직렬화하는 것은 Kubernetes API와 상호작용하는 프로그램을 개발할 때 일반적인 작업입니다. 방법은 다음과 같습니다.

문제:

Kubernetes YAML 파일을 Go 구조체로 역직렬화하려고 하면 'no kind'라는 오류가 발생할 수 있습니다.당신의 종류'가 '당신의 버전'' 버전에 등록되어 있습니다. 이는 Kubernetes 스키마가 자동으로 등록되지 않기 때문입니다.

해결책:

이 문제를 해결하려면 현재 사용 중인 Kubernetes API 그룹 및 버전에 적합한 설치 패키지를 가져오십시오. 함께 일하고 있습니다. 예를 들어 v1beta1 앱의 경우 다음을 사용합니다.

_ "k8s.io/client-go/pkg/apis/extensions/install"
로그인 후 복사

v1의 서비스와 같은 다른 리소스의 경우 pkg/api에서 설치 패키지를 가져옵니다.

_ "k8s.io/client-go/pkg/api/install"
로그인 후 복사

예제 코드 :

다음은 전체 작업을 수행하는 Go 프로그램의 예입니다. 배포를 나타내는 Kubernetes YAML 파일:

package main

import (
    "fmt"

    "k8s.io/client-go/pkg/api"
    _ "k8s.io/client-go/pkg/apis/extensions/install" // Important import
)

func main() {
    decode := api.Codecs.UniversalDeserializer().Decode

    deployment := `
    apiVersion: extensions/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
    `

    obj, _, err := decode([]byte(deployment), nil, nil)
    if err != nil {
        fmt.Printf("%#v", err)
    }

    fmt.Printf("%#v\n", obj)
}
로그인 후 복사

올바른 설치 패키지를 가져오면 Kubernetes YAML 파일을 Go 구조체로 성공적으로 역직렬화할 수 있습니다.

위 내용은 Kubernetes YAML 파일을 Go 구조체로 역직렬화할 때 \'No Kind Registered\' 오류를 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿