클러스터 구성

Kf는 kf 네임스페이스에 config-defaults라는 Kubernetes configmap을 사용하여 클러스터 전체 범위의 구성 설정을 저장합니다. 이 문서에서는 구조와 필드에 대해 설명합니다.

config-defaults configmap의 구조

configmap는 .data 필드에 세 가지 유형의 키-값 쌍이 포함되어 있습니다.

  • _ 프리픽스가 있는 댓글 키에는 예시, 메모, 경고가 포함됩니다.
  • 문자열 키에는 일반 텍스트 값이 포함됩니다.
  • 객체 키에는 문자열로 인코딩된 JSON 또는 YAML 값이 포함됩니다.

예:

_note: "This is some note"
stringKey: "This is a string key that's not encoded as JSON or YAML."
objectKey: |
  - "These keys contain nested YAML or JSON."
  - true
  - 123.45

예시 섹션:

_example 키의 예시 섹션에는 다른 필드 및 예시에 대한 설명이 포함됩니다. 이 섹션의 변경사항은 적용되지 않습니다.

공간 컨테이너 레지스트리

spaceContainerRegistry 속성은 각 공간에서 빌드된 이미지를 저장하는 데 사용하는 기본 컨테이너 레지스트리를 지정하는 일반 텍스트 값입니다.

예:

spaceContainerRegistry: gcr.io/my-project

공간 클러스터 도메인

spaceClusterDomains 속성은 도메인 객체의 문자열 인코딩 YAML 배열입니다.

클러스터의 각 공간은 개발자가 앱을 바인딩할 수 있는 도메인 목록에 배열의 모든 항목을 추가합니다.

필드
domain

string

사용할 수 있는 도메인 이름입니다. 다음 대체 항목 중 하나가 포함될 수 있습니다.

  • $(SPACE_NAME) - 각 공간에서 공간의 이름으로 대체됩니다.
  • $(CLUSTER_INGRESS_IP) - 클러스터 인그레스 게이트웨이의 IP 주소입니다.
gatewayName

string

(선택사항)

Istio 게이트웨이 경로가 결합됩니다. 기본값은 kf/external-gateway이지만 kf 네임스페이스의 다른 게이트웨이가 사용될 수 있습니다.

예:

spaceClusterDomains: |
  # Support canonical and vanity domains
  - domain: $(SPACE_NAME).prod.example.com
  - domain: $(SPACE_NAME).kf.us-east1.prod.example.com

  # Using a dynamic DNS resolver
  - domain: $(SPACE_NAME).$(CLUSTER_INGRESS_IP).nip.io

  # Creating an internal domain only visible within the cluster
  - domain: $(SPACE_NAME)-apps.internal
    gatewayName: kf/internal-gateway

Buildpacks V2 수명 주기 빌더

buildpacksV2LifecycleBuilder 속성에는 buildpack v2 빌드를 실행하는 데 사용되는 Cloud Foundry builder 바이너리 버전이 포함됩니다.

값은 Git 참조입니다. 특정 버전을 사용하려면 끝에 @ 기호와 Git SHA를 추가합니다.

예:

buildpacksV2LifecycleBuilder: "code.cloudfoundry.org/buildpackapplifecycle/builder@GIT_SHA"

Buildpacks V2 수명 주기 런처

buildpacksV2LifecycleLauncher 속성에는 모든 buildpack V2 애플리케이션에 빌드된 Cloud Foundry launcher 바이너리 버전이 포함됩니다.

값은 Git 참조입니다. 특정 버전을 사용하려면 끝에 @ 기호와 Git SHA를 추가합니다.

예:

buildpacksV2LifecycleLauncher: "code.cloudfoundry.org/buildpackapplifecycle/launcher@GIT_SHA"

Buildpacks V2 목록

spaceBuildpacksV2 속성은 V2 buildpacks 프로세스와 호환되는 애플리케이션의 빌드에 사용되는, 순서가 지정된 기본 buildpack 목록이 포함된 문자열 인코딩 YAML 배열입니다.

필드
name

string

개발자가 애플리케이션 매니페스트에서 빌드팩을 참조하는 데 사용할 수 있는 짧은 이름입니다.

url

string

빌드팩을 가져오는 데 사용되는 URL입니다.

disabled

boolean

이 빌드팩이 실행되지 않도록 방지하는 데 사용됩니다.

Stacks V2 목록

spaceBuildpacksV2 속성은 Cloud Foundry 호환 빌드와 함께 사용할 수 있는 정렬된 스택 목록을 포함한 문자열 인코딩 YAML 배열입니다.

필드
name

string

개발자가 애플리케이션 매니페스트에서 스택을 참조하는 데 사용할 수 있는 짧은 이름입니다.

image

string

스택으로 사용할 컨테이너 이미지의 URL입니다. 자세한 내용은 https://kubernetes.io/docs/concepts/containers/images를 참조하세요.

Stacks V3 목록

spaceStacksV3 속성은 Cloud Native Buildpack 빌드에 사용할 수 있는 순서가 지정된 스택 목록이 포함된 문자열 인코딩 YAML 배열입니다.

필드
name

string

개발자가 애플리케이션 매니페스트에서 스택을 참조하는 데 사용할 수 있는 짧은 이름입니다.

description

string

kf stacks 실행 시 표시되는 스택에 대한 간단한 설명입니다.

buildImage

string

빌더로 사용할 컨테이너 이미지의 URL입니다. 자세한 내용은 https://kubernetes.io/docs/concepts/containers/images를 참조하세요.

runImage

string

빌드된 모든 앱의 기반으로 사용할 컨테이너 이미지의 URL입니다. 자세한 내용은 https://kubernetes.io/docs/concepts/containers/images를 참조하세요.

nodeSelector

map (key: string, value: string)

(선택사항)

이 스택으로 빌드된 애플리케이션을 실행할 수 있는 노드를 나타내는 데 사용되는 NodeSelector입니다.

예:

spaceStacksV3: |
  - name: heroku-18
    description: The official Heroku stack based on Ubuntu 18.04
    buildImage: heroku/pack:18-build
    runImage: heroku/pack:18
    nodeSelector:
       kubernetes.io/os: windows

V3 Stack 기본값

spaceDefaultToV3Stack 속성에는 사용자가 값을 지정하지 않은 경우 공간이 V3 스택을 사용해야 하는지 여부를 나타내는 따옴표 값 true 또는 false가 포함되어 있습니다.

기능 플래그

featureFlags 속성에는 Kf의 기능을 사용 설정 및 중지할 수 있는 기능 플래그의 문자열 인코딩 YAML 맵이 포함됩니다.

Kf에서 지원하지 않는 플래그 이름은 무시됩니다.

플래그 이름 기본값 목적
disable_custom_builds false 임의의 Tekton 빌드 파이프라인에 대한 개발자 액세스를 사용 중지합니다.
enable_dockerfile_builds true 개발자가 Dockerfile에서 소스 코드를 빌드할 수 있습니다.
enable_custom_buildpacks true 개발자가 애플리케이션에 외부 빌드팩을 지정할 수 있습니다.
enable_custom_stacks true 개발자가 애플리케이션에 커스텀 스택을 지정할 수 있습니다.

예:

featureFlags: |
  disable_custom_builds: false
  enable_dockerfile_builds: true
  enable_some_feature: true