>백엔드 개발 >Golang >Go Kubernetes 클라이언트를 사용하여 사용자 정의 리소스 만들기

Go Kubernetes 클라이언트를 사용하여 사용자 정의 리소스 만들기

PHPz
PHPz앞으로
2024-02-08 21:24:34665검색

使用 go Kubernetes 客户端创建自定义资源

PHP 편집자 Xiaoxin은 go Kubernetes 클라이언트를 사용하여 사용자 정의 리소스를 생성하는 방법을 소개합니다. 클라우드 네이티브 기술의 발전으로 점점 더 많은 기업이 Kubernetes를 컨테이너 오케스트레이션 플랫폼으로 채택하기 시작했습니다. 사용자 정의 리소스(CRD) 생성은 개발자가 애플리케이션과 서비스를 Kubernetes에 원활하게 통합하는 데 도움이 되는 Kubernetes의 중요한 기능입니다. 이 기사에서는 go Kubernetes 클라이언트를 사용하여 사용자 정의 리소스를 생성하는 방법을 자세히 소개하여 Kubernetes에서 자신의 애플리케이션을 보다 유연하게 관리하고 배포할 수 있습니다.

질문 내용

go kubernetes 클라이언트를 사용하여 배포된 crd를 기반으로 사용자 정의 리소스를 배포하고 싶습니다. 고객의 문서를 기반으로 예시를 다음과 같이 수정했습니다.

으아악

코드를 실행하려고 하면 로거로부터 아무런 피드백도 받지 못합니다. 오류가 발생했지만 당황:

으아악

모든 것이 http 요청 처리 내에서 실행되고 있지만 다른(crd 기반이 아닌) 리소스와 함께 사용했기 때문에 이것이 문제라고 생각하지 않습니다. 로깅을 확장할 때 해당 라인을 사용하여 리소스가 생성될 때까지 모든 것이 잘 작동하는 것을 발견했습니다

u := &unstructured.unstructured{}
u.object = map[string]interface{}{
    "metadata": map[string]interface{}{
        "name": task.name,
    },
    "spec": map[string]interface{}{
        "steps": []interface{}{
            map[string]interface{}{
                "image": "ubuntu",
                "name":  "hello",
                "command": []interface{}{
                    "echo",
                },
                "args": []interface{}{
                    "hello world!",
                },
            },
        },
    },
}
u.setgroupversionkind(schema.groupversionkind{
    group:   "tekton.dev",
    version: "v1beta1",
    kind:    "task",
})

err := c.create(context.background(), u)
if err != nil {
    logger.error("error creating tektontask!", "err", err)
} else {
    logger.info("created tektontask.", "task", u)
}

Solution

문제를 발견했습니다. 클라이언트 초기화를 깜빡했어요

으아악

위 내용은 Go Kubernetes 클라이언트를 사용하여 사용자 정의 리소스 만들기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제