ArtifactoryとHelm 3でOCIをKubernetesに導く

JFrog Artifactoryの最新リリースでKubernetesの世界が大きくなりました。ArtifactoryのDocker registryがOpen Container Initiative(OCI)に準拠しました。OCIと互換性のあるイメージのリポジトリとHelm 3クライアントのサポートにより、K8sを高い汎用性で実行できるようになりました。

Dockerに依存せず、OCI互換のクライアントを使ってコンテナエコシステムの一部またはすべてが実行できます。そして自分のニーズに最も適したコンテナ・ランタイムインターフェース(CRI)を利用し、Kubernetesを実行することができます。

OCIとは?

Open Container Initiativeコンテナのオープンスタンダードを設計するLinux Foundationプロジェクトです。これらの標準はコンテナのイメージファイルのイメージ仕様(image-spec)とそれらのイメージをコンテナとして実行するためのランタイム仕様(run-time-spec)に分かれています。

Dockerはプロジェクトのメンバーであり、OCI仕様を使用していますがイメージレイアウトや異なる実行時の動作に関する追加の要件を規定しています。

これは多くのKubernetesエコシステムがDockerを利用して実行していますが、runcや軽量なcri-oランタイム、セキュリティを重視したrktのようなOCI互換のCRIを使うことができることを意味しています。

Artifactoryの新機能

Artifactory 7.11.1のリリースはこれらの機能が含まれており、コンテナとKubernetesエコシステムとの適応性を向上することができます。

ネイティブOCIイメージのサポート

ArtifactoryはOCIイメージをDockerイメージと対等に扱い、OCI対応クライアントを利用してOCIイメージをDockerレジストリにプッシュすることができます。

OCIイメージはArtifactoryにネイティブに保存されます – OCIイメージのDockerへの変換は行われません。イメージは以下のようなOCIクライアントを介して、そのままDockerレジストリにプッシュすることができます:

  • containerd – CNCFプロジェクトとして制作されたクライアント
  • podman – containersが保守するOSSポッドマネージャー・クライアント
  • ORAS – Microsoftが独自に開発したOCIレジストリをストレージとして使用するプロジェクト

Helm 3サポート

Artifactory HelmレジストリはHelm 3クライアントをサポートします。

Helm 3はTillerの削除によるセキュリティモデル、パッチのマージによる包括的なアップグレード戦略など、いくつかの改善と簡素化が行われています。

Helm 3のchartフォーマットも依存関係のrequirements.yaml仕様をメインのchart.yamlファイルに統合することで簡素化されています。

はじめる

すでにDockerやHelmのレジストリにArtifactoryを使用している場合はArtifactoryをアップグレードし、ユニバーサル・リポジトリマネージャーを利用してOCIイメージやHelm 3のchartを含むように用途を拡大することが簡単にできます。

まだArtifactoryを利用していない場合は容易に無料のクラウドアカウントで開始して、コンテナ管理を行うことができます。