.NET 開発基盤部会 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

  • コンテナの標準仕様が色々策定されている。
  • DockerKubernetes隆盛のバックグラウンド

詳細

CRI(Container Runtime Interface)

コンテナ・オーケストレーション・ツールとコンテナランタイムの間のI/Fの標準仕様

  • kubeletとが通信するためのインターフェースを規定
  • 2016年12月にKubernetes 1.5のαリリースでAPIが実装された。
  • これにより、コンテナランタイムをコンパチできるようになった。
  • OpenShiftは、CRI-O をv4.0からデフォルトに採用する予定。

OCI(Open Container Initiative)

  • 「コンテナ」のフォーマット・ランタイムの標準化
    を目的として設立されたイニシアチブ(組織)である。
  • Linux Foundationプロジェクトの1つ。

Runtime Specification

コンテナランタイムの標準仕様

  • Linuxコンテナの標準仕様
    • Default Filesystem
    • Namespace
    • cgropus
    • など
  • Linuxコンテナ以外の標準仕様
    • Solaris
    • Windows
    • Virtual Machine

Image Format Specification

コンテナイメージの標準仕様

  • Image Manifest
  • Image Index
  • Image Layout
  • Filesystem Layout
  • Image Configuration

Distribution Specification

コンテナイメージ配布の標準仕様

※ 仕様の策定が止まっている?

CSI(Container Storage Interface)

概要

コンテナ・オーケストレーション・ツールとストレージの間のI/Fの標準仕様

  • 2018年11月にv1.0に到達
  • 外部ストレージを開発するベンダーが独立に
    ストレージ側の機能追加や修正を行えることを目指す。

コンテナ・オーケストレーション・ツール側

3つのサイドカーコンテナを提供する必要がある。

CSIエンドポイントに対して

  • external-attacher
    VolumeAttachment?オブジェクトを監視し、
    ボリュームをノードにアタッチする命令を行う。
  • external-provisoner
    PersistentVolumeClaim?オブジェクトを監視し、
    ボリューム作成や削除の命令を行う。
  • driver-register
  • CSI driverをkubeletに登録する。
  • CSI driverとは
    • コントローラ・ドライバとノード・ドライバ、製品個別CSPを実装。
    • 機能:アタッチ・デタッチ、プロビジョン、マウント、ワークフローアロケーション

ストレージ・ベンダー側

コンテナ・オーケストレーション・ツールの
問い合わせに対応3つのサービスを実装する必要がある。

  • Identity Service
    Capability/Health/その他メタデータなどの問い合わせを行う機能を実装。
  • Controller Service
    ボリュームやスナップショットの作成・削除・一覧表示を行う機能を実装。
  • Node Service
    ボリュームをマウントする際に呼び出される機能を実装。

CNI(Container Network Interface)

概要と動作原理

  • コンテナがネットワークに接続するI/Fの標準仕様とリファレンス・プラグインを提供
  • CNCF(Cloud Native Computing Foundation)にホストされたプロジェクトの一つ。
  • 動作原理
    • JSONフォーマットのネットワーク設定が標準入力とする。
    • ネットワーク設定が環境変数としてプラグインへ渡される。
    • ブラグインが渡された情報に基づいて命令を実行する。

サポートすべきオペレーション

  • ADD
    コンテナをネットワークへ追加
  • DEL
    コンテナをネットワークから削除
  • CHECK
    コンテナのネットワークをチェック
  • VERSION
    バージョンの確認

渡されるネットワーク設定

  • cniVersion
    CNI Specificationのバージョン
  • name
    ネットワーク名
  • type
    実行するプラグインのファイル名
  • args
    コンテナランタイムより与えられる追加情報
  • ipMasq
    IPマスカレードの設定
  • ipam
    IPAM設定のための情報
  • type
    実行するIPAMプラグインのファイル名
  • dns
    DNS設定のための情報
  • name servers
    DNSネームサーバのリスト
  • domain
    ローカルドメインの指定
  • search
    サーチドメインのリスト
  • options
    リゾルバに渡すオプションのリスト

代表的なプラグイン

Flannel

Calico

その他

参考

Wikipedia

Qiita


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2020-09-30 (水) 19:31:46 (31d)