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 にデプロイされた Twelve-Factor アプリケーションです。これには、ソースコード、構成、アプリケーションの現在の状態が含まれます。アプリは、次のものを調整します。
- Kf Builds
- Kf Routes
- Kubernetes Deployment
- Kubernetes Services
- Kubernetes ServiceAccounts
- Kubernetes Secret
アプリの一覧を表示するには、Kf または kubectl を使用します。
kf appskubectl get apps -n space-name
ビルド
ビルドは、アプリのソースコードとビルド構成を結合します。Buildpack V2、Buildpack V3、Dockerfile のビルドを有効にする正しい手順で Tekton TaskRun をプロビジョニングします。
ビルドの一覧を表示するには、Kf または kubectl を使用します。
kf buildskubectl get builds -n space-name
ClusterServiceBrokers
ClusterServiceBrokers は、Kf をサービス ブローカーで拡張するために必要な接続情報を保持します。ブローカーで提供されるサービスのカタログを取得し、kf marketplace の出力で表示します。
ClusterServiceBrokers の一覧を表示するには、kubectl を使用します。
kubectl get clusterservicebrokersルート
ルートは、HTTP ルーティング ルールを含む高レベルの構造です。Istio VirtualServices の調整を行います。
ルートの一覧を表示するには、Kf または kubectl を使用します。
kf routeskubectl get routes -n space-name
ServiceBrokers
ServiceBrokers は、Kf をサービス ブローカーで拡張するために必要な接続情報を保持します。ブローカーで提供されるサービスのカタログを取得し、kf marketplace の出力で表示します。
ServiceBrokers の一覧を表示するには、kubectl を使用します。
kubectl get servicebrokers -n space-nameServiceInstanceBinding
ServiceInstanceBinding は、サービス ブローカーのバインディングを作成するパラメータと、バインディングでブローカーから返される認証情報を保持します。ブローカーの bind API を呼び出して、サービスをバインドします。
ServiceInstanceBinding の一覧を表示するには、Kf または kubectl を使用します。
kf bindingskubectl get serviceinstancebindings -n space-name
ServiceInstance
ServiceInstance は、サービス ブローカーにサービスを作成するパラメータを保持します。ブローカーの Provisioning API を呼び出して、サービスを作成します。
ServiceInstance の一覧を表示するには、Kf または kubectl を使用します。
kf serviceskubectl get serviceinstances -n space-name
Space
Space は、Cloud Foundry の組織やスペースと同様の構成情報を保持します。以下の処理を行います。
- 他の Kf リソースをプロビジョニングする Kubernetes Namespace を作成する。
- ネットワーク接続ポリシーを適用する Kubernetes NetworkPolicy を作成する。
- ビルド、アプリ、ルートの構成とポリシーを保持する。
Space の一覧を表示するには、Kf または kubectl を使用します。
kf spaceskubectl get spaces
サービス アカウント
Kf では、実行中の Kubernetes クラスタにサービス アカウントが必要です。サービス アカウントは、Tekton でイメージを pull および push するための Container Registry の認証に使用されます。CloudBuild テンプレートを使用して Kf をインストールすると、roles/storage.admin 権限を持つ Identity and Access Management サービス アカウントが作成されます。
サードパーティ ライブラリ
サードパーティ ライブラリのソースコードとライセンスは、Kf コンテナ イメージの /third_party ディレクトリにあります。
kf third-party-licenses を実行すると、ダウンロードした Kf CLI のバージョンのサードパーティ ライセンスを表示することもできます。