category icon
2022-08-23
Linux

Paas のオープンソースである Cloud Foundry を試してみた

CloudFoundry
7.2.0
profile
hikaru
Software Developer / DIY'er

チュートリアル開始

Killercoda で Cloud Foundry のチュートリアルを試してみる。

shell
# バージョンを確認する
$ cf version
cf version 7.2.0+be4a5ce2b.2020-12-10

# インスタンスの詳細を確認
$ cf target
API endpoint:   https://api.kubecf.rscale.dev
API version:    3.88.0
user:           katacoda-kkMlSgPr
org:            katacoda
space:          katacoda-kkMlSgPr

cat manifest.yml でマニフェスト設定ファイルを確認する。

manifest.yml
---
applications:
- name: first-push
  instances: 1
  memory: 32M
  disk_quota: 64M
  path: ./sample-app.zip
  routes:
  - route: first-push-katacoda-kkMlSgPr.kubecf.rscale.dev
  buildpacks:
  - go_buildpack
  • name: first-push
    Cloud Foundry でのアプリケーションの名前。この名前は、わかりやすい名前にする必要があり、任意の名前にすることができる。
  • instances: 1
    作成するアプリケーションのインスタンス数を指定する。
  • memory: 32M
    各インスタンスを実行するコンテナーに割り当てられるメモリの量を指定する。
  • disk_quota: 64M
    各インスタンスを実行するコンテナーに割り当てられるディスクの量を指定する。
  • path: ./sample-app.zip
    アプリケーション ビットの場所を指定する。この場合は zip ファイル。
  • routes:
    アプリにアクセスできるルートを指定する。
    • route: first-push-12345.kubecf.rscale.dev
      ルーティング設定、デプロイ後のURL。
  • buildpacks: go_buildpack
    アプリケーションのコンテナー化に使用されるビルドパック。
    今回は go コードであるため、go ビルドパック(go_buildpack)が必要。

cf push コマンドでデプロイ

cf push コマンドでデプロイする。約105秒でデプロイ完了。

shell
$ cf push
Pushing app first-push to org katacoda / space katacoda-kkMlSgPr as katacoda-kkMlSgPr...
Applying manifest file /home/tutorial/manifest.yml...
Manifest applied
Packaging files to upload...
Uploading files...
 14.28 KiB / 14.28 KiB [=========================================] 100.00% 1s

Waiting for API to complete processing files...

Staging app and tracing logs...
   Downloading go_buildpack...
   Downloaded go_buildpack
   Cell diego-cell-1 creating container for instance bce02a86-fbfb-4408-ba97-b1c9c1a8af38
   Cell diego-cell-1 successfully created container for instance bce02a86-fbfb-4408-ba97-b1c9c1a8af38
   Downloading app package...
   Downloaded app package (74.5K)
   -----> Go Buildpack version 1.9.23.1
          **WARNING** [DEPRECATION WARNING]:
          **WARNING** Please use AppDynamics extension buildpack for Golang Application instrumentation
          **WARNING** for more details: https://docs.pivotal.io/partners/appdynamics/multibuildpack.html
   -----> Installing godep 80
          Download [https://cf-buildpacks.suse.com/dependencies/godep/godep-80-linux-x64-sle15-bfe8ffbb.tgz]
   -----> Installing glide 0.13.3
          Download [https://cf-buildpacks.suse.com/dependencies/glide/glide-0.13.3-linux-x64-sle15-d3bfaa2c.tgz]
   -----> Installing dep 0.5.4
          Download [https://cf-buildpacks.suse.com/dependencies/dep/dep-0.5.4-linux-x64-sle15-b7ca802d.tgz]
   -----> Installing go 1.15.5
          Download [https://cf-buildpacks.suse.com/dependencies/go/go-1.15.5-linux-amd64-sle15-32eb75a7.tgz]
          **WARNING** go 1.15.x will no longer be available in new buildpacks released after 2021-08-11.
          See: https://golang.org/doc/devel/release.html
          **WARNING** Installing package '.' (default)
   -----> Running: go install -tags cloudfoundry -buildmode pie .
   go: downloading github.com/cloudfoundry-community/go-cfenv v1.18.0
   go: downloading github.com/mitchellh/mapstructure v1.1.2
   Exit status 0
   Uploading droplet, build artifacts cache...
   Uploading build artifacts cache...
   Uploading droplet...
   Uploaded droplet (5M)
   Uploaded build artifacts cache (152.5M)
   Uploading complete
   Cell diego-cell-1 stopping instance bce02a86-fbfb-4408-ba97-b1c9c1a8af38
   Cell diego-cell-1 destroying container for instance bce02a86-fbfb-4408-ba97-b1c9c1a8af38

Waiting for app first-push to start...

Instances starting...
Instances starting...
Instances starting...

name:              first-push
requested state:   started
routes:            first-push-katacoda-kkMlSgPr.kubecf.rscale.dev
last uploaded:     Tue 23 Aug 01:17:45 UTC 2022
stack:             sle15
buildpacks:        
        name           version    detect output   buildpack name
        go_buildpack   1.9.23.1   go              go

type:            web
sidecars:        
instances:       1/1
memory usage:    32M
start command:   ./bin/sample-app
     state     since                  cpu    memory     disk       details
#0   running   2022-08-23T01:18:01Z   0.0%   0 of 32M   0 of 64M 

上記 54 行目の routes を確認すると、デプロイ後の URL を確認できる。(manifest.yml の routes に設定した値になっている)

first-push-katacoda-kkMlSgPr.kubecf.rscale.dev に実際にアクセスするとデプロイされたアプリが表示された。

おわり。