자주 묻는 질문 Code Engine
IBM Cloud® Code Engine 서비스에 대한 일반적인 질문의 답변입니다.
IBM Cloud Code Engine란 무엇입니까?
Code Engine은 IBM에서 개발했으며 여러 오픈 소스 컴포넌트를 사용하여 빌드되었습니다. 목표는 Kubernetes 클러스터에서 실행되는 소스 중심의 컨테이너화된 최신 서버리스 앱을 작성할 수 있도록 Kubernetes의 기능을 확장하는 것입니다. 이 플랫폼은 클라우드에서 실행할 앱 유형(12가지 요소 앱, 컨테이너 또는 함수)을 결정해야 하는 개발자의 요구를 해결하기 위해 설계되었습니다. 자세한 정보는 Code Engine 정보를 참조하십시오.
Code Engine을 사용하면 단일 대시보드에서 애플리케이션을 배치하고 작업을 실행하며 소스 코드를 빌드할 수 있습니다.
프로젝트란 무엇입니까?
프로젝트는 애플리케이션, 작업 및 빌드와 같은 Code Engine 엔티티의 그룹입니다. 프로젝트는 Kubernetes 네임스페이스를 기반으로 합니다. 프로젝트 이름은 IBM Cloud® 리소스 그룹, 사용자 계정 및 지역 내에서 고유해야 합니다. 프로젝트는 리소스를 관리하고 해당 엔티티에 대한 액세스를 제공하는 데 사용됩니다.
프로젝트는 다음 항목을 제공합니다.
- 엔티티 이름에 대한 고유한 네임스페이스를 제공합니다.
- 프로젝트 리소스에 대한 액세스를 관리합니다(인바운드 액세스).
- 서비스, 레지스트리 및 저장소에 대한 액세스를 관리합니다(아웃바운드 액세스).
- TLS(Transport Layer Security)에 대해 자동으로 생성된 인증서가 있습니다.
프로젝트에 대한 자세한 정보는 프로젝트 관리를 참조하십시오.
코드 샘플은 어디에서 찾을 수 있습니까?
Code Engine의 기능을 탐색하는 데 도움이 되는 코드 샘플을 찾을 수 있습니다. GitHub 의 Code Engine 코드 샘플 저장소를 방문하십시오.
메모리가 더 필요합니다. 한계를 늘릴 수 있습니까?
Code Engine를 사용하려면 Docker 허브 계정이 필요합니까?
Code Engine 에는 Docker 허브 계정이 필요하지 않습니다. Code Engine 가 컨테이너를 실행하지만 Code Engine에 워크로드를 배치하기 위해 컨테이너 기술을 이해할 필요가 없습니다. 소스 코드로 시작하고 Code Engine 가 사용자를 위해 컨테이너 이미지를 빌드하여 계정이 소유하는 IBM Cloud Container Registry 네임스페이스에 저장할 수 있습니다. IBM Cloud Container Registry 이 기본 컨테이너 레지스트리로 사용되지만, Code Engine 는 IBM Cloud에서 액세스할 수 있는 다른 공용 및 개인용 레지스트리에서 이미지를 푸시하고 가져올 수 있습니다.
Code Engine에서 빌드 및 내 시스템의 Docker 빌드 간의 차이점은 무엇입니까?
로컬 시스템에서 실행하는 Docker 빌드의 결과는 Code Engine에서 동일한 Dockerfile로 빌드를 실행하는 경우 발생하는 동일한 컨테이너 이미지입니다. 그러나 Code Engine의 빌드는 로컬 시스템이 아니라 Code Engine 시스템에서 대신 실행됩니다. Code Engine의 이 빌드는 여러 장점을 제공합니다.
- Docker Desktop과 같은 소프트웨어를 로컬로 설치할 필요는 없습니다.
- Code Engine에서 제공하는 리소스를 사용할 수 있습니다. 예를 들어, IBM Cloud 의 속도를 이용하여 컨테이너 레지스트리 이미지를 푸시 및 풀할 수 있습니다.
- 다양한 언어에 대한 소스를 발견하고 컨테이너를 자동으로 빌드하는 Dockerfile 대신, 빌드팩 빌드 전략을 사용하여 컨테이너 이미지를 빌드할 수 있습니다.
- Intel 기반이 아닌 프로세서를 사용하여 빌드된 이미지가 있는 경우, Code Engine 는 이를 다시 빌드할 수 있습니다.
Code Engine 에서 빌드팩으로 빌드한 컨테이너 이미지가 많은 취약점을 보이는 이유는 무엇인가요?
빌드팩 빌드 전략으로 빌드된 이미지는 Ubuntu 기본 이미지를 사용합니다. 이 기본 이미지는 적극적으로 유지 관리되지만, 일부 Ubuntu 패키지는 Ubuntu Pro 구독 모델에서만 보안 수정이 적용됩니다. 결과적으로 이미지에는 Canonical에서 취약성 공지를 게시하지만 Ubuntu Pro 구독자에게만 패치를 제공하는 패키지가 포함되어 있습니다. Code Engine 은 공개적으로 사용 가능한 버전을 사용하므로 이러한 업데이트는
자동으로 적용되지 않습니다. 취약점 보고서에서 패키지를 업데이트해야 하는 버전을 확인하여 취약점을 식별할 수 있습니다. 버전 번호에 esm 이 포함되어 있으면 Ubuntu Pro 전용 수정입니다.
기본 이미지에는 일부 런타임에 필요한 여러 패키지가 포함되어 있습니다. 이러한 패키지는 빌드팩이 빌드 중에 애플리케이션에 필요한 시스템 라이브러리를 런타임에 안정적으로 확인할 수 없기 때문에 설치됩니다. 일부 패키지는 특정 앱에 필요하지 않을 수도 있지만, 다양한 워크로드가 성공적으로 실행되도록 하기 위해 포함되어 있습니다.
어떤 Ubuntu 패키지가 있는지, 언제 업데이트되는지 등 기본 이미지를 완전히 제어하려면 빌드팩 빌드 전략에서 자체 Docker파일을 제공하는 것으로 전환하는 것이 좋습니다. Docker파일 기반 빌드를 사용하면 최소한의 기본 이미지를 선택하고, 원하는 대로 패키지를 업데이트하고, 취약성 검사에 표시되는 구성 요소의 수를 줄일 수 있습니다.
Intel이 아닌 프로세서로 빌드된 이미지가 Code Engine에서 작동하지 않는 이유는 무엇입니까?
컨테이너 레지스트리에 존재하는 이미지가 있고 이미지가 Intel 기반이 아닌 프로세서를 사용하여 빌드된 경우, Code Engine 는 컨테이너 이미지를 실행할 수 없습니다. Code Engine 는 Intel 기반 처리를 사용합니다. Intel 처리 (x86 프로세서) 를 사용하는 경우 사용자 고유의 이미지를 빌드할 수 있습니다. 또한 Code Engine 가 빌드 프로세스를 처리하도록 선택할 수도 있습니다. 자세한 정보는 빌드 계획을 참조하십시오.
Code Engine 앱이 WebSocket을 지원합니까?
예. Code Engine 샘플 저장소( GitHub)를 방문하면 를 사용하는 샘플 앱 WebSockets 를 찾을 수 있습니다.
연결이 유휴 상태가 아닌 경우에도 애플리케이션에 대한 최대 연결 시간은 10분입니다. Code Engine을(를) 사용하면 이 연결 시간을 timeout 값으로 구성할 수 있습니다. CLI를 사용하는 경우 --timeout 옵션을 app create 명령 또는 app update 명령과 함께 사용하십시오. 콘솔의 리소스 및 확장 탭에서 앱의 Timeout 값을 설정할 수 있습니다. WebSocket을 사용하는 앱의 경우, 클라이언트는
연결이 닫힌 후에 앱에 다시 연결해야 합니다. 따라서 앱에 지속적 연결이 필요한 경우 timeout 값에 도달하기 전에 새 연결을 작성하십시오.
하다 Code Engine 앱 지원 gRPC?
예. Code Engine 샘플 저장소( GitHub)를 방문하면 를 사용하는 샘플 앱 gRPC 를 찾을 수 있습니다.
gRPC 는 HTTP/2에 종속되므로 포트 이름을 h2c 로 설정하고 포트 값을 8080 로 설정해야 합니다. 그러면 Code Engine 애플리케이션이 HTTP/2 트래픽을 지원할 수 있습니다. Code Engine CLI를 사용하여 app create 명령 또는 app update 명령으로 --port h2c:8080 옵션을 구성하여 gRPC를 사용하도록 애플리케이션을 구성하십시오. gRPC 을 참조하십시오.
Code Engine 가 Code Engine 프로젝트 내의 특정 엔티티에 대한 액세스를 제한하는 방법을 제공합니까?
아니오, Code Engine에서 Code Engine 엔티티에 적용되는 역할은 현재 컨텍스트로 선택된 프로젝트로만 범위가 지정됩니다. 따라서 Code Engine 프로젝트 내의 개별 자원에 대한 권한을 제어할 수 없습니다.
Code Engine 가 배치된 함수에 대해 OpenAPI 스펙을 제공합니까?
아니오, Code Engine 는 사용자가 배치하는 기능에 대해 OpenAPI 스펙을 생성하거나 제공하지 않습니다. 코드에서 OpenAPI 스펙을 생성하기 위해 여러 프로그래밍 언어에 사용할 수 있는 패키지 및 도구가 있습니다.
Code Engine 서비스 이용 약관을 검토하려면 어떻게 해야 합니까?
최신 서비스 레벨 이용 약관은 서비스 이용 약관을 참조하십시오.
피드백을 제공하려면 어떻게 해야 합니까?
Code Engine에 대한 피드백은 중요하며 품질을 개선하는 데 도움이 됩니다. 피드백은 여러 가지 방법으로 제공할 수 있습니다.
- 딸깍 하는 소리 문서 문제 열기 문서 페이지 끝에서 문제를 열고 의견을 제공할 수 있습니다.
- Slack을 통해 피드백을 공유하십시오. 코드 엔진 채널에서 토론에 참여할 수 있습니다.