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 중국어 웹사이트의 기타 관련 기사를 참조하세요!