컨테이너 기반 제품 요구 사항 - AWS Marketplace

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

컨테이너 기반 제품 요구 사항

AWS Marketplace 에서는 모든 컨테이너 기반 제품 및 오퍼링에 대해 다음 요구 사항을 유지합니다. AWS Marketplace이러한 요구 사항은 고객을 위해 안전하고 신뢰할 수 있는 디지털 카탈로그를 홍보하는 데 도움이 됩니다. 또한 판매자는 특정 제품의 요구 사항을 충족할 수 있도록 추가 컨트롤 및 프로토콜 구현을 검토하는 것이 좋습니다.

제출 시 모든 제품 및 관련 메타데이터를 검토하여 현재 AWS Marketplace 요구 사항을 충족하거나 초과하는지 확인합니다. 당사는 진화하는 보안 및 기타 사용 요구 사항에 맞게 이러한 정책을 검토하고 조정합니다. AWS Marketplace 기존 제품이 이러한 요구 사항의 변경 사항을 계속 충족하는지 지속적으로 확인합니다. 제품이 규정을 준수하지 않는 경우 AWS Marketplace 귀하에게 연락하여 제품 업데이트를 요청합니다. 경우에 따라 문제가 해결될 때까지 새 구독자가 제품을 일시적으로 사용할 수 없게 될 수 있습니다.

보안 요구 사항

모든 컨테이너 기반 제품은 다음과 같은 보안 요구 사항을 준수해야 합니다.

액세스 요구 사항

모든 컨테이너 기반 제품은 다음과 같은 액세스 요구 사항을 준수해야 합니다.

  • 컨테이너 기반 제품은 초기 무작위 암호를 사용해야 합니다. 컨테이너 기반 제품은 외부 관리 액세스(예: 웹 인터페이스를 통해 애플리케이션에 로그인)에 초기 고정 암호 또는 빈 암호를 사용하면 안 됩니다. 구매자는 이 무작위 암호를 입력해야만 보안 인증 정보를 설정하거나 변경할 수 있습니다.

  • 애플리케이션에 대한 모든 외부 액세스는 고객이 명시적으로 동의하고 활성화해야 합니다.

고객 정보 요구 사항

모든 컨테이너 기반 제품은 다음과 같은 고객 정보 요구 사항을 준수해야 합니다.

  • 소프트웨어는 기존 보유 라이선스 사용(BYOL)에서 요구하는 경우를 제외하고 고객의 인지와 분명한 동의 없이 고객 데이터를 수집하거나 내보내면 안 됩니다. 고객 데이터를 수집하거나 내보내는 애플리케이션은 다음 지침을 준수해야 합니다.

    • 고객 데이터 수집은 셀프 서비스이고, 자동화되고, 안전해야 합니다. 구매자는 판매자가 소프트웨어 배포를 승인할 때까지 기다릴 필요가 없어야 합니다.

    • 고객 데이터에 대한 요구 사항은 목록의 설명 또는 사용 지침에 명확하게 명시되어야 합니다. 여기에는 수집되는 데이터, 고객 데이터가 저장되는 위치 및 사용 방법이 포함됩니다. 예: 이 제품은 사용자의 이름과 이메일 주소를 수집합니다. 이 정보는 <회사 이름>에서 전송하고 저장합니다. 이 정보는 <제품 이름> 제품과 관련하여 구매자에게 연락하는 용도로만 사용됩니다.

    • 결제 정보를 수집하면 안 됩니다.

제품 사용 요구 사항

모든 컨테이너 기반 제품은 다음과 같은 제품 사용 요구 사항을 준수해야 합니다.

  • 판매자는 완전히 작동하는 제품만 등록할 수 있습니다. 시험 또는 평가 목적의 베타 또는 프리릴리스 제품은 허용되지 않습니다. 판매자가 무료 버전을 제공한 AWS Marketplace 후 90일 이내에 동등한 유료 버전을 제공하는 경우 상용 소프트웨어의 개발자, 커뮤니티 및 BYOL 에디션이 지원됩니다.

  • 모든 컨테이너 기반 제품의 사용 지침에는 컨테이너 기반 제품을 배포하는 모든 단계가 포함되어야 합니다. AWS Marketplace의 해당 컨테이너 이미지를 가리키는 명령 및 배포 리소스를 사용 지침에서 제공해야 합니다.

  • 컨테이너 기반 제품에는 구독자가 소프트웨어를 사용하는 데 필요한 모든 컨테이너 이미지가 포함되어야 합니다. 또한 컨테이너 기반 상품은 사용자가 외부에서 가져온 이미지 AWS Marketplace (예: 타사 저장소의 컨테이너 이미지) 를 사용하여 제품을 출시하도록 요구해서는 안 됩니다.

  • 컨테이너와 해당 소프트웨어는 셀프 서비스 방식으로 배포할 수 있어야 하며 추가 결제 방법이나 비용이 필요 없어야 합니다. 배포 시 외부 종속성이 필요한 애플리케이션은 다음 지침을 준수해야 합니다.

    • 요구 사항은 목록의 설명 또는 사용 지침에 명시되어야 합니다. 예: 이 제품을 올바르게 배포하려면 인터넷 연결이 필요합니다. 배포 시 <패키지 목록> 패키지가 다운로드됩니다.

    • 판매자는 모든 외부 종속성의 사용과 가용성 및 보안에 대한 책임이 있습니다.

    • 외부 종속성을 더 이상 사용할 수 없는 경우 제품도 제거해야 합니다. AWS Marketplace

    • 외부 종속성은 추가 결제 방법이나 비용이 필요 없어야 합니다.

  • 구매자가 직접 관리하지 않는 외부 리소스(예: 외부 API 또는 판매자나 타사가 관리하는 AWS 서비스 )에 지속적으로 연결해야 하는 컨테이너는 다음 지침을 준수해야 합니다.

    • 요구 사항은 목록의 설명 또는 사용 지침에 명시되어야 합니다. 예: 이 제품은 지속적인 인터넷 연결이 필요합니다. 정상적으로 작동하려면 <리소스 목록>과 같은 지속적인 외부 서비스가 필요합니다.

    • 판매자는 모든 외부 리소스의 사용과 가용성 및 보안에 대한 책임이 있습니다.

    • 외부 리소스를 더 이상 사용할 수 없는 경우 AWS Marketplace 제품도 제거해야 합니다.

    • 외부 리소스는 추가 결제 방법이나 비용이 필요 없어야 하며 연결 설정이 자동화되어야 합니다.

  • AWS Marketplace에서 사용할 수 없는 업셀 서비스, 추가 제품 또는 다른 클라우드 플랫폼으로 사용자를 유도하는 언어가 제품 소프트웨어 및 메타데이터에 포함되면 안 됩니다.

  • 제품이 다른 제품이나 다른 ISV 제품의 추가 기능인 경우 제품 설명에 해당 제품은 다른 제품의 기능을 확장한다는 내용과 다른 제품이 없으면 해당 제품의 유용성이 매우 제한된다는 내용을 명시해야 합니다. 예: 이 제품은 <제품 이름>의 기능을 확장하며, <제품 이름> 제품이 없으면 이 제품의 유용성이 매우 제한됩니다. 이 목록의 모든 기능을 사용하려면 <제품 이름>의 자체 라이선스가 필요할 수 있습니다.

아키텍처 요구 사항

모든 컨테이너 기반 제품은 다음과 같은 아키텍처 요구 사항을 준수해야 합니다.

  • 의 소스 컨테이너 이미지는 가 소유한 Amazon Elastic Container 레지스트리 (Amazon ECR) 리포지토리로 AWS Marketplace 푸시해야 합니다. AWS Marketplace컨테이너 제품 목록마다 AWS Marketplace Management Portal 의 서버 제품 아래에서 이러한 리포지토리를 생성할 수 있습니다.

  • 컨테이너 이미지는 Linux 기반이어야 합니다.

  • 유료 컨테이너 기반 제품은 Amazon ECS, Amazon EKS 또는 AWS Fargate에 배포할 수 있어야 합니다.

  • 계약 가격 책정 및 통합 기능이 포함된 유료 컨테이너 기반 제품은 Amazon EKS, Amazon ECS, Amazon AWS Fargate EKS Anywhere, Amazon ECS Anywhere, OpenShift Red Hat Service On (ROSA), 자체 관리형 쿠버네티스 클러스터 온프레미스 또는 Amazon Elastic Compute AWS Cloud에 AWS License Manager 배포해야 합니다.

컨테이너 제품 사용 지침

컨테이너 제품에 대한 사용 지침을 생성할 때에는 AMI및 컨테이너 제품 사용 지침의 단계와 지침을 따릅니다.

Amazon EKS 애드온 제품에 대한 요구 사항

Amazon EKS 애드온은 애플리케이션에 운영 기능을 제공하지만 Kubernetes 애플리케이션에만 국한되지 않는 소프트웨어입니다. 예를 들어 Amazon EKS 애드온에는 클러스터가 네트워킹, 컴퓨팅 및 스토리지의 기본 AWS 리소스와 상호 작용할 수 있도록 하는 옵저버빌리티 에이전트 또는 Kubernetes 드라이버가 포함되어 있습니다.

컨테이너 제품 판매자는 Amazon EKS를 비롯한 여러 배포 옵션 중에서 선택할 수 있습니다. Amazon EKS 애드온 AWS Marketplace 카탈로그에 제품 버전을 애드온으로 게시할 수 있습니다. 추가 기능은 Amazon EKS 콘솔에서 다른 공급업체에서 유지 관리하는 추가 기능 옆에 표시됩니다. AWS 구매자는 다른 애드온과 마찬가지로 손쉽게 소프트웨어를 애드온으로 배포할 수 있습니다.

자세한 내용을 알아보려면 Amazon EKS 사용 설명서의 Amazon EKS 추가 기능을 참조하세요.

컨테이너 제품을 AWS Marketplace 추가 기능으로 준비

컨테이너 제품을 AWS Marketplace 애드온으로 게시하려면 다음 요구 사항을 충족해야 합니다.

  • 컨테이너 제품은 에 AWS Marketplace게시되어야 합니다.

  • 컨테이너 제품은 AMD64 및 ARM64 아키텍처와 호환되도록 빌드되어야 합니다.

  • 컨테이너 제품은 기존 보유 라이선스 사용(BYOL) 요금 모델을 사용하면 안 됩니다.

    참고

    BYOL은 Amazon EKS 애드온 전송에 지원되지 않습니다.

  • 모든 컨테이너 이미지와 Helm 차트를 관리형 AWS Marketplace Amazon ECR 리포지토리로 푸시하는 것을 포함하여 모든 컨테이너 기반 제품 요구 사항을 준수해야 합니다. 이 요구 사항에는 오픈 소스 이미지 (예:) 도 포함됩니다. nginx 이미지와 차트는 Amazon ECR 퍼블릭 갤러리, Docker Hub 및 Quay를 포함한(이에 국한되지 않음) 다른 외부 리포지토리에 호스팅할 수 없습니다.

  • Helm차트 - 차트를 통해 배포할 소프트웨어를 준비하세요. Helm Amazon EKS 애드온 프레임워크는 Helm 차트를 매니페스트로 변환합니다. Amazon EKS 시스템에서는 일부 Helm 기능이 지원되지 않습니다. 다음 목록은 온보딩 전에 충족해야 하는 요구 사항을 설명합니다. 이 목록에서 모든 Helm 명령은 Helm 버전 3.8.1을 사용합니다.

    • 를 제외한 .APIVersions 모든 Capabilities 개체가 지원됩니다. .APIVersions non-built-in사용자 지정 Kubernetes API에는 지원되지 않습니다.

    • Release.NameRelease.Namespace 객체만 지원됩니다.

    • Helm후크와 lookup 함수는 지원되지 않습니다.

    • 모든 종속 차트는 기본 Helm 차트 (저장소 경로 파일://... 로 지정) 내에 있어야 합니다.

    • Helm차트는 오류 없이 Helm Lint와 Helm Template을 성공적으로 통과해야 합니다. 명령은 다음과 같습니다.

      • Helm린트 — helm lint helm-chart

        일반적인 문제로는 상위 차트의 메타데이터에 선언되지 않은 차트가 있습니다. 예제: chart metadata is missing these dependencies: chart-base Error: 1 chart(s) linted, 1 chart(s) failed

      • Helm템플릿 — helm template chart-name chart-location —set k8version=Kubernetes-version —kube-version Kubernetes-version —namespace addon-namespace —include-crds —no-hooks —f any-overriden-values

        오버라이드된 모든 구성을 플래그와 함께 전달하십시오. —f

    • AWS Marketplace Amazon ECR 리포지토리에 모든 컨테이너 바이너리를 저장합니다. 매니페스트를 생성하려면 앞서 표시된 Helm 템플릿 명령을 사용합니다. 매니페스트에서 busybox 또는 gcr 이미지와 같은 외부 이미지 참조를 검색하십시오. 요청 드롭다운에서 리포지토리 추가 옵션을 사용하여 생성한 AWS Marketplace Amazon ECR 리포지토리에 모든 컨테이너 이미지를 종속성과 함께 업로드합니다.

  • 사용자 지정 구성 — 배포 중에 사용자 지정 변수를 추가할 수 있습니다. 최종 사용자 환경을 식별하고, 소프트웨어 aws_mp_configuration_schema.json 이름을 지정하고, Helm 차트와 함께 포장하는 방법에 대한 자세한 내용은 Amazon EKS 애드온: 고급 구성을 참조하십시오.

    “$schema” 키워드에 따르면 유효한 리소스를 가리키는 $schema URI여야 합니다. application/schema+json

    이 파일은 암호, 라이선스 키, 인증서와 같은 민감한 정보를 받아들여서는 안 됩니다.

    암호 및 인증서 설치를 처리하기 위해 최종 사용자에게 사후 또는 사전 추가 기능 설치 단계를 제공할 수 있습니다. 제품은 외부 라이선스를 사용해서는 안 됩니다. 제품은 AWS Marketplace 권한에 따라 작동해야 합니다.

    제한에 대한 자세한 내용은 을 aws_mp_configuration_schema.json 참조하십시오. 애드온 공급자를 위한 애드온 구성 요구 사항 및 모범 사례

  • 소프트웨어를 배포할 네임스페이스 식별 및 생성 - 제품의 첫 번째 릴리스에서는 템플릿화된 네임스페이스를 추가하여 소프트웨어를 배포할 네임스페이스를 식별해야 합니다.

  • 해당하는 serviceAccount 경우 생성 - 소프트웨어가 유료 소프트웨어이거나 다른 AWS 서비스소프트웨어와 연결되어야 하는 경우 AWS Marketplace 차트가 기본적으로 생성되는지 확인하십시오. Helm serviceAccount values.yaml파일의 매개변수로 serviceAccount 생성을 처리하는 경우 매개변수 값을 로 설정하십시오true. 예를 들어 serviceAccount.create = true입니다. 이는 필요한 권한이 이미 있는 기본 노드 인스턴스의 권한을 고객이 상속하여 애드온을 설치하도록 선택할 수 있기 때문에 필요합니다. Helm 차트에서 를 생성하지 않으면 권한을 에 연결할 수 없습니다. serviceAccount serviceAccount

  • 추적 가능한 배포 또는 데몬셋 — 헬름 차트에 데몬셋 또는 디플로이먼트가 있는지 확인하세요. Amazon EKS 애드온 프레임워크는 이를 사용하는 Amazon EKS 리소스의 배포를 추적합니다. 추적 가능한 배포 또는 데몬셋이 없으면 애드온에 배포 오류가 발생합니다. 애드온에 배포 또는 데몬셋이 없는 경우, 예를 들어 애드온이 추적이 불가능한 많은 사용자 지정 리소스 또는 Kubernetes 작업을 배포하는 경우 더미 배포 또는 데몬셋 객체를 추가하세요.

  • AMD 및 ARM 아키텍처 지원 — 현재 많은 아마존 EKS 고객이 ARM64 을 사용하여 AWS 그라비톤 인스턴스를 사용하고 있습니다. 타사 소프트웨어는 두 아키텍처를 모두 지원해야 합니다.

  • 라이선싱 또는 미터링 API와 통합 AWS Marketplace — 여러 청구 모델을 AWS Marketplace 지원합니다. 자세한 정보는 컨테이너 제품 결제, 측정 및 라이선스 통합을 참조하세요. PAYG 메커니즘을 통해 제품을 판매하려면 을 참조하십시오. AWSMarketplace 미터링 서비스를 통한 컨테이너 제품에 대한 사용자 지정 계량 선결제 또는 계약 모델을 통해 제품을 판매하려는 경우 을 참조하십시오. 다음과 같은 컨테이너 제품의 계약 가격 AWS License Manager

  • 소프트웨어와 모든 아티팩트 및 종속성 업로드 — 헬름 차트는 독립적이어야 하며 외부 소스의 종속성 (예:) 이 필요하지 않아야 합니다. GitHub 소프트웨어에 외부 종속성이 필요한 경우 종속성을 동일한 목록에 있는 프라이빗 AWS Marketplace Amazon ECR 리포지토리로 푸시해야 합니다. AWS Marketplace

  • 웹 사이트에 배포 지침 제공 — create-addon 명령을 통해 소프트웨어를 배포하는 방법을 고객이 식별할 수 있도록 배포 안내서를 호스팅해 주시기 바랍니다.

  • IAM 역할 — 소프트웨어가 작동하거나 다른 소프트웨어와 연결하는 데 필요한 모든 AWS Identity and Access Management (IAM) 정책을 나열합니다. AWS 서비스

  • 버전 업데이트 — Amazon EKS는 업스트림 릴리스 이후 몇 주 후에 새로운 Kubernetes 버전을 출시합니다. 새 Amazon EKS 클러스터 버전이 정식 출시되면 공급업체는 45일 이내에 새 Amazon EKS 클러스터 버전 릴리스와 호환되도록 소프트웨어를 인증하거나 업데이트해야 합니다. 현재 버전의 애드온이 새 Kubernetes 버전을 지원하는 경우 버전 호환성 매트릭스를 업데이트할 수 있도록 동일한 버전을 검증하고 인증하십시오. 새 Kubernetes 버전 릴리스를 지원하기 위해 새 애드온 버전이 필요한 경우 온보딩을 위해 새 버전을 제출하십시오.

  • 파트너의 소프트웨어는 다음 유형 중 하나에 속하거나 Kubernetes 또는 Amazon EKS를 향상시키는 운영 소프트웨어여야 합니다. Gitops | 모니터링 | 로깅 | 인증서 관리 | 정책 관리 | 비용 관리 | 오토스케일링 | 스토리지 | 쿠버네티스 관리 | 서비스 메시 | etcd-backup | | 로드 밸런서 | 로컬 레지스트리| 네트워킹 | 보안 | 백업 | 인그레스 컨트롤러 | 옵저버빌리티 | 옵저버빌리티 ingress-service-type

  • 소프트웨어는 컨테이너 네트워크 인터페이스 (CNI) 일 수 없습니다.

  • 소프트웨어는 유료 제품용 라이선싱 AWS Marketplace 및 미터링 API를 통해 판매되고 이와 통합되어야 합니다. BYOL 제품은 허용되지 않습니다.

애드온 공급자를 위한 애드온 구성 요구 사항 및 모범 사례

Amazon EKS를 사용하려면 애드온 공급자의 Helm JSON 스키마 문자열로 구성해야 합니다. 필수 구성이 필요하거나 선택적 구성을 허용하는 애드온에는 Helm 차트가 aws_mp_configuration_schema.json 제출된 파일이 포함되어야 합니다. AWS Marketplace Amazon EKS는 이 스키마를 사용하여 고객의 구성 입력을 검증하고 스키마에 맞지 않는 입력 값이 있는 API 호출을 거부합니다. 애드온 구성은 일반적으로 두 가지 범주에 속합니다.

  • 레이블, 톨러레이션, 노드 셀렉터 등과 같은 일반적인 쿠버네티스 속성에 대한 구성

  • 라이선스 키, 기능 활성화, URL 등과 같은 애드온별 구성

이 섹션에서는 일반적인 Kubernetes 속성과 관련된 첫 번째 범주에 초점을 맞춥니다.

Amazon EKS는 Amazon EKS 애드온 구성과 관련된 모범 사례를 따를 것을 권장합니다.

스키마 요구 사항

json 스키마를 정의할 때는 Amazon EKS 애드온이 지원하는 jsonschema 버전을 사용해야 합니다.

지원되는 스키마 목록:

  • https://json-schema.org/draft-04/schema

  • https://json-schema.org/draft-06/schema

  • https://json-schema.org/draft-07/schema

  • https://json-schema.org/draft/2019-09/schema

다른 json 스키마 버전을 사용하는 것은 Amazon EKS 애드온과 호환되지 않으므로 이 문제가 해결될 때까지 애드온을 릴리스할 수 없습니다.

예제: Helm 스키마 파일

{ "$schema": "http://json-schema.org/schema#", "type": "object", "properties": { "podAnnotations": { "description": "Pod Annotations" "type": "object" }, "podLabels": { "description": "Pod Labels" "type": "string" }, "resources": { "type": "object" "description": "Resources" }, "logLevel": { "description": "Logging Level" "type": "string", "enum": [ "info", "debug" ] }, "config": { "description": "Custom Configuration" "type": "object" } } }
camelCase

구성 매개변수는 CamelCase여야 하며 이 형식을 준수하지 않으면 거부됩니다.

설명이 필요합니다.

스키마 속성에 대한 의미 있는 설명을 항상 포함하세요. 이 설명은 Amazon EKS 콘솔에서 각 구성 파라미터의 레이블 이름을 렌더링하는 데 사용됩니다.

RBAC 정의

애드온 제공자는 최소 권한 원칙에 따라 애드온을 성공적으로 설치하는 데 필요한 RBAC 권한을 정의하고 제공해야 합니다. 새 버전의 애드온에 대해 RBAC 권한을 변경해야 하거나 CVE를 해결하기 위한 수정 사항이 있는 경우 애드온 공급자는 Amazon EKS 팀에 이 변경 사항을 알려야 합니다. 각 Kubernetes 리소스에 필요한 권한은 해당 객체의 리소스 이름으로 제한해야 합니다.

apiGroups: ["apps"] resources: ["daemonsets"] resourceNames: ["ebs-csi-node"] verbs: ["create", "delete", "get", "list", "patch", "update", "watch"]
시크릿 관리

이 섹션은 고객이 애플리케이션 키, API 키, 비밀번호 등과 같은 비밀 정보를 구성해야 하는 애드온에만 적용됩니다. 현재 Amazon EKS API는 보안상의 문제로 인해 비밀 정보를 일반 텍스트로 전달하는 것을 지원하지 않습니다. 하지만 고객은 구성을 사용하여 애드온에 필요한 키가 들어 있는 Kubernetes Secret의 이름을 전달할 수 있습니다. 고객은 사전 요구 사항 단계에 따라 동일한 네임스페이스의 키가 포함된 Kubernetes Secret 오브젝트를 생성한 다음 애드온을 생성할 때 구성 blob을 사용하여 시크릿 이름을 전달해야 합니다. 고객이 실수로 실제 키로 착각하지 않도록 애드온 공급자가 스키마 속성에 이름을 지정하는 것이 좋습니다. 예: appSecretName, connectionSecretName 등

요약하면 애드온 제공업체는 스키마를 활용하여 고객이 암호의 이름을 전달하도록 허용할 수 있지만 실제로 암호 자체를 보유할 키는 전달하지 못하도록 할 수 있습니다.

구성 값 예시

고객이 애드온을 구성하는 데 도움이 되도록 스키마에 구성 예제를 포함할 수 있습니다. 다음 예는 애드온용 AWS OpenTelemetry 배포판의 스키마에서 가져온 것입니다.

"examples": [ { "admissionWebhooks": { "namespaceSelector": {}, "objectSelector": {} }, "affinity": {}, "collector": { "amp": { "enabled": true, "remoteWriteEndpoint": "https://aps-workspaces.us-west-2.amazonaws.com/workspaces/ws-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/api/v1/remote_write" }, "cloudwatch": { "enabled": true }, "mode": "deployment", "replicas": 1, "resources": { "limits": { "cpu": "256m", "memory": "512Mi" }, "requests": { "cpu": "64m", "memory": "128Mi" } }, "serviceAccount": { "annotations": {}, "create": true, "name": "adot-collector" }, "xray": { "enabled": true } }, "kubeRBACProxy": { "enabled": true, "resources": { "limits": { "cpu": "500m", "memory": "128Mi" }, "requests": { "cpu": "5m", "memory": "64Mi" } } }, "manager": { "env": {}, "resources": { "limits": { "cpu": "100m", "memory": "128Mi" }, "requests": { "cpu": "100m", "memory": "64Mi" } } }, "nodeSelector": {}, "replicaCount": 1, "tolerations": [] } ]

구성에 허용되는 공통 매개 변수

다음은 고객용 헬름 스키마 파일의 권장 매개변수입니다.

파라미터 설명 기본값이 있어야 할까요?
추가 라벨 애드온으로 관리되는 모든 쿠버네티스 오브젝트에 쿠버네티스 라벨을 추가합니다. 아니요
추가 주석 애드온으로 관리되는 모든 쿠버네티스 오브젝트에 쿠버네티스 어노테이션을 추가합니다. 아니요
PodLabels 애드온으로 관리되는 파드에 쿠버네티스 라벨을 추가합니다. 아니요
POD 주석 애드온으로 관리되는 파드에 쿠버네티스 어노테이션을 추가합니다. 아니요
logLevel 애드온으로 관리되는 구성 요소의 로그 수준.
노드 셀렉터 가장 간단한 권장 형태의 노드 선택 제약. NodeSelector 필드를 파드 스펙에 추가하고 대상 노드에 포함할 노드 레이블을 지정할 수 있다. 예를 들어 Linux 노드만 해당될 수 있습니다.
허용 오차 톨러레이션은 포드에 적용됩니다. 톨러레이션을 통해 스케줄러는 일치하는 테인트가 있는 파드를 스케줄링할 수 있다. 톨러레이션은 스케줄링을 허용하지만 스케줄링을 보장하지는 않습니다. 아마도 데몬셋이 더 일반적일 수도 있습니다.
유연 어피니티 기능은 두 가지 유형의 어피니티로 구성되어 있습니다. NodeSelector 필드와 같은 노드 어피니티 함수이지만 표현력이 뛰어나고 소프트 룰을 지정할 수 있고, 파드 간 어피니티/안티어피니티를 사용하면 파드를 다른 파드의 레이블에 제한할 수 있습니다. 가능
토폴로지 SpreadConstraints 토폴로지 분산 제약 조건을 사용하여 지역, 영역, 노드 및 기타 사용자 정의 토폴로지 도메인과 같은 장애 도메인 간에 파드가 클러스터 전체에 분산되는 방식을 제어할 수 있습니다. 이는 고가용성과 효율적인 리소스 활용을 달성하는 데 도움이 될 수 있습니다. 가능
리소스 요청/제한 각 컨테이너에 필요한 CPU/메모리 양을 지정합니다. 요청을 설정하는 것이 좋습니다. 한도는 선택사항입니다.
복제본 애드온이 관리하는 파드의 레플리카 수 데몬셋에는 적용되지 않습니다.
참고

워크로드 스케줄링 구성 매개변수의 경우 필요한 경우 스키마에서 최상위 구성 요소를 분리해야 할 수 있습니다. 예를 들어 Amazon EBS CSI 드라이버에는 컨트롤러와 노드 에이전트라는 두 가지 주요 구성 요소가 포함되어 있습니다. 고객은 각 구성 요소에 대해 서로 다른 노드 선택기/허용 범위를 필요로 합니다.

참고

JSON 스키마에 정의된 기본값은 순전히 사용자 설명서용이며 파일에 올바른 기본값을 포함해야 할 필요성을 대체하지는 않습니다. values.yaml 기본 속성을 사용하는 경우, Helm 차트가 변경될 때마다 스키마의 기본값과 values.yaml 일치하고 두 아티팩트 (values.schema.jsonvalues.yaml) 가 동기화된 상태로 유지되는지 확인하십시오.

"affinity": { "default": { "affinity": { "nodeAffinity": { "preferredDuringSchedulingIgnoredDuringExecution": [ { "preference": { "matchExpressions": [ { "key": "eks.amazonaws.com/compute-type", "operator": "NotIn", "values": [ "fargate" ] } ] }, "weight": 1 } ] }, "podAntiAffinity": { "preferredDuringSchedulingIgnoredDuringExecution": [ { "podAffinityTerm": { "labelSelector": { "matchExpressions": [ { "key": "app", "operator": "In", "values": [ "ebs-csi-controller" ] } ] }, "topologyKey": "kubernetes.io/hostname" }, "weight": 100 } ] } } }, "description": "Affinity of the controller pod", "type": [ "object", "null" ] }

구성이 허용되지 않는 공통 파라미터

다양한 애드온 (예clusterName: Elastic Load Balancing Controller) 에는,, 및 기타 클러스터 메타데이터 매개변수가 필요할 수 있습니다. region vpcId accountId Amazon EKS 서비스에서 알려진 이와 유사한 파라미터는 Amazon EKS 애드온에 의해 자동으로 삽입되며, 사용자가 구성 옵션으로 지정할 책임은 없습니다. 이러한 파라미터는 다음과 같습니다.

  • AWS 지역

  • 아마존 EKS 클러스터 이름

  • 클러스터의 VPC ID

  • 네트워킹 애드온에 사용되는 특히 build-prod 계정용 컨테이너 레지스트리

  • DNS 클러스터 IP, 특히 코어DNS 애드온용

  • 아마존 EKS 클러스터 API 엔드포인트

  • 클러스터에서 IPv4를 사용할 수 있습니다.

  • 클러스터에서 IPv6이 활성화됨

  • 클러스터에서 IPv6의 접두사 위임이 활성화되었습니다.

애드온 공급자는 해당 매개변수에 대해 템플릿을 정의했는지 확인해야 합니다. 위의 각 파라미터에는 Amazon EKS에서 정의한 사전 정의된 parameterType 속성이 있습니다. 릴리스 메타데이터는 템플릿에 있는 파라미터의 parameterType 이름/경로와 간의 매핑을 지정합니다. 이렇게 하면 고객이 구성을 통해 값을 지정하지 않아도 Amazon EKS에서 값을 동적으로 전달할 수 있으며 애드온 공급자가 자체 템플릿 이름/경로를 유연하게 정의할 수 있습니다. Amazon EKS가 동적으로 삽입해야 하는 위와 같은 파라미터는 스키마 파일에서 제외해야 합니다.

릴리스 메타데이터의 매핑 예시

"defaultConfiguration": [ { "key": "image.containerRegistry", "parameterType": "CONTAINER_REGISTRY" } ]

다음은 고객용 헬름 스키마 파일에서 구성하지 않는 것이 권장되는 매개변수입니다. 매개변수는 수정할 수 없는 기본값을 갖거나 애드온 템플릿에 전혀 포함되지 않아야 합니다.

파라미터 설명 기본값이 있어야 할까요?
image 쿠버네티스 클러스터에 배포될 컨테이너 이미지. 아니요, 애드온 정의를 통해 관리
이미지 PullSecrets 시크릿을 사용하여 프라이빗 레지스트리에서 가져오도록 포드 구성 N/A
라이브니스 프로브 Kubelet 프로세스는 활성 프로브를 사용하여 컨테이너를 재시작해야 하는 시점을 파악합니다. 예를 들어, 애플리케이션이 실행 중이지만 진행할 수 없는 경우, 활성 상태 프로브가 교착 상태를 포착할 수 있습니다. 이러한 상태에서 컨테이너를 다시 시작하면 버그가 있더라도 애플리케이션의 가용성을 높이는 데 도움이 될 수 있습니다.
ReadinessProbe 컨테이너에 대한 준비 상태 프로브를 갖추는 것이 중요합니다. 이렇게 하면 데이터 플레인에서 실행 중인 Kubelet 프로세스가 컨테이너가 트래픽을 처리할 준비가 된 시점을 알 수 있습니다. 파드의 컨테이너가 모두 준비되면 파드가 준비된 것으로 간주된다. 이 신호의 한 가지 용도는 서비스의 백엔드로 사용되는 파드를 제어하는 것이다. 파드가 준비되지 않으면 서비스 로드 밸런서에서 제거된다.
스타트업 프로브 kubelet은 스타트업 프로브를 사용하여 컨테이너 애플리케이션이 언제 시작되었는지 파악한다. 이러한 프로브가 구성되면 성공할 때까지 활성 및 준비 상태 검사를 비활성화하여 해당 프로브가 애플리케이션 시작을 방해하지 않도록 합니다. 이렇게 하면 느리게 시작되는 컨테이너에 활성 검사를 적용하여 시작 및 실행 전에 kubelet에 의해 종료되는 것을 방지할 수 있습니다. 선택 사항
포드 DisruptionBudget 파드 디스럽션 버짓 (PDB) 을 정의하여 자발적 중단 시에도 최소 수의 POD가 계속 실행되도록 하십시오. PDB는 자발적 중단으로 인해 동시에 다운되는 복제된 애플리케이션의 포드 수를 제한합니다. 예를 들어 쿼럼 기반 응용 프로그램에서는 실행 중인 복제본 수가 쿼럼에 필요한 수 이하로 떨어지지 않도록 하려고 합니다. 웹 프런트 엔드는 부하를 처리하는 복제본의 수가 전체의 특정 비율 이하로 떨어지지 않도록 해야 할 수 있습니다. 예. 기본적으로 복제본이 두 개 이상인 경우
서비스 계정 (이름) 포드가 실행될 서비스 어카운트의 이름.
서비스 어카운트 (주석) 서비스 계정에 적용된 주석. 일반적으로 서비스 계정용 IAM 역할 기능에 사용됩니다. 아니요. IAM 서비스 계정 역할 ARN은 최상위 Amazon EKS 애드온 API에서 설정됩니다. 이 규칙의 예외는 애드온에 여러 배포/컨트롤러 (예: Flux) 가 있고 별도의 IRSA 역할 ARN이 필요한 경우입니다.
우선순위 ClassName 우선순위는 다른 파드에 비해 파드의 중요도를 나타냅니다. 파드를 스케줄링할 수 없는 경우, 스케줄러는 우선 순위가 낮은 파드를 선점 (제거) 하여 보류 중인 파드의 스케줄링을 가능하게 한다. 예. 대부분의 애드온은 클러스터 기능에 매우 중요하며, 기본적으로 우선순위 클래스가 설정되어 있어야 합니다.
포드 SecurityContext 보안 컨텍스트는 파드 또는 컨테이너의 권한 및 액세스 제어 설정을 정의합니다. 일반적으로 fsGroup을 설정하는 데 사용됩니다. FSGroup은 v1.19 이하 클러스터의 IRSA에 필요했습니다. Amazon EKS가 더 이상 쿠버네티스 v1.19를 지원하지 않는다는 점을 감안하면 가능성은 희박합니다.
보안 컨텍스트 보안 컨텍스트는 파드 또는 컨테이너의 권한 및 액세스 제어 설정을 정의합니다.
업데이트 전략 기존 파드를 새 파드로 교체하는 데 사용되는 전략을 지정합니다.
네임 오버라이드 포드 이름을 오버라이드합니다. 아니요
포드 SecurityPolicy

파라미터에 제한을 적용합니다.

아니요. PSP는 더 이상 사용되지 않습니다.
VolumeMounts추가/추가 볼륨

Amazon EKS가 아닌 클러스터의 IRSA에 사용됩니다.

아니요