今後AI時代に重要となるKubernetesとは


AI時代に必要となるDevOps(デブオプス)については既に取り上げた。
クラウド・プログラミング・DevOpcとは

そこで今回は同様にAI時代に重要なシステムであるKubernetesについて纏める事にする。

Kubernetes(クバネティス、略称:K8s)とは、コンテナ化されたアプリケーションを自動で配置・管理・スケーリングするためのシステムで、もともとGoogleが開発し、現在はCloud Native Computing Foundationが管理している、世界標準の基盤技術の事だ。

先ずはコンテナとは何かというと
「コンテナ」とは
DevOpsではアプリを「コンテナ」という箱に入れて動かす。その中身は
アプリ、必要なライブラリ、設定
をまとめた「実行可能なパッケージ」だ。

メリットは
・どの環境でも同じように動く
・開発環境と本番環境の差がなくなる

■ しかし問題が出てくる
コンテナが増えると管理が困難になる、例えば
コンテナが100個ある、どのサーバーで動かす?、障害が起きたらどうする?、 負荷が増えたらどう増やす?
これは手動では管理不能だ。

■ そこで Kubernetes の出番となる
Kubernetesは、コンテナ管理の自動化システムだ。
例えるなら:
・コンテナ = 作業員
・Kubernetes = 現場監督

Kubernetesが自動でやること
① コンテナを自動配置:空いているサーバーに配置
② 障害が起きたら自動復旧:コンテナが停止→ Kubernetesが自動で再起動⇒人間不要
③ 負荷に応じて自動増減(スケーリング):アクセス増加→ コンテナを自動で増やす。アクセス減少→ 減らす
④ 無停止で更新(ローリングアップデート)
サービスを止めずに更新可能

なぜ重要なのか?
現代のほぼすべての大規模サービスで使われている。例としては
・クラウドサービス
・金融システム
・ECサイト
・AIサービス
AIの運用にも必須となっている。

DevOpsとの関係
DevOpsの中核技術であり
DevOpsの流れ:開発 → コンテナ化 → Kubernetesで運用 → 自動スケール
すなわち、Kubernetesが「運用自動化」を担う。

なぜエンジニアの市場価値が高いのか
Kubernetesを扱える人材は不足している。その理由は、システム全体の理解が必要なこと
・Linux
・ネットワーク
・コンテナ
・クラウド
すべての知識が必要で、そのため年収も高い傾向がある。

*だからこそ、LinuxをWindouw11が使用できない旧型パソコンで運用して、練習するのだ。⇒ウィンドウズ10のサポート終了に備えてLinuxをインストールしてみた【前編】 

AI時代との関係
AIサービスは
・モデルを動かす
・スケールする
・更新する
必要がある。これを管理するのが Kubernetes だ。
つまり、AI時代のインフラの中核技術、なのだ。

まとめ
Kubernetesとは:
• コンテナを自動管理するシステム
• DevOpsの中核
• クラウド・AI時代の基盤技術
• エンジニアの重要スキルの一つ

DevOpsKubernetesの説明が終わったので、いよいよ本命のドメイン知識に進めそうだ。