Kubernetesの勉強がてら勉強会
参加してきたのは以下。
SpringBootでマイクロサービスを作ってKubernetesにデプロイしてみる【実践編】 dreamarts.connpass.com
尚、当日資料は下記。
K8S とは?
コンテナオーケストレーション技術。
コンテナオーケストレーションは、
- コンテナが落ちた時に自動でコンテナを用意してアップしてくれる
- 新しいバージョンリリースの時には「新しいコンテナを作って新版デプロイ」「接続設定を新版に切り替え」「旧版コンテナの削除」を順次行ってくれる
要するにバックのサービス云々を意識せすに、サービス維持を自動化してもらうツールと言える。
特徴として
- Declarative 宣言的
- Immutable 固定化
- AutoHealing 自己修復的
この特徴のおかげで、「致命的エラーが出た?新しいコンテナ作ればいいやん」という状況が生まれる。
ただし、このアーキテクチャを採用する場合
- サーバサイドにセッション情報を保持する作りは崩壊する。
- つまりステートレスサーバを作らなければならない(破棄前提)
個人的な意見だと Playframework でやればおk!
K8s の構成
基本的に
- kubectl
コントロールサーバ。ここから K8s の - kube-apiserver
kubectl からリクエストを受ける部分。
こいつが kube-scheduler に処理を移譲する - kube-scheduler
apiserver で受けた内容を元に、Pod を操作する部分。 - Kubelet
Podを起動し管理するエージェント - Pod
コンテナ本体
という構成とのこと。
Docker
カーネルレベルの機能としてプロセスを分離し、そこで Ubuntuなどの様なコマンドセットを用意することで、それぞれのディストリビューションとして振る舞う。
という様なお話。
すみません、自分で調べてたので聞き流してしまいました(汗
Docker 周りはこの辺聞けばいいと思う。