kubernetes ときどき serverless -- cndjp第1回勉強会
TRANSCRIPT
![Page 1: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/1.jpg)
#cndjp1
![Page 2: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/2.jpg)
ごあいさつ
![Page 3: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/3.jpg)
自己紹介
• 早川 博(はやかわ ひろし)
• 日本オラクル所属• Pre-Sales Engineer / Tech Evangelist (new!)
• Java SE/EE, Microservices/DevOps
@hhiroshell
![Page 4: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/4.jpg)
この勉強会について
•cndjp - Cloud Native Developers JP
• Cloud NativeなOSSスタックを対象とした勉強会シリーズ
• オープンソース中心
• 楽しく学ぶ、深く学ぶ
CNCFが出しているCloud Native Landscapeに載っているソフトウェア(→次ページ)
![Page 5: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/5.jpg)
cndjp #1-#3
cndjp #4~
![Page 6: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/6.jpg)
Kubernetes ときどき Serverless#cndjp1
![Page 7: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/7.jpg)
前半戦Kubernetes基礎
![Page 8: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/8.jpg)
前半戦のメニュー
1. Kubernetesってなんですか
2. Kubernetesの全体像を理解する
3. Kubernetesクラスター大解剖
![Page 9: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/9.jpg)
1. Kubernetesってなんですか
![Page 10: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/10.jpg)
こういうことがしたい
大きなリソースのプール
![Page 11: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/11.jpg)
こういうことがしたい
動け!
![Page 12: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/12.jpg)
こういうことがしたい
コンテナ化されたアプリ
はい!
![Page 13: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/13.jpg)
こういうことがしたい
コンテナ化されたアプリ
はい!
![Page 14: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/14.jpg)
こういうことがしたい
利用者からのリクエスト
わー!
![Page 15: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/15.jpg)
こういうことがしたい
がんばれ!
![Page 16: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/16.jpg)
こういうことがしたい
はい!
![Page 17: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/17.jpg)
こういうことがしたい
アップグレード!
![Page 18: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/18.jpg)
こういうことがしたい
はい!
勝手にローリングアップデート
![Page 19: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/19.jpg)
こういうことがしたい
![Page 20: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/20.jpg)
こういうことがしたい
![Page 21: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/21.jpg)
こういうことがしたい
わー!
コンテナが落ちたら自動で新たに立ち上げる
![Page 22: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/22.jpg)
![Page 23: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/23.jpg)
こういうことができる
• リソースの抽象化• どこにデプロイするか意識しな
くてよい
• いいように分散して配置してくれる
• 外部アクセスのマネージ• アプリケーションの公開
• ルーティング/ロードバランシング
• スケーリング• 手動/自動
• 障害時のコンテナの再立上げ
• 複数コンテナをまとめて制御
![Page 24: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/24.jpg)
2. Kubernetesの全体像を理解する
![Page 25: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/25.jpg)
Kubernetesの全体像
k8sクラスター
>_
kubectl (CLI)
マシンとネットワーク
![Page 26: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/26.jpg)
kubectl
• Kubernetesクラスターの管理操作を行うためのコマンドラインインターフェース
• Kubernetesクラスターと戯れるときの最も基本的な手段
• コマンドをKubernetesのREST API呼び出しに変換している
• (REST APIを直接呼び出すことも可能です)
![Page 27: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/27.jpg)
kubectl
• 複数のクラスターもいける
>_
![Page 28: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/28.jpg)
Kubernetesクラスター
• クラスター本体です(あたりまえ)
• 次章で詳しく解説
![Page 29: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/29.jpg)
3. Kubernetesクラスター大解剖
![Page 30: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/30.jpg)
Kubernetesの全体像
k8sクラスター
>_
kubectl (CLI)
マシンとネットワーク
![Page 31: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/31.jpg)
Kubernetesクラスターの構成
k8sクラスター
k8s Objects
・k8sの機能の構成要素- Node, Pod, Service…
k8s Control Plane
・k8s Objectsを実現する実装- マシン上で稼働するプロセス群
- k8sの要件に沿って構成されたネットワーク
![Page 32: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/32.jpg)
Kubernetesクラスターの構成
k8sクラスター
Kubernetes Control Plane
・k8s Objectsを実現する実装- マシン上で稼働するプロセス群
- k8sの要件に沿って構成されたネットワーク
k8s Objects
・k8sの機能の構成要素- Node, Pod, Service…
![Page 33: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/33.jpg)
Kubernetes Objects
• Node
• Pod
• Service
• Label/Label Selector
• Deployment
• ReplicaSet
• DaemonSet
…他にもありますが、まずはこの辺から。
![Page 34: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/34.jpg)
Node
• クラスターに属するマシンを表すオブジェクト
• クラスターの管理を担当するマスターノードと、アプリケーションを稼働させるメンバーノードがある
メンバーノード
マスターノード
![Page 35: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/35.jpg)
Pod
• Node内で稼働するコンテナのセット
• 生成/スケールアウト/破棄等のライフサイクルの単位
• 内包する複数のコンテナは、必ず同じノード上で稼働
• 1つのPodに1つのクラスタ内IPが割り当てられる
ポッド
コンテナ
![Page 36: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/36.jpg)
Service
• PodへのTCP/UDPアクセスの制御を行うオブジェクト
• Podへのルーティング、ロードバランシングの役割を持つ
• クラスター外部への公開、クラスター内の通信など、用途に応じて複数のタイプから選択可能
サービス
クラスター外からのリクエスト
![Page 37: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/37.jpg)
Label/Label Selector
• k8sオブジェクトを管理し易いようにグルーピングする仕組み
• Label: • k8sオブジェクトにアタッチで
きるkey/valueペアのセット
• Label Selector:• Labelの設定値の条件を指定す
る情報。条件に該当するものをグループとして識別する
"labels": {"tier" : "frontend","partition" : "customerA"
}
"labels": {"tier" : “backend","partition" : "customerA"
}
"labels": {"tier" : "frontend","partition" : "customerB"
}
Label
Label
partition = customerA
Label Selector
![Page 38: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/38.jpg)
Label/Label Selector
• Serviceがルーティングの対象を識別するためにも利用される
サービス
partition = customerA
クラスター外からのリクエスト
![Page 39: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/39.jpg)
Label/Label Selector
• Serviceがルーティングの対象を識別するためにも利用される
サービス
partition = customerA
クラスター外からのリクエスト
![Page 40: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/40.jpg)
Deployment
• Podのライフサイクル(生成/更新/破棄)を制御するオブジェクト
• Podを起動したり、スケールさせたりするときに、対応するDeploymentに対して操作を行う
デプロイメント
D
![Page 41: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/41.jpg)
DaemonSet
• 全てのメンバーノードで共通のPodを稼働させる仕組み
• ノードが追加されると自動で所定のPodが起動
• ノード共通の機能を乗せたいときに利用• ログ収集(fluentd, logstach)• ノードの監視用のエージェ
ント(Prometheus, collectd)
DaemonSet
![Page 42: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/42.jpg)
Kubernetes Objects
・k8sの機能の構成要素- Node, Pod, Service…
Kubernetesクラスターの構成
k8sクラスター
k8s Control Plane
・k8s Objectsを実現する実装- マシン上で稼働するプロセス群
- k8sの要件に沿って構成されたネットワーク
![Page 43: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/43.jpg)
Kubernetes Control Plane
• マシン上で稼働するプロセス群
• k8sの要件に沿って構成されたネットワーク• e.g. コンテナ同士の通信がNATなしで疎通すること
• マスターノード• kube-apiserver
• etcd
• kube-controller-manager
• kube-scheduler
…
• メンバーノード• kubelet
• kube-proxy
• Docker
…
![Page 44: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/44.jpg)
Control Planeで稼働するプロセス群(主要なもの)
REST API呼び出し
API Server
kube-proxy
cotrollers
kube-controller-managerkubelet
マスターノードメンバーノード
Docker
メンバーノードへの指示
![Page 45: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/45.jpg)
メンバーノードで稼働するプロセス
• kubelet• メンバーノードとしての基本
機能を実現する
• Podの生成/更新/破棄などのコントロール
• 各種ステータスのレポート
• kube-proxy• ネットワーク周りのルールを
制御
• Docker• いわずもがなのコンテナ本体
kube-proxy
kubelet
Docker
![Page 46: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/46.jpg)
マスターノードで稼働するプロセス
• kube-apiserver• Kubernetesクラスターのフロント
エンド。APIを提供
• kube-controller-manager• クラスターの制御を行う各種
controllerを動作させる
• controllers• Node Controller• Replication Controller• Endpoints Controller• Service Account & Token
Controllers
API Server
cotrollers
kube-controller-manager
![Page 47: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/47.jpg)
More Advanced…
• Control Planeの構成要素をきっちり把握するには、カスタムクラスターのインストールマニュアルを読むのがおすすめ
• Creating a Custom Cluster from Scratch• https://kubernetes.io/docs/getting-started-guides/scratch/
![Page 48: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/48.jpg)
ハンズオン (1)ローカルPCにKubernetesクラスターを構築してみよう
![Page 49: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/49.jpg)
後半戦Kubernetes実践 ときどき Serverless
![Page 50: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/50.jpg)
後半戦のメニュー
1. kubectlをもう少し
2. アプリケーションを公開するには
3. Kubernetes meets Serverless
![Page 51: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/51.jpg)
kubectlをもう少し
![Page 52: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/52.jpg)
kubectlの設定情報
• kubectlの設定情報の表示
• 設定情報の実態は ~/.kube/config
• 設定の追加/上書き(の一例)
> kubectl config view
> kubectl config set-cluster [OPTIONS]
![Page 53: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/53.jpg)
k8sオブジェクトの情報を取得する(1)
• Human Readableな形式で取得するとき -> get, describe
• オブジェクトの一覧
> kubectl get [オブジェクトの種類]
• オブジェクトの詳細情報
> kubectl describe [オブジェクトの種類] [オブジェクトの名前]
![Page 54: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/54.jpg)
k8sオブジェクトの情報を取得する(2)
• Machine Friendlyな形式で取得するとき -> getと-oオプション
• オブジェクトの詳細情報> kubectl get [オブジェクトの種類] [オブジェクトの名前] –o json
![Page 55: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/55.jpg)
k8sオブジェクトを操作する(1)
• コマンド方式• オブジェクトに反映したい状態を、コマンドとそのオプションで指定
• オブジェクトの作成の例:
• 構成ファイルを指定してオブジェクトを操作する方式• 命令的/宣言的
• オブジェクトに反映したい状態を、構成ファイルで指定• .yaml または .json
• ソースコード管理との親和性が良い
> kubectl run nginx --image nginx
![Page 56: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/56.jpg)
構成ファイルによるオブジェクトの操作
• 命令的方式• コマンド(create, delete, replace…)と構成ファイルを指定• 指定した内容にオブジェクトの状態が変わる
• オブジェクトを作成する例:
• 宣言的方式• 適切なコマンド(操作)をkubectlが自動で検出• オブジェクトの状態を上書き。構成ファイルに明記しなかった部分は既存の
状態が維持される
• オブジェクトを作成する例:
> kubectl create –f nginx.yaml
> kubectl apply –f configs/
![Page 57: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/57.jpg)
アプリケーションを公開するには
![Page 58: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/58.jpg)
コンテナのデプロイ
• コンテナレジストリから取得するのが基本
• プライベートのレジストリを使うことも可能
k8sクラスター
>_
kubectl (CLI)
コンテナレジストリ
> kubectl run …
![Page 59: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/59.jpg)
公開方法のバリエーション
• APIサーバー経由でのアクセス
• ServiceのNodePortタイプ
• ServiceのLoadBarancerタイプ
• Ingress (beta)
![Page 60: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/60.jpg)
APIサーバー経由でのアクセス
• kubectlをproxyとして稼働させて、認証なしのAPIエンドポイントへの経路を構成
• 所定のAPIエンドポイントにリクエストを投げるとコンテナに届く
• お試し用。k8sクラスター
kubectl
> kubectl proxy …
>_
APIサーバー
リクエスト
![Page 61: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/61.jpg)
ServiceのNodePortタイプ
• 対象のPodにルーティングされる口を、各Node上に構成する
• ポート番号は、各ノードで共通
クラスター外からのリクエスト
172.17.8.104
172.17.8.103
172.17.8.102
172.17.8.104:30159
172.17.8.102:30159
172.17.8.103:30159
![Page 62: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/62.jpg)
ServiceのLoadBalancerタイプ
• GCP, AWS, Azure上のロードバランサーを自動構成
• クラスター内にはNodePortまたはClusterIPタイプのServiceを構成
クラスター外からのリクエスト
LB
![Page 63: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/63.jpg)
Ingress
• API Server上にLoadBalancerを構成して、クラスター内にリクエストをルーティング
• ロードバランシング、SSL/TLS終端等の機能を提供
• Kubernetes 1.1から利用できるが、まだBeta…
![Page 64: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/64.jpg)
ハンズオン (2)アプリケーションを公開してみよう
![Page 65: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/65.jpg)
その前に…
![Page 66: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/66.jpg)
Kubernetes meets Serverless
![Page 67: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/67.jpg)
Fn Project
• http://fnproject.io/
→サーバーレス・アプリケーションを作るためのフレームワーク
![Page 68: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/68.jpg)
Open & Easy
• Open• Open Source (Apache 2.0)
• マルチ言語サポート• JS, Java, Ruby, Python, Go
• どこでも動く• ラップトップ、サーバー、クラウド
• Easy• 全ての操作はシンプルなCLI
• 考え抜かれた開発者エクスペリエンス
![Page 69: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/69.jpg)
構成
• Fn Server上にFunctionがのるDinD(Docker in Docker)構成
• トリガーがキックされる度に対応するFunctionのコンテナを立ち上げる
• コンテナ群の管理はCLIが隠蔽
Function 1
Function
Function 2
Function
Fn Serverfn-app/hello-node
fn-app/hello-java
![Page 70: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/70.jpg)
Fn Flow
• 複数のファンクションの連結を手続き的記述で実現
Flowは現在Javaのみ対応。随時対応言語を増やしていくとのこと
![Page 71: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/71.jpg)
Fn Flow
• 並列・非同期処理
![Page 72: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/72.jpg)
Fn Flow
• エラーハンドリング
![Page 73: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/73.jpg)
Fn Flow
• 複数のファンクションの連結を手続き的記述で実現
• なにがいいの?テストしやすい
デバッグしやすい
読んで理解しやすい
エラー処理で死なない
![Page 74: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/74.jpg)
たぶん…。
![Page 75: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/75.jpg)
![Page 76: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/76.jpg)
ハンズオン (2)アプリケーションを公開してみよう
![Page 77: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/77.jpg)
次回予告
![Page 78: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/78.jpg)
次回コンテンツ 案(1)
• 「Kubernetes Network Deep Dive!」
• コンテンツ• 今回取り上げられなかった、k8sネットワーク周りを深掘り
• サービス・メッシュでk8s上にインテリジェントなネットワークを
![Page 79: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/79.jpg)
次回コンテンツ 案(2)
• 「Kubernetes in プロダクション!」
• コンテンツ• 実運用を想定したk8sの使い方を学びます。例えば…。
ロードバランサーの構成方法
管理ノードの冗長化構成はどう作る?
永続化層はどうすれば?
コンテナのアップデート
オートスケーリング
![Page 80: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/80.jpg)
お知らせ
• アンケートにご協力ください
http://bit.ly/cndjp1-survey
• Slackチャネルにもぜひご参加ください
http://bit.ly/cndjp-slack
![Page 81: Kubernetes ときどき Serverless -- cndjp第1回勉強会](https://reader034.vdocuments.site/reader034/viewer/2022042513/5a6477597f8b9afc4d8b4763/html5/thumbnails/81.jpg)
お疲れ様でした!#cndjp1