Kubernetes イントロ

Kubernetes イントロ

MLOpsを仕事で扱っていきたいので、その周辺の技術を学んでいくシリーズです。
本記事は、Kubernetesの1つ目の記事です。

また下記の書籍及びチュートリアルを参考にしています。
Kubernetes完全ガイド (impress top gear)
Learn Kubernetes Basics

 

Kubernetesとは

コンテナ化されたアプリケーションのデプロイ、スケジューリングなどの管理を自動化するためのプラットフォームです。
最近conpassの勉強会でもKubernetesを扱うものが増えた気がします。

 

Kubernetesでできること

Infrastructure as Code

コードで、コンテナやリソース周辺を管理することができます。

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

複数のコンテナを管理することで、負荷分散や対象外性を確保することができます。

リソース管理

特別な指定がない限り、CPUやメモリの空き状況を確認し、それに従ってスケジューリングしてくれます。
なので、コンテナの配置に関して管理する必要はありません。

スケジューリング

コンテナをNopdeにデプロイする際に、どのNodeに配置するか決定することできます。

セルフヒーリング

プロセスの停止を検すると、自動的にコンテナを再デプロイしてくれます。

 

Kubernetesと連携できるツール

Kubernetesは、それ一つでも強力ですが、他のツールとも連携することができます。

Ansible

Kubernetesへのコンテナのデプロイ
KuberntesとAnsibleはかなりよく聞きますし、検索でもヒットしやすいです。

Fluentd

Kubernetes上のコンテナのログ転送。
クラスタ内のログを外部に転送するのが一般的みたいです。
こうすることで、あとからいつでもこのログを活用できるようにしておきます。

Prometheus

Kubernetesのモニタリング

Kubeflow

Kubernetes上にMachine Learrning プラットフォームをデプロイ

Spinnaker

kubernetesでCI/CDができる
スピネーカーと読みます

 

パブリッククラウド上のKubernetes

パブリッククラウド上でKubernetesを使用するには下記3つのうちどれかを選択すことになります。

GKE

Google Kubernetes Engineの略です。
ノードの自動アップデート機能が有名です。

EKS

Elastic Container Service for Kubernetesの略です。

AKS

Azure Kubernetes Serviceの略です。

 

デモの実施

とりあえず早く試したいという方は、minikubeを使うと良いと思います。
minikubeとは、ローカルマシン上で気軽にKubenetesを試すことができるツールです。

Install and Set Up kubectl

システムをアップデートする

VirtualBoxをインストールする

kubectlをインストールする

簡単なデモを実行する

 

参考にした記事

How to install Minikube on Ubuntu Bionic 18.04