Kf 종속 항목 및 아키텍처

Kf가 작동하려면 Kubernetes 및 기타 OSS 프로젝트가 필요합니다. 일부 종속 항목은 Google 관리형 서비스로 충족됩니다. 예를 들어 Google Kubernetes Engine(GKE)은 Kubernetes를 제공합니다.

종속 항목

Kf 구성요소

Kf는 몇 가지 고유 Kubernetes 커스텀 리소스컨트롤러를 설치합니다. 커스텀 리소스는 실제로 Kf API로 제공되며, 시스템과 상호작용하기 위해 kf CLI에서 사용됩니다. 컨트롤러는 Kf의 CRD를 사용하여 시스템의 다른 구성요소를 조정합니다.

Kf CRD

다음 명령어를 사용하여 Kf에서 설치되어 사용되는 CRD를 볼 수 있습니다.

kubectl api-resources --api-group=kf.dev

이 명령어의 출력은 다음과 같습니다.

NAME                      SHORTNAMES   APIGROUP   NAMESPACED   KIND
apps                                   kf.dev     true         App
builds                                 kf.dev     true         Build
clusterservicebrokers                  kf.dev     false        ClusterServiceBroker
routes                                 kf.dev     true         Route
servicebrokers                         kf.dev     true         ServiceBroker
serviceinstancebindings                kf.dev     true         ServiceInstanceBinding
serviceinstances                       kf.dev     true         ServiceInstance
spaces                                 kf.dev     false        Space

앱은 Kubernetes에 배포된 12팩터 애플리케이션을 나타냅니다. 소스 코드, 구성, 애플리케이션의 현재 상태를 포함합니다. 앱은 조정을 담당합니다.

  • Kf Builds
  • Kf Routes
  • Kubernetes 배포
  • Kubernetes 서비스
  • Kubernetes ServiceAccounts
  • Kubernetes 보안 비밀

Kf 또는 kubectl를 사용하여 앱을 나열할 수 있습니다.

kf apps
kubectl get apps -n space-name

빌드

빌드는 앱의 소스 코드와 빌드 구성을 결합합니다. 이 빌드 시스템은 Buildpack V2, 빌드팩 V3 또는 Dockerfile 빌드를 실행하기 위한 올바른 단계에 따라 Tekton TaskRun을 프로비저닝합니다.

Kf 또는 kubectl을 사용하여 빌드를 나열할 수 있습니다.

kf builds
kubectl get builds -n space-name

ClusterServiceBrokers

ClusterServiceBroker는 Kf를 서비스 브로커로 확장하는 데 필요한 연결 정보를 보유합니다. 브로커가 제공하는 서비스의 카탈로그를 가져와서 kf marketplace의 출력에 표시하는 역할을 합니다.

kubectl을 사용하여 ClusterServiceBroker를 나열할 수 있습니다.

kubectl get clusterservicebrokers

경로

경로는 HTTP 라우팅 규칙이 포함된 상위 구조입니다. Istio VirtualServices를 재구성해야 합니다.

Kf 또는 kubectl을 사용하여 경로를 나열할 수 있습니다.

kf routes
kubectl get routes -n space-name

ServiceBrokers

ServiceBroker는 Kf를 서비스 브로커로 확장하는 데 필요한 연결 정보를 보유합니다. 브로커가 제공하는 서비스의 카탈로그를 가져와서 kf marketplace의 출력에 표시하는 역할을 합니다.

kubectl을 사용하여 ServiceBroker를 나열할 수 있습니다.

kubectl get servicebrokers -n space-name

ServiceInstanceBinding

ServiceInstanceBinding은 브로커가 바인딩을 위해 반환한 서비스 브로커와 사용자 인증 정보에 대한 바인딩을 만드는 매개변수를 포함합니다. 브로커에서 bind API를 호출하여 서비스를 바인딩해야 합니다.

Kf 또는 kubectl을 사용하여 ServiceInstanceBinding을 나열할 수 있습니다.

kf bindings
kubectl get serviceinstancebindings -n space-name

ServiceInstance

ServiceInstance에는 서비스 브로커에 서비스를 만들기 위한 매개변수가 포함됩니다. 서비스를 만들기 위해 브로커에서 provision API를 호출합니다.

Kf 또는 kubectl을 사용하여 ServiceInstances를 나열할 수 있습니다.

kf services
kubectl get serviceinstances -n space-name

Spaces

Spaces에는 Cloud Foundry 조직 및 Spaces와 유사한 구성 정보가 보관됩니다. Spaces는 다음 역할을 담당합니다.

  • 다른 Kf 리소스가 프로비저닝되는 Kubernetes 네임스페이스를 만듭니다.
  • Kubernetes NetworkPolicy를 만들어 네트워크 연결 정책을 적용합니다.
  • 빌드, 앱, 경로에 대한 구성 및 정책을 포함합니다.

Kf 또는 kubectl을 사용하여 Spaces를 나열할 수 있습니다.

kf spaces
kubectl get spaces

서비스 계정

Kf에 서비스 계정을 가지려면 실행 중인 Kubernetes 클러스터가 필요합니다. 서비스 계정은 Tekton에서 이미지를 pull 및 push하기 위해 Container Registry에 인증하는 데 사용됩니다. CloudBuild 템플릿으로 Kf를 설치하는 경우, roles/storage.admin 권한이 있는 Identity and Access Management 서비스 계정을 만듭니다.

제3자 라이브러리

제3자 라이브러리 소스 코드 및 라이선스는 Kf 컨테이너 이미지의 /third_party 디렉터리에서 찾을 수 있습니다.

kf third-party-licenses를 실행하면 다운로드한 Kf CLI 버전의 타사 라이선스를 볼 수도 있습니다.