オープンソース

Kubernetes〜コンテナ管理の課題を解決するOSS〜

Kubernetesとは、コンテナ型仮想化において、コンテナ化されたアプリケーションを管理するためのオープンソースソフトウェアです。Dockerコンテナ単体では、各コンテナのネットワーク情報や連携情報の管理に手間がかかるといった問題がありますが、Kubernetesを使うことで、これらの課題を解決することができます。本記事では、Kubernetesでできること、Kubernetesの関連ソフトウェア等について紹介します。

目次

コンテナ管理の課題

コンテナ型仮想化では、1台のサーバ上で複数のコンテナを実行します。それぞれのコンテナは、アプリケーションと、そのアプリケーションに必要なバイナリ・ライブラリだけが含まれ、まとめてパッケージ化されています。従来の仮想マシンを使った仮想化に比べて、コンテナ型仮想化の仕組みは、最低限のファイルサイズで実装することができるため非常に軽量で、効率的にリソースを使用することが可能です。

コンテナ型仮想化のイメージ

コンテナ型仮想化のイメージ

コンテナ型仮想化の実装の1つとして、docker社が開発しオープンソースとして公開している、Dockerがあります。Dockerコンテナを利用することで、完全仮想環境化に比べ、ディスクやメモリ消費量を少量で利用できます。またサービスの起動が高速でバージョン管理を容易に行うことができます。しかし、Dockerにはこうした様々なメリットがある一方で、以下のような課題もあげられます。

  • 自ホスト上のDockerコンテナの管理しかできない
  • ソフトウェア同士を連携させる場合、各Dockerコンテナ同士のネットワーク情報や、連携情報の管理に手間がかかる
  • ホストに障害が発生した場合の冗長性確保が難しい
  • 大量のDockerコンテナを全て監視しないといけない

Kubernetesは、ベースとなるコンテナの技術としてDockerを採用しています。Kubernetesを使用することで、以上のような問題を解決し、コンテナの長所を最大限に活用することができます。

Kubernetesとは

Kubernetesとは、コンテナのデプロイ、スケール、コンテナアプリケーションの管理を自動化するためのソフトウェアです。このような機能をもつツールはコンテナ・オーケストレーション・ツールと呼ばれ、Kubernetesはコンテナ・オーケストレーション・ツールのデファクトスタンダードです。なお、Kubernetesの読み方は「クーベネテス」、「クーベルネイティス」などと発音されています。ギリシャ語で「人生の道標」という意味があります。名前が長いことから短縮して「k8s」と表記されることもあります。

Kubernetesは、Googleによって開発されました。Googleが以前から利用していた、インターネットサービスを提供するためのマイクロサービス基盤の技術を、オープンソースソフトウェアとしてまとめて公開したものがKubernetesです。現在はCNCF(Cloud Native Computing Foundation)が中心となりKubernetesとその周辺ツールの開発、管理を行っています。

Kubernetesは、オンプレミスやプライベートクラウドの他に、パブリッククラウドでも利用することができます。以下のようなクラウドベンダーのサービスでも採用されています。

  • Google Cloud Platform:Google Kubernetes Engine
  • AWS:Amazon Elastic Kubernetes Service
  • Azure:Azure Kubernetes Service

Kubernetesの管理手法

Kubernetesは、以下のような特有の管理手法を用いて、Dockerコンテナの管理を行いやすくします。Kubernetesの特徴的な管理方法をご紹介します。

Podによるコンテナの管理

Dockerでは、それぞれ1つのコンテナに1つのアプリケーションが動作するようにコンテナ化することが推奨されています。そのため、単一ではなくいくつものコンテナを組み合わせて1つの機能を提供するような構成になることがほとんどです。Kubernetesでは、このようなコンテナのセットをPod(ポッド)として管理します。

Kubernetesのpodイメージ

Podは、KubernetesでDockerコンテナをまとめてサービス単位で管理するための最小単位で、コンテナの集合体です。コンテナをグループで管理することで使いにくさを解消します。

あらかじめPodを定義しておくことで、サービスの起動や停止をまとめて行うことができます。動作しているPodの管理は、GUIとコマンドラインの両方で行うことが可能です。またKubernetesでは、kubectlコマンドを使って、コマンドラインからPodの制御や確認、削除を行うことができます。

レプリカセット

レプリカセット(ReplicaSet)とは、Kubernetesが複数のPodの複製を自動的にデプロイする機能です。例えば、レプリカ数に3を設定して起動すると、Kubernetesは同じ機能のPodを3つ自動的に配置します。この機能をうまく使うことで、万一コンテナに問題があり停止してしまった場合にも、Kubernetesが自動的にコンテナを起動します。

また、実際にKubernetesでレプリカセットを作成するには、デプロイメント(deployment)という機能を利用します。デプロイメントは、名称の通りKubernetes上に必要な数のレプリカを配置することです。デプロイメントを行うためにマニュフェストファイルを準備します。

ボリューム管理

Kubernetesでは、コンテナに一時的なストレージ領域を割り当てて提供します。このストレージ領域は、コンテナの起動中のみ有効で、コンテナを再起動すると再割り当てされます。そのためKubernetesでは、この一時的なコンテナのストレージとは別に永続ストレージを管理します。永続ストレージは、コンテナにマウントして利用することができます。Kubernetesのストレージは、コンテナが動作するすべてのノードから共有できる必要があります。そのため、NFS、Ceph、DRBD-SDSなどのストレージが使われます。

Kubernetesの永続ストレージのイメージ

永続ストレージのイメージ

Kubernetesでは同じDockerコンテナを別々のノードで動作させることができるため、冗長性が担保され、ホストが停止した場合の影響を最小限にすることができます。永続ストレージを利用する場合には、必ずデータの冗長化を考慮する必要があります。

リソース管理

機械学習基盤向けにKubernetesを利用する場合には、貴重なGPUなどのリソースを細かく管理する必要があります。Kubernetesでは、コンテナに割り当てるCPUやメモリなどのリソース量を取得し、細かくコントロールすることができます。コンテナで利用しているリソースは、Kubernetesのリソースモニターによって確認することができます。リソースモニターの機能はアドオンで実装されていて、Prometheusなどの拡張機能が公開されています。また、Kubernetesの管理用ダッシュボードからもリソースを確認することができます。

ジョブ管理

Kubernetes上では、WEBサーバーやデータベースなどの常駐型のサービスだけでなく、一時的な処理や計算にも適用することもできます。このような処理を行うコンテナのリソースは、Jobと呼ばれています。Jobによって動作したPodは、処理結果を取り出して分析することができるように、処理が終了した後も削除されずに保持されます。また、CronJobでは、定期的にジョブを実行することもできます。

ログ管理

Dockerでは、コンテナがイベントにより出力するログは、標準エラー出力に表示されます。そして、この情報はDocker側で管理します。Kubernetesでは、このログを安全に運用するため、独立したストレージで集中管理するようになっています。また、Kubernetesで用意されているDaemonSetというリソースを利用して、大量のログを管理する手法も使われます。DaemonSetを使うとKubernetesの各ノードに1つのコンテナを起動しておくことができます。それらの機能を使って、Fluentdでログを収集し、ElasticsearchやGraylogなどでデータを収集、解析、保存し、高速に検索するようなシステムを作ることができます。

サービス管理

クラスタ内でコンテナが利用するIPアドレスやポートは、サービスとして定義します。ロードバランササービスと連携することでサービス用IPと内部IPを関連付け、外部からコンテナサービスにアクセスできるよう定義することができます。

ユーザ管理とマルチテナントでの利用

コンテナの仮想マシン空間を複数のセキュリティ的に独立したネームスペースに分離して管理することができます。この機能によって、コンテナ仮想基盤をマルチテナントで利用することができます。部署やチームごとに管理者を分けたり、ホスティングサーバのようにサブスクライビングすることも可能です。ネームスペース毎にリソース制限を設定することもできます。

また、ロールベースのアクセス制御(RBAC:Role Base Access Control)にも対応しており、利用するユーザやネームスペースに割り当てる権限を調整することもできます。例えば、サポート担当のエンジニアにはコンテナの状態を確認するだけの権限を与えたり、アプリケーション開発者にはコンテナを実行できる権限を与えるなど、ログインしたユーザによって個別に役割を定義することができます。なお、ユーザ認証には証明書認証も利用することができます。

ダッシュボード

Kubernetesには、視覚的にコンテナを管理できるように、管理用のダッシュボードが用意されています。ダッシュボードでは、Podの管理や、コンソールでの操作が可能になります。主に、次のようなことができます。

  • Kubernetesで管理しているリソースの状況の確認
  • Webフォームでのコンテナの設定
  • 動作しているPodやコンテナの管理・操作
  • ログの管理

ダッシュボードのリソース状態管理

ダッシュボードのリソース状態管理

ただし、ダッシュボードでは、Kubernetesの操作はYamlフォーマットで行わなければならず、あまり直観的に管理をすることができません。最近では、後述するRancharが、より高機能なWeb管理画面として注目されています。

Kubernetesの6つのメリット

Kubernetesが持つ主なメリットには次のようなものがあります。

アップデートのリスクを低減

コンテナを複製することで容易に検証環境を作成できます。つまり、本番と全く同じ環境での動作確認を行うことが可能です。また、デプロイメントはコンテナに行われた更新の履歴を管理しているため、簡単に元のバージョンに戻すことができます。

実際の運用では、単独のDockerコンテナだけで運用しているわけではないので、より複雑な手順が必要になります。複数のDockerコンテナがデプロイメントで動作している場合、Kubernetesはデプロイメント内のPod数を維持しようとします。通常は、Pod数は設定した上限数を超えることができません。そのため、入れ替え用の新しいPodを起動する際は、別のデプロイメントを用意してデプロイメント全体を入れ替えたり、デプロイメント内のPodの最大値を一時的に増やし、新しいPodを起動しながら順次入れ替えたりする必要があります。

ネットワークを仮想化しホスト間で通信

Dockerには、コンテナを自ホスト上でしか管理できないという課題があります。Kubernetesを活用することで、複数のノードで構成されている環境を1つの実行環境のように扱うことができます。そうすることで、別のホストにあるコンテナもまとめて管理できます。

コンテナのスケジューリング

CPUやメモリの状態を見て、自動的に適切なホストを選択してコンテナを起動します。起動するコンテナの数も容易に指定できます。

コンテナのオートスケール

サービスを分散する機能として、HorizontalPodAutoscalerとVerticalPodAutoscalerの2つのオートスケールの仕組みを持っています。orizontalPodAutoscalerは、CPUやメモリの利用状況によって、Podのレプリカ数を自動的にスケーリングします。VerticalAutoscalerは、CPUやメモリの利用状況に合わせて、割り当てるリソースの量を自動的にスケーリングします。

セルフヒーリングによる高い耐障害性

Kubernetesは、常にコンテナの状態を監視しています。そして、万が一コンテナのプロセスが停止した場合、コンテナを起動し、自己修復します。そのため、ノード障害が起きたり、ノード退避などを行ったりしても、サービスを継続できます。

Kubernetesのセルフヒーリング画像

YAML形式のファイルでリソースを管理

PodやレプリカセットなどのリソースはYAML形式のファイルで定義します。YAMLファイルの書式はKubernetesのAPIによって定義されています。ファイルでソフトウェアの相関を定義するため、このファイルがあればどのKubernetes上でも同じシステムを構築できます。

KubernetesとDockerの歴史

KubernetesやDockerで注目されているコンテナ型仮想化は、長い間に渡って様々な方法で実現の試みがされてきました。もっとも古いのはchrootの技術で、1970年代のUNIXに遡ります。その後、より独立した仮想マシンを実現できるように様々な試みが行われてきました。2000年代には、RedHatが開発したOpenVZ、Solaris ZONEなど、いくつかの実装が公開されましたが、欠点も多く普及しませんでした。

しかし、2008年にLinuxカーネルにcgroupというリソース管理の機能が実装されたことをきっかけに、コンテナ型仮想化に必要な技術が確立し、その後はめざましく進歩するようになります。

Dockerのリリース

dotCloud社(現Docker社)は、2013年にDockerを公開しました。当初は同じコンテナ型仮想化のLXCをベースに開発されていて、不安定だったと言われています。しかし、2014年にlibcontainerを利用するように改修されてから安定しました。

Dockerは、使いやすいGUIを提供し、また集中管理を行うことができるという部分で注目されました。また、アプリケーションのデプロイのしやすさや、コンテナのポータビリティなどから、ソフトウェア開発者の間で注目されました。さらに、2015年には、Docker、CoreOS、マイクロソフト、RedHat、VMWareなどが、オープンコンテナイニシアティブ(OCI)を発足し、標準化が始まりました。このような商業的な動きもあり、一気に標準的なコンテナ技術として使われるようになってきています。

しかし、一方で、次のような点で課題を抱えていました。

  • 自ホスト上のコンテナの管理しかできない
  • ソフトウェア同士を連携させる場合、各コンテナ同士のネットワーク情報や、連携情報の管理に手間がかかる
  • ホストに障害が発生した場合の冗長性確保が難しい
  • 大量のコンテナを全て監視しないといけない

Kubernetesのリリース

Kubernetesは、Googleによって開発され、2014年にApache License Version 2.0のもとでオープンソースソフトウェアとして公開されました。Kubernetesは、前述したDockerの課題のほとんどを解決することができるため、注目されました。2015年7月には、Kubernetes v1.0が公開され、その後も、管理コマンドの拡充やスケーラビリティの強化などが行われています。2017年には、Dockerが正式にKubernetesをサポートすることを表明しています。

Kubernetesの標準化動向

Kubernetesは、2014年にGoogleによって公開されました。また、2015年には、Docker、CoreOS、マイクロソフト、RedHat、VMWareなどが、オープンコンテナイニシアティブ(OCI)を発足し、標準化が始まりました。2017年に策定されたOCI v1.0では、次の2つの仕様を作成しました。

  • コンテナのランタイムに関する仕様(Open Container Initiative Runtime Specification)
  • コンテナイメージフォーマットに関する仕様(Open Container Initiative Image Format Specification)

その結果、これまでDockerが担ってきた役割が、下図のようないくつかの要素に分割され、Kubernetesの動作環境は大きく変化しています。Docker社はDockerのCRIの機能を切り出して、Linux Foundationの傘下にあるCNCF(Cloud Native Computing Foundation)に寄贈しました。そして、2018年1月に、Kubernetesの管理もCNCFに移管され、現在に至ります。

従来のDockerとKubernetesの関係

【従来の関係】

分割されたDockerとKubernetesの関係

【分割された関係】

CNCFは、2018年5月にはCRIの機能をcontainred v1.1として正式リリースしています。また、2019年には、KubernetesやDockerで、高レベルなランタイムであるcontainerdの利用が標準になりました。こうした高レベルのランタイム、低レベルのランタイムの実装に伴い、KubernetesはDockerコマンドがなくても動作するようになりました。containerdをベースにしたKubernetesでは、従来通りDockerコンテナを利用することができます。

高レベルのランタイム

高レベルのランタイムは、CRIに基づいてKubernetesからコンテナに関する処理を引き受けます。具体的には、次のような機能を持っています。

  • コンテナの管理
  • コンテナイメージの管理
  • コンテナレジストリからのイメージのダウンロード

高レベルのランタイムの実装としては、containerdCRI-Orktなどがあります。

低レベルのランタイム

OCI Runtime Specificationによって規定されたランタイムです。低レベルのランタイムは、カーネルの機能を使ってコンテナに必要な独立した環境を用意し、実際にコンテナを動作させる役割を担っています。

低レベルのランタイムの実装としては、runcgVisorKata Containerなどがあります。

Kubernetesの関連ソフトウェア

Kubernetesには、以下のような関連ソフトウェアが公開されています。

Kubernetesの管理

コンテナのオーケストレーションツールとして、デファクトスタンダードの地位を確立していますが、理解することや使いこなすには専門的な知識が必要となります。それを解決するKubernetesの管理ソフトウェアが公開されています。

Rancher

Rancherとは、コンテナ管理の利便性を向上させることができるプラットフォームのオープンソースソフトウェアです。通常、コマンド操作が必要で煩雑な作業となるKubernetesの管理ですが、Rancherを使うことで、WebUI上で管理をすることができます。例えば、Kubernetesのバージョン指定やCNIプラグインの選択など、Kubernetesクラスタ構築時のオプションを指定することができます。また、既存のKubernetesクラスタをインポートして、Kubernetesクラスタの追加・削除・変更などをRancherで管理することも可能になります。Pod等のKubernetesリソースの管理も可能です。

Portainer

Portainerとは、コンテナを管理するオープンソースのGUIツールです。仮想化を実現できるソフトウェアであるDocker、Kubernetes、Nomadをサポートしています。Portainerを利用することで、ウェブインタフェースからコンテナを簡単に構成、監視することができます。
Kubernetesでも管理用のダッシュボードが用意されていますが、Kubernetesの場合、最低3~5台のコンテナ実行環境が必要となります。一方、Portainerでは、1台のサーバしか利用しない小規模のシステムにも対応しているというメリットがあります。

コンテナのプロジェクト管理

コンテナを使用したシステムを開始する時、コンテナのイメージをどこに管理するかを決める必要があります。1つのイメージを使って複数のサーバでコンテナを起動したり、新しいイメージを作成したりする場合に、イメージをどのように管理するのかがコンテナ運用の重要なポイントとなります。

GitLab

GitLabは、レジストリと呼ばれるコンテナのイメージを管理するオープンソースソフトウェアです。組織内にプライベートコンテナレジストリを構築することができます。Docker-HUBではプライベートなレジストリの作成が有償となっているため、公開したくないコンテナイメージを管理する場合は、GitLabを使うと便利です。特にオンプレミス向けのKubernetesの環境を作成する場合には、ぜひ準備したいおすすめのツールです。その他にも、プロジェクト計画、ソースコード管理、CI/CD、監視、セキュリティ、ドキュメント管理等の機能があります。

コンテナのセキュリティ

コンテナ型仮想化は、サーバ仮想化と比べると非常に効率よく運用することが可能です。しかし、コンテナイメージ内には不正なプログラムや脆弱性が含まれる場合があります。そこでセキュリティを高めるために侵入・改ざん検知や脆弱性を見つけ、対策する必要があります。

Falco

Falcoは、コンテナの侵入・改ざん検知を行うオープンソースソフトウェアです。動作中のコンテナ内のイベントを検知して、アラートを送信することができます。Falcoは、ホストOSまたはKubernetes環境にデプロイすることで利用できるため、導入が比較的簡単におこなえます。また診断対象のコンテナに手を入れる必要もありません。

Trivy

Trivyとは、コンテナイメージの脆弱性診断ツールです。TrivyはCIなどでも簡単に組み込んで使用できるようにシンプルに作られています。また、他のスキャナーとは異なり、OSパッケージと言語固有の依存関係の両方をカバーし、組織のソフトウェア開発パイプラインに容易に統合することが可能です。

Vuls

Vulsもオープンソースソフトウェアの脆弱性診断ツールです。さまざまなソフトウェアの脆弱性診断を行うことができますが、コンテナの脆弱性診断にも対応しています。対象のサーバにエージェントをインストールする必要はなく、SSHで接続して脆弱性診断をおこないます。Vulsは、LinuxのOSパッケージに存在する脆弱性やOSパッケージ対象外のミドルウェアを確認することができます。

Kubernetesの限定環境

Kubernetesは、比較的大規模なシステムになってしまうため、学習環境や開発環境を作成するのが複雑で難しいという問題を抱えていました。そのため、試験的にKubernetesを利用したい場合などのために、小規模なKubernetes環境のパッケージがいくつか公開されています。これらのパッケージを利用すると、1台のPC上に小規模なKubernetes環境を作成することができます。

Minikube

Minikubeは、小規模なKubernetes環境を作成するために作られました。1台のPC上に、仮想的に環境を構築することができます。Minikubeは、Windows上でもLinux上でもインストールできます。ただし、動作にはVirtualBoxやKVMなどのハイパーバイザーが必要です。

現在、ハイパーバイザーを利用せずにMinikubeを動作させるための開発が行われていますが、まだ実験段階とされています。Minikubeでは、ランタイムを切り替えて使うことができます。

Microk8s

Microk8sも、小規模なKubernetes環境を作成するために作られました。環境に依存しないパッケージを配布し、管理するための仕組みであるSnappyを使って配布されています。Minikubeとは違い、ハイパーバイザーは不要です。Kubernetesとともに利用することが多いレジストリやストレージなどのツールも内包されていて、簡単に有効化できるのが特徴です。Microk8sでは、containerd、runcをランタイムとして使っています。

デージーネットの取り組み

デージーネットでは、Kubernetesを活用したIot開発基盤を構築しています。オンプレミスでIot開発基盤を構築することで、一定のコストで継続的につかえるIot構築基盤を実現することができます。また、導入を考えているお客様へ構築のコンサルティングも行っています。Kubernetes調査報告書にはログインや詳細情報など記載しています。

デージーネットでは、システム構築サービスを提供したお客様には、導入後支援サービスとして、Open Smart Assistanceを提供しています。Q&A対応、セキュリティ情報提供、障害調査、障害回避、障害時オンサイト対応、障害時システム再構築などがあります。これは、ソフトウェア単体のサポートではなく、Linuxなどを含むシステム全体に対するサポートです。

また、導入を簡易化するため、『コンテナスターターサービス』を提供しています。このサービスでは、oVirtなどの仮想化技術と組み合わせて、最小2台のハードウェア上にKubernetesクラスタを構築します。また、Ranchar、Gitlab、ロードバランサのサービスなど、必要な基本ソフトウェアを組み込んで提供します。また、障害時のサポートや年2回のアップデートサービスなどの運用、保守サービスもセットで提供します。

OSSのKubernetes「構築事例/情報の一覧」

Docker〜コンテナ型仮想化〜

Docker_OSS情報

Dockerとは、docker社が開発しているコンテナ型仮想化の実装の1つです。オープンソースソフトウェアとして公開されていて、コンテナ型仮想化としては、事実上のデファクトスタンダードと呼ばれています。

Vuls〜OSSの脆弱性検知ツール〜

Vuls_OSS情報

Vulsとは「VULnerability Scanner」の略称で、LinuxやFreeBSDを対象にした脆弱性診断ツールです。

Portainer〜OSSのコンテナ管理GUI〜

Portainer_OSS情報

Portainerとは、Docker等のコンテナを管理するGUIツールです。コンテナ型仮想化を実現できるソフトウェアDocker、Kubernetes、Nomadをサポートしており、コンテナを簡単に構成、監視することができます。

IoT開発基盤構築でのKubernetes活用構築事例

Kubernetes活用構築事例

IoT開発基盤構築にKubernetesを活用しました。これまで、プロジェクト単位でクラウドを契約していましたが、以前よりも多くの部門がIoTを扱うようになりました。IoT開発基盤では大量のデータを扱います。そのため、クラウドを利用するコストメリットが薄れてしまいました。そこで、オンプレミスで大容量のIoT開発基盤を構築し、一定のコストで継続的に使えるIoT開発基盤を実現しました。

Kubernetesを使用したコンテナシステム導入支援事例

Kubernetesを使用したコンテナシステム導入支援事例

各拠点で使用するアプリケーションを効率よく配信するシステムを検討されていました。アプリケーションをコンテナ化し、Kubernetesを利用してアプリケーション配信を行うことが決まっていましたが、実際にどのようにシステムを設計・構築してくかを支援してほしいというご要望をいただきました。コンサルでは、DockerやKubernetesの概要や利用することのメリット、システムの構成のご説明、ハンズオンによる操作方法の説明等を行いました。

仮想化で使えるオープンソースソフトウェアとは?比較20選

仮想化ソフト比較

仮想化環境を構築すると、物理リソースの削減による社内スペースの確保、リソースの効率的な管理、運用コストの削減などが実現できます。この記事では、仮想化に関連したソフトウェアを、4つのカテゴリでご紹介します。

Kubernetes調査報告書

無料資料ダウンロード(Kubernetes)

Kubernetesは、コンテナを管理するためのソフトウェアです。コンテナ間のネットワーク制御や監視、異常時のセルフヒーリング機能などがあります。本書では基本的な概念と使い方を紹介しています。

Rancher調査報告書

無料資料ダウンロード(Rancher)

Rancherは、Kubernetes環境の管理をするためのソフトウェアです。Kubernetesリソースの管理をWEBインターフェースから行うことができます。本書は、Rancherについての調査報告書です。

Falco調査報告書

無料資料ダウンロード(Falco)

Falcoは、Sysdig.inc社によって開発されたセキュリティソフトウェアです。特にKubernetesを代表するコンテナ環境をターゲットに開発されています。本書は、Kubernetes等コンテナ環境のランタイムセキュリティソフトウェアであるFalcoの調査報告書です。

Trivy調査報告書

無料資料ダウンロード(Trivy)

Trivyは、コンテナイメージの脆弱性診断ツールです。もともとは日本国内で個人が開発しOSSとして公開したツールでした。本書は、コンテナイメージの脆弱性診断ツールTrivyの調査報告書です。

Vuls調査報告書 1.01版

無料資料ダウンロード(Vuls)

Vuls(VULnerability Scanner)は、オープンソースソフトウェアの脆弱性診断ツールです。Vulsはgolangで作成されており、LinuxやFreeBSDで動作します。本書は、Vulsの機能と使用方法について調査した内容をまとめたものです。

デモのお申込み

もっと使い方が知りたい方へ
Kubernetesの操作方法や操作性をデモにてご確認いただけます。使い方のイメージを把握したい、使えるか判断したい場合にご活用下さい。デモをご希望の方は、下記よりお申込みいただけます。


デモをご希望の方

デモの申し込みイメージ


OSS情報

Kubernetes〜コンテナ管理の課題を解決するOSS〜
ここでは、コンテナの管理を自動化するためのソフトウェア「Kubernetes」を紹介します。
クラスタの構築
ここでは、CentOS7に最小限のクラスターを構築する方法について説明いたします。
Pod機能
ここではPod機能について説明いたします。
レプリカセットとデプロイメント
ここではデプロイメントという機能を利用してレプリカセットを作成する方法について説明いたします。
アーキテクチャ
ここではアーキテクチャについて説明いたします。
コンテナのアップデート
ここでは、コンテナをアップデートする場合の手法について説明いたします。
ローリングアップデート
ここでは、ローリングアップデート機能について説明いたします。
ダッシュボード
ここでは管理用のダッシュボードについて説明いたします。
永続ストレージ
ここでは永続ストレージについて説明いたします。
Rancher〜Kubernetesの管理ソフトウェア〜
ここでは、Kubernetesの管理ソフトウェアのRancherについて紹介します。
GitLab〜Dockerのプロジェクト管理とレジストリ〜
GitLabは、GitHubと同様の機能を提供するプロジェクト管理ツールで、コンテナのコード管理とレポジトリマネージャの機能を提供します。ここではGitLabのコンテナレジストリについて説明いたします。
DRBD-SDS
ここではDRBD-SDSを利用してコンテナサービスの冗長化を実現させる手法について説明いたします。
Falco〜コンテナの侵入・改ざん検知ツール〜
ここではKubernetesを代表するコンテナ環境をターゲットにしているコンテナランタイムセキュリティソフトウェアのFalcoについて説明いたします。
Trivy〜コンテナイメージの脆弱性診断ツール〜
Trivyは、コンテナイメージの脆弱性診断ツールです。ここではTrivyの機能や特徴などについて説明いたします。
コンテナ型仮想化に関連したOSS
ここでは、コンテナ型仮想化に関連したOSSを紹介いたします。

Kubernetes〜コンテナ管理の課題を解決するOSS〜の先頭へ