Kubernetesへのデプロイまでを紹介します。
appsodyで楽々実現!Node-REDをKubernetesで動かす!
View Slide
1. (ざっくりと) Kubernetesに関する説明。2. appsody is 何 ?3. appsodyを使ってNode-REDモジュールをK8sにデプロイするデモ本日の流れ
自己紹介3千葉県松戸市のWeb系ベンチャー企業Joolenのエンジニア。motuoという名前でQiita書いたりしてます。 埼玉西武ライオンズのユニフォームロゴが目印。現在の業務で使うのは主に、PHP(Laravel,EC-CUBE)ですが、好き嫌いなく何でも食べる子(実はCobolとかもイケる)もちろんNode-REDも!2020年の IBM ChampionとKabanero(OSS)のContributorを認定頂きました!※今回お話するappsodyはKabaneroにも組み込まれています。
kubernetesって?
kubernetesをザックリ理解しよう【出典】https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/#what-does-kubernetes-mean-k8s- Googleが中心となって開発したコンテナを統合して管理するツール- 複数のホストを跨いだ構成も、上手く制御できる。- オートスケールやコンテナの自動回復にも対応している。- 様々な部品を独立したコンテナで構築できるので、マイクロサービスに適している。
つまり。。。● コンテナが何かの原因で落ちても、自動的回復してくれる● 必要な機能にリソースを集中させやすい例:Webサーバは小さく、バッチ処理のリソースは大きく● ローリングアップデート機能で、機能のアップデートを不停止で実現● 容易にシステムをスケーリング可能!
でも実際に使おうとすると、、、
なかなか手が進まない現実- どうやって環境作るの??- yamlってどう書く?一人でK8s上にNode-RED構築できますか??
そんな開発者の壁を取り去るOSS
appsody is 何?クラウドネイティブなアプリケーション開発を支援するために作られたIBM製のオープンソース。主に下記の3つのコンポーネントで構成されています。1. Appsody Stacks予め、コンテナの依存性やセキュリティ情報(フローエディタの利用可否)等の構成を保管することが出来ます。開発者はこれらを気にすることなくアプリケーションの開発が可能です。2. Appsody HubAppsody Stacksを管理するためのリポジトリです。ここを更新することで、Appsodyで構築されたアプリケーションの構成を変更することができます。3. Appsody CLIAppsodyのコマンドラインツールです
appsodyを使った開発の流れ用意されているスタックをローカルへローカルでの開発Kubernetesへデプロイ
appsody stackの構成my-stack├── README.md├── stack.yaml # 最初に適用するテンプレートの指定など├── image/| ├── config/| | └── app-deploy.yaml # プロジェクトをデプロイする時の設定 (ポートなど)| ├── project/| | ├── [デプロイする時に必要なファイル群をここに配置 (Node-REDの設定など)]| | └── Dockerfile│ ├── Dockerfile-stack # ローカル環境へデプロイする際の環境変数などを記述| └── LICENSE└── templates/├── my-template/└──[Appsdy init をしたときに始めに作成されるアプリケーション ]Node-REDのAppsody stackがGithubで公開されています!フローエディタの設定などは/image/project/server.jsに!https://github.com/appsody/stacks/tree/master/incubator/node-red
実際にK8sへのデプロイを行います。
ローカルクラスタへのデプロイ(デモ)今回お見せする手順はQiitaのappsodyがNode-REDに対応したので使ってみたで公開しています!ぜひ、ご自分でも試してみてください。