PHP 편집기 Apple에서는 ReST 인터페이스를 사용하여 Kubernetes APIServer에서 "친숙한" 응답을 얻는 방법을 소개합니다. Kubernetes는 클러스터의 다양한 리소스를 관리하고 모니터링하기 위한 API를 제공하는 널리 사용되는 컨테이너 오케스트레이션 플랫폼입니다. ReST 인터페이스를 사용하면 Kubernetes APIServer와 쉽게 상호 작용하고 필요한 정보를 얻을 수 있습니다. 이 기사에서는 ReST 인터페이스를 사용하여 인증하고, 요청을 보내고, 응답을 처리하는 방법과 가능한 오류 조건을 처리하는 방법을 자세히 살펴보겠습니다. Kubernetes를 처음 사용하는 사람이든 숙련된 Kubernetes 사용자이든 관계없이 이 문서에서는 유용한 지침과 실용적인 조언을 제공합니다.
rest get, post 수준에서 kubernetes api 서버와 통신하기 위해 golang client-go 라이브러리를 사용하고 있습니다. 수신된 응답은 잘 구성된 json 구조도 아니고 "종류"의 api 개체도 아닙니다.
프로그램 부분은 다음과 같습니다:
으아악응답은 다음으로 시작됩니다:
으아악다음 명령이 반환하는 것과 유사한 출력이 나올 것으로 예상됩니다.
kubeconfig := filepath.join( os.getenv("home"), ".kube", "config", ) config, err := clientcmd.buildconfigfromflags("", kubeconfig) if err != nil { log.fatal(err) } config.negotiatedserializer = scheme.codecs.withoutconversion() groupversion, _ := schema.parsegroupversion("api/v1") config.groupversion = &groupversion config.contenttype = "application/json" config.acceptcontenttypes = "application/json" examplerestclient, err := rest.restclientfor(config) if err != nil { panic(err) } var statuscode int var contenttype string response, err := examplerestclient. get(). resource("nodes"). do(context.background()). statuscode(&statuscode). contenttype(&contenttype). get() if err != nil { panic(err) } fmt.printf("content-type is %s\n", contenttype) fmt.printf("status code is %d\n", statuscode) fmt.printf("received response %v\n", response)
수신된 응답이 올바른 형식의 json 구조가 아닙니다
client-go
모듈의 작동 방식에 대해 혼란스러워하시는 것 같습니다.
나머지 API의 응답은 확실히 잘 구성된 json 응답이지만 이는 go 데이터 구조(예: this )로 정렬 해제됩니다.
반환된 노드에 액세스하려면 표준 go 구문을 사용하여 결과와 상호 작용할 수 있습니다.
으아악다음 명령이 반환하는 것과 유사한 출력이 예상됩니다.
왜?client-go
바인딩은 Go 코드에 유용한 데이터를 반환합니다. json 출력을 생성하려면 리소스를 json 형식으로 명시적으로 마샬링해야 합니다.
으아악위 내용은 ReST 인터페이스를 사용하여 Kubernetes APIServer에서 '친숙한' 응답을 얻는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!