31年目のRealize

技術に関する詳しい記事や分かりやすい記事は世の中にたくさんあるので、自分なりのアウトプットを試行錯誤。

マンガっぽくKubernetesを勉強してみる①

Dockerができないこと

f:id:altrlz:20191109185446p:plain

それはどういうこと…?

Dockerが得意なのは、1つのホストでコンテナを動かすことなの

ふむふむ?(服が戻っている…)

イメージやコンテナ自体をexportして、他のホストに持っていくことは出来るんだけど、 それぞれで動いてるコンテナの状態管理とかは苦手なんだ

それぞれのサーバでdockerコマンド打つ必要があるね…数が増えるとメンドそう

そこで、コンテナオーケストレーションっていうやり方があって、 googleが作ったKubernetesというOSSが主流になってるよ!

https://Kubernetes.io/ja/

Kubernetesを使うと、コンテナの一元管理に加え、コンテナのスケーリングやデプロイ、アップデートを自動化できる。

さっきの丸いのはこれのマークだったのね!

この記事の目的

OSSKubernetesを理解するための勉強を目的とする。
勉強中のため、記載した内容については後日訂正する可能性もあります。

Kubernetesができることざっくり

ところでコンテナおーけすとれーしょんってなに…

コンテナを使ったシステム運用を自動化できるってことだね。 VMでいうと、負荷分散したり台数増やしたり、サーバ落ちたら再起動したり

そして何より良いのが、そういう自動化の定義をymlファイルに記述して管理できる!

おおー!でたymlファイル!つまりこれも使い回せる?!

そうそう!…という訳で楽するために、2人で勉強しよう♪

ええっ!?(システム運用とかまだやる予定ないんですけど…)

ひとまずKubernetesができることを絵に描いてみたよ

f:id:altrlz:20191110154116p:plain

スケーリング/オートスケーリング

イメージからコンテナを複製して、負荷分散や耐障害性をアップさせる。
また、コンテナの増減を自動で行う。

スケジューリング

コンテナをサーバに配置する。配置の条件を色々設定可能。

セルフヒーリング

コンテナのプロセスが落ちたりサーバに障害が発生しても、コンテナを自動復旧する。

リソース管理

サーバリソース状況に合わせてコンテナを配置する。

サービスディスカバリ/ロードバランシング

コンテナ増減した場合も、ルーティングできるように制御する。
また、アップデート時や障害時にコンテナを切り離したりもする。

いろいろデキるんだねー

他にも設定ファイルとかログを管理したり、コンテナのアップデートをいい感じにやってくれたりするよ

Kubernetesのインストール

Kubernetesを構築する方法はいくつかあるんだけど…その前にどういう構成になってるか整理してみよう

f:id:altrlz:20191110222444p:plain

うわぁ、なんかフクザツそう…dockerみたいに一つのサーバじゃないから、インストール作業だけでひと苦労…?

コンテナを実際に動かすNodeサーバと、Nodeたちを管理するMaster Nodeサーバ、そしてクライアントからMaster NodeにAPIを送るCLI、という感じの構成だね

これもdockerでカンタンにできないのかなぁ…

構築ツールは色々作られていて、そういうのもあるみたい。でもまぁ、目的によって使うツール・サービスが変わってくるね

プロダクション環境として構築

自前で全部構築するか、GCP/Azure/AWSといったパブリッククラウドのマネージドサービスを利用する方法があるよ

自前の場合、公式の構築ツールkubeadmを使う感じ

kubeadmのインストール - Kubernetes

やっぱりムズいー!クラウドのサービス使って全部丸投げしたい!!

自前運用も大変って聞くし、全然アリだよね…

動作確認・個人開発環境

1台のホスト上に構築

minikubeは1つのホスト上に仮想マシンを立てる方法で、他の2つはコンテナを利用する方法。分かりやすいリンク貼っておきます…!

Minikubeを使用してローカル環境でKubernetesを動かす - Kubernetes

microk8s を使って3分でローカル Kubernetes 環境を構築する - mhiro2 - Medium

お手軽Kubernetesクラスタ作成ツール "kind"の紹介 - Cybozu Inside Out | サイボウズエンジニアのブログ

たすかる!

webサービスを利用

webブラウザ上でお手軽に動作確認できるから、勉強はこっちで試しながらが良さそうね

ブラウザだけで3分でKubernetesが試せるKatacoda - Qiita

Play with Kubernetes

そうしましょう…!

つづく。