LoginSignup
2
0

More than 3 years have passed since last update.

100日後にエンジニアになるキミ - 99日目 - 開発環境 - Kubernetesについて

Posted at

昨日までのはこちら

100日後にエンジニアになるキミ - 95日目 - 開発環境 - Docker について

100日後にエンジニアになるキミ - 94日目 - 開発環境 - 仮想化について

100日後にエンジニアになるキミ - 91日目 - 運用 - 監視について

100日後にエンジニアになるキミ - 90日目 - 開発 - CIについて

100日後にエンジニアになるキミ - 88日目 - データ - データ転送について

100日後にエンジニアになるキミ - 86日目 - データベース - Hadoopについて

100日後にエンジニアになるキミ - 76日目 - プログラミング - 機械学習について

100日後にエンジニアになるキミ - 70日目 - プログラミング - スクレイピングについて

100日後にエンジニアになるキミ - 66日目 - プログラミング - 自然言語処理について

100日後にエンジニアになるキミ - 63日目 - プログラミング - 確率について1

100日後にエンジニアになるキミ - 59日目 - プログラミング - アルゴリズムについて

100日後にエンジニアになるキミ - 53日目 - Git - Gitについて

100日後にエンジニアになるキミ - 42日目 - クラウド - クラウドサービスについて

100日後にエンジニアになるキミ - 36日目 - データベース - データベースについて

100日後にエンジニアになるキミ - 24日目 - Python - Python言語の基礎1

100日後にエンジニアになるキミ - 18日目 - Javascript - JavaScriptの基礎1

100日後にエンジニアになるキミ - 14日目 - CSS - CSSの基礎1

100日後にエンジニアになるキミ - 6日目 - HTML - HTMLの基礎1

本日はKubernetesについてです。

Kubernetesについて

image.png

公式などの説明だと、コンテナ化したアプリケーションのデプロイ、スケーリング
および管理を行うための、オープンソースのコンテナオーケストレーションシステム
と言うことだそうです。

簡単に言うとコンテナの運用管理と自動化を行うためのツール
と言ったところでしょうか。

K8sと略記され、ギリシャ語で「操舵手」や「パイロット」という意味があり
知事やサイバネティックスの語源にもなっています。
ロゴも舵な感じですね。

K8sは8文字のubernete8に置き換えた略語だそうです。

コンテナを使う意義

とその前にコンテナを使うことの意味ですが
昔の開発環境では1つのサーバーにライブラリをたくさんインストールして
その上で動くアプリケーションを配置していました。

1つ1つの環境は重めになります。

スクリーンショット 2020-06-27 16.50.39.png

それに対して現在の開発の主流はアプリケーションごとに
使用するライブラリ群を切り離すことで実行環境を軽くし
ビルドやデプロイなどの時間がかからないようにすることを目指しています。

アプリケーションの開発では開発環境の構築から始まりので
それを1からまとめてコンテナに集約し
開発現場と本番環境に差異がないようにしたり
環境整備にかかる時間の圧縮をしています。

そのような開発のメリットからコンテナを用いた開発が増えています。

コンテナオーケストレーション

当然開発するアプリケーション群が増えていくと
コンテナも増えていくことになります。

複数のコンテナを管理して自動化を行なって、複数制御してと言うことが
必要になって来ました。

Kubernetesの登場により、複数のコンテナの管理や自動化が進んだため
この仕組みはコンテナオーケストレーションと呼ばれるようになりました。

コンテナにも種類がありDockerはその一つです。
Kubernetesが対象としているコンテナはDockerが標準になっています。

image.png

参考:https://www.kagoya.jp/howto/rentalserver/kubernetes/

Kubernetesを使うと何が出来るのか

プロダクションで利用しようとすると下記のようなことを考えなければなりません。

複数のDockerホストの管理
コンテナの死活監視
コンテナのスケジューリング、アップデート
スケーリング / オートスケーリング
ロードバランシング
障害時のセルフヒーリング
データやワークロード、ログの管理
その他システムとの連携、拡張、同期

Kubernetesを利用することでこれらの課題を解決することができます。

Kubernetesを利用しない場合には
これらの自動化の仕組みを1から作り上げる必要があります。

フルマネージドのサービス

クラウドサービスではKubernetesを取り扱うことのできる
フルマネージドのサービスが存在したりします。

Google Kubernetes Engine(GKE)
Amazon Elastic Kubernetes Service(EKS)

これらを用いることで、自前で組むよりも簡単に
Kubernetesを用いた環境を構築することができます。

まとめ

データ分析くらいであれば、コンテナ1つ使ってくらいで事足りますが
大規模開発になると数百とかのコンテナ数になり
管理もしきれなくなって来ます。

1からコンテナ管理の仕組みを作るのも大変ですし
既にコンテナ管理の仕組みは存在しているので
それを利用する方が得策です。

モダンな開発現場で仕事をしたい場合は
こう言ったコンテナ環境の制御の仕組みがあることを
押さえておく必要があると思います。

君がエンジニアになるまであと01日

作者の情報

乙pyのHP:
http://www.otupy.net/

Youtube:
https://www.youtube.com/channel/UCaT7xpeq8n1G_HcJKKSOXMw

Twitter:
https://twitter.com/otupython

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0