ReST 인터페이스를 사용하여 Kubernetes APIServer에서 '친숙한' 응답을 얻는 방법

WBOY
풀어 주다: 2024-02-09 08:10:18
앞으로
1195명이 탐색했습니다.

如何使用 ReST 接口从 Kubernetes APIServer 获取“友善”响应

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

원천:stackoverflow.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!