手作業でPodを消したり作ったりするより、Deploymentを使うべき名ことを知り目からウロコです。こんなことすらネットではピンと来ませんでしたね。コンテナを置き換えたり負荷によってReplication(複製)のPod数をスケールアウトしたりと、思いのままですね。ノードをスケールアップするのもDeploymentを使えばサービス無停止が基本です。ServiceがすごいKubernetesのクラスターの外に、物理サーバーもしくは仮想サーバー、RDSなど、データベースの接続ポイントがあるとします。192.168.100.10:5432(PostgreSQLの場合)など。これをPodの中で、EndPointを定義し、Serviceとして宣言すると、localhost:5432でアクセスできるようになります。Podの中にPostgreSQLが現れたみたいになるのですがもっとすごくて、どのPodからも同じデータベースがつつけるようになるわけです。これができると、データベースなどの一部はモノリシック(いわゆる仮想サーバーなどでの普通の構築)をしておいて、フロントのWEBAPだけKubernetesでオートスケールできることとなります。データベースを変えたいときはもう一台作って向き先を変えればいいわけで、Kubernetesだけで閉じなくていいのは非常に便利だと思いました(詳しく知りたい方は94ページ参照のこと)。コンテナでアプリを作ると言っても、そこにデータベースのDNS名やIPアドレスをハードコーディングしていたらせっかくの可搬性が台無しです。コンテナにはlocalhost:5432と書いておいて、実はクラウドのDBと通信している。死活管理も柔軟性が高いKubernetesの場合、コンテナ(実際はPOD)の複製の数が決めてあって、そのPODが不調の場合は別のノードで動かす、オートヒーリングが有名です。「どうやって不調って決めるのよ」と思いませんでしたか?。javaは生きていてもOutOfMemoryかもしれません。この条件って変えられるそうです。特定のTCPポートにセッションがはれるか、URLを叩いてRC=2xx/3xxか、コマンドを叩いてRC=0か、など自由自在。デプロイなどのPODの切り替えの際、コンテナとしては起動しているけれども、中のjavaの起動処理が終わるまではサービス公開したくないというときも、条件を同じように変えられます。本番を意識するとこのあたりの情報がとても大事だと思います。アプリをデプロイしたら、503がしばらく出る・・。WEBから応答がないのにオートヒーリングしないとかね。オートヒーリングとvMotionは全然違う確かに誤解されがちかもしれません。Podの調子が悪いときに他の新しいPodを起動し、調子の悪いものを落とす。DRSのvMotionみたいですが、vMotionなんて高度なことはしていなくて、単に落として別で起動しているだけです。HAとは少し似ているかもしれませんが。いつか聞かれそうなのでメモ。CronJOBは便利そう一日に一度だけコンテナ(POD)を起動させて、バッチ処理してコンテナを落としたい、なんて言うニーズがあっても、バッチ用のコンテナを上記起動している設計が多いのではないでしょうか。CronJOBがまさにこれに応えられそう。文中ではまだ機能途上とあり。気を付けながら今後興味を持っていきたいです。JSON勉強したい全部がYAML形式(JSON)のファイルで説明できることから、逆にYAML形式をどのように書くのが正解かをきちんと身に着ける必要を感じました。いちいち構文エラーを食らっているので生産性が悪いです。※GUIがあればそれで終わりかもしれませんが。まとめがーっと本を読んだので得た知識について本エントリー上では全部はまとめきれないのですが、とりあえず私の頭の中はスッキリできました。コンテナ関係でもやもやしている方は、本書のご一読をお勧めします。前半部分だけでしたら一日あれば読めます。逆に、まだ手を付けてもおらずDockerすら知らない人は、Dockerをまずじっくり触ることをお勧めします。Kubernetesはありませんしできません。この本にはそういえば、ログの話がないんですが、そのあたりの本に欠けている部分はネットで補完すればいいかなと思っています。そのうちKubernetesそのものの本に手を出すか・・。上記の本、迷ったんですが、まだ今は早いかなと思ってスキップしました。dockerは良くわかっていてオーケストラレーションの経緯は興味がなく、いきなりKubernetesの運用に向かいたい人はこちらがお勧めです(立ち読みした限りでは)。言えば、下記の本も実は買っていまして。コンテナだけではなく、サーバーレスでの開発の実際も含まれていまして、これを次は流し読みするつもりです(週末かな)。コンテナの全貌だけ追いかけても、もっと大きなテーマが見えずらいので、これで疑似体験するつもりです。Lambda、Heroku等が実際に使われているので開発者の気持ちになれるかなと。Dockerもありますし、まずはとにかく開発者目線で動かすところを見てみたい(いわゆる動機の部分)。コンテナ対サーバレスというのが本当に対立軸かというのを知りたいです。全体がわかれば、細部の勉強はインターネットの記事の方が当たりも多いので、まずは全体を知る訓練を続けているところです。diaryでは記事更新をTwitterでお知らせしています。@orangeitems_をフォローください。はてなブログProクラウドではたらくインフラエンジニアのorangeitemsが日々気になったことを気まぐれに書いています。(1)リンクアクセス解析ツールと広告の配信について嫁のブログ記事一覧に戻るスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。