コンテナの検証環境
コンテナを勉強していくには検証環境が必要である。今回はローカルマシンでつかうコンテナ検証環境を比較してみる。
コンテナの検証環境
- docker
- minikube
- crc (code ready container)
難しいので今回は確実に覚えなくてもいいが、コンテナオーケストレーションはAIO環境という1台で構成される環境であり、外部から参照するのが難しい環境のため、商用リリース用で考えるものではない。
比較内容
種類 | 何の検証環境 | windows環境 | windows pro環境 | mac | linux | 最低必要SPEC |
---|---|---|---|---|---|---|
docker | docker | 仮想環境を使えば導入可能 | 導入可能 | 導入可能 | 導入可能 | 考慮必要なし |
minikube | kubernetes | 導入可能 | 導入可能 | 導入可能 | 導入可能 | cpu:2,memory:2GB,20GB disk |
CRC | Openshift4 | 導入不可能 | 導入可能 | 導入可能 | 導入可能 | cpu:4v,memory:8GB,35GB disk |
※windows home では昔はdockerインストールできなかったが、202102時点では対応されている情報アリ
※最低必要スペックのためのセルアプリケーションのリソースは追加で必要。
1. docker
いろんな書籍で聞くdockerです。RHEL(centos)環境ではdocker.systemで動かすものです。クライアントもdocker、サービスもdockerなので初めての人だと言葉が混在してしまいます。
デファクトスタンダードではありますが最近下火になっているdockerです。2022年を生き延びるのは難しいかもしれません。
docker -> kubernetes には移行はありますが、逆はないに等しいです。
2.minikube
商用利用したり、コンテナ開発の優位性を生かすためのオーケストレーションのkubernetesの検証環境がminikubeです。kubernetesは管理ツールの役目が強いため、いきなり商用を使うと外部設定の箇所で躓いてしまします。
少し前までは最初からyamlファイルを書かないとアプリケーションのテストもできなかったため、最初の『Hello,world』までに時間がかかって嫌われてきました。
kubectl create 'kind'
kindはdeployment(runみたいなもの)やservice(ネットワーク紐づけ)等を使うと、簡単に最初のデプロイができます。
crc (code ready container) 1押し(コンテナのメリットを考えるなら)
kubernetesにコンテナの有用機能をたっぷり付けたOpenshiftのローカル検証用、優秀なGUIがついているもの。
商用運用はredhatのわかりにくく高い料金体系を考えないといけませんが、コンテナ初期学習において一番わかりやすいです。
ただ動作環境がかなり縛られているため、最初の初期構築で悩んでしまいます。
※低スペックPCで試してはいけない。
※現バージョンはvirtualBOXでは動きません。
- crcを使ったデプロイ例(S2Iデプロイ)
- 下記のようなカタログから自分の環境を選ぶ
- githubにソースをアップロード
- GUIの手順に従ってデプロイ
CRCはデプロイのみ考えると、こんなに簡単なんです。
基盤の設計はアーキテクトに詳しい人に任せてコンテナ開発をCRCを使って遊んでください。
商用利用は商用利用の時に考えればいい、コンテナのメリットを考えるなら一押し
最後に
コンテナの開発環境も各種クラウドマネージドサービスでたくさん出ています。そちらを使って最初からやる方法もありです。どのサービスでもいいので使いやすいのを使っていただければと思います。今回はあくまで費用の掛からないローカル環境での構築3つを上げさせていただきました。
コンテナ開発は一度きりの開発ではないため、初期の学習コストが低いからdockerで勉強したが、最終的にk8s環境の勉強をしないといけないという無駄勉強が発生することがあります。そうならないように注意してください。