コンテナまとめ #1

技術の流れで理解するコンテナ

  • 現在最も多く使われている製品を中心にLinux OSの流れを知る。
  • ★コンテナとコンテナオーケストレーションについて技術的な流れを知る。
  • Kubernetesがコンテナランタイムをどのように使うかを中心に流れを知る。

1. Linux OS

最初のOSとして有料のUnixがありましたが、無料のLinuxが登場し
Linuxをベースに多くのディストリビューションが作られている。

Debian Linuxはコミュニティ用ということで無料。
Redhat LinuxRedhatという会社が作り、有料。

上記二つのディストリビューションがOSインストールの主流であり、
Kubernetesをインストールする時も二つのディストリビューションでインストールガイドを提供しています。

Debianをベースに作ったディストリビューションであるubuntu(ui対応)
→無料で個人学習用やクラウドではUbuntuが多く使われている。
Red Hat社のRedhat Linux
→有料で企業ではRedhat系のLinuxが多く使われる。

レッドハットの配布プロセスは以下
開発(Fedora) -> 正式リリース (有料) (RHEL) -> 無料 (CentOS)

CentOSは無料だがメンテナンスサポートがない。
2024年を最後にサポート終了。

IBMに買収されてから、redhatの配布プロセスが以下のように変わる。

開発(Fedora) -> テスト配布(無料)(CentOS Stream) -> 正式リリース(有料)(RHEL)

従来からCentOSを使っていた環境の対応方法

  1. redhat linuxに切り替えて有料で使用。
  2. CentOSサポート終了後も技術サポートをしてくれる企業に依頼(CentOSをそのまま使用)
  3. 他のOSへの移行(スクリプト)(リスクあり)
  4. redhat linuxを複製して既存のCentOSのように無料配布版を提供するプロジェクトを利用。

全体図
まとめ

  1. 主に使うLinuxにはDebianRedhat系列があります。
  2. Kubernetesのインストールも大きく分けてこの2つの系列をサポートします。
  3. Redhat系の一つであるCentOSはもうすぐサポート終了を迎えます。
  4. Rocky LinuxCentOSの代替品の一つです。

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以外にも、モニタリングやロギング、そしてデプロイメントツールまで一つのパッケージでインストールしてくれる企業管理型製品もあります。

まとめ

  1. Kubernetesは様々な分野で活用されています。
  2. Kubernetesはコンテナをより簡単に使うことができます。
  3. コンテナはkubernetesとのインターフェースが重要です。

その他の記事を読む