技術の流れで理解するコンテナ
- 現在最も多く使われている製品を中心にLinux OSの流れを知る。
- ★コンテナとコンテナオーケストレーションについて技術的な流れを知る。
- Kubernetesがコンテナランタイムをどのように使うかを中心に流れを知る。
1. Linux OS
最初のOSとして有料のUnixがありましたが、無料のLinuxが登場し
Linuxをベースに多くのディストリビューションが作られている。
Debian Linuxはコミュニティ用ということで無料。
Redhat LinuxはRedhatという会社が作り、有料。
上記二つのディストリビューションがOSインストールの主流であり、
Kubernetesをインストールする時も二つのディストリビューションでインストールガイドを提供しています。
Debianをベースに作ったディストリビューションであるubuntu(ui対応)
→無料で個人学習用やクラウドではUbuntuが多く使われている。
Red Hat社のRedhat Linux
→有料で企業ではRedhat系のLinuxが多く使われる。
レッドハットの配布プロセスは以下
開発(Fedora) -> 正式リリース (有料) (RHEL) -> 無料 (CentOS)
CentOSは無料だがメンテナンスサポートがない。
2024年を最後にサポート終了。
IBMに買収されてから、redhatの配布プロセスが以下のように変わる。
開発(Fedora) -> テスト配布(無料)(CentOS Stream) -> 正式リリース(有料)(RHEL)
従来からCentOSを使っていた環境の対応方法
- redhat linuxに切り替えて有料で使用。
- CentOSサポート終了後も技術サポートをしてくれる企業に依頼(CentOSをそのまま使用)
- 他のOSへの移行(スクリプト)(リスクあり)
- redhat linuxを複製して既存のCentOSのように無料配布版を提供するプロジェクトを利用。
全体図
まとめ
- 主に使うLinuxにはDebianとRedhat系列があります。
- Kubernetesのインストールも大きく分けてこの2つの系列をサポートします。
- Redhat系の一つであるCentOSはもうすぐサポート終了を迎えます。
- Rocky LinuxはCentOSの代替品の一つです。
2. Container
Linuxの発展に伴い、内部コア技術の一つである隔離技術が発展。
chroot、cgroup、namespaceカーネルレベルの技術を集約してまとめたのがLXC(LinuxContainer)
LXCをベースに作られたDocker(使いやすい)
rkt (rocket container) : dockerがセキュリティに弱い点を攻略するため、安定的なコンテナとして新しく登場。
- Dockerはroot権限でインストールする必要があった。
- Dockerではrootlessインストールモードが追加され、セキュリティが強化された。
代表的なコンテナ
- docker : k8sとの互換性が悪かったが、MIRANTISに買収されてk8sのインターフェースに合わせてる。
- containerd : Dockerからコンテナ機能だけ分離されたプロジェクト (CNCF Graduated Project)
- cri-o : RedHat が作ったコンテナ (CNCF Incubating Project)
Kubernetesがコンテナランタイムを勝手に操作してくれるので、コンテナを直接扱うことが少なくなっている。
→コンテナがkubernetesのインターフェースと合うかどうかが重要になります。
Kubernetes以外にも、モニタリングやロギング、そしてデプロイメントツールまで一つのパッケージでインストールしてくれる企業管理型製品もあります。
まとめ
- Kubernetesは様々な分野で活用されています。
- Kubernetesはコンテナをより簡単に使うことができます。
- コンテナはkubernetesとのインターフェースが重要です。