Linux
 Computer >> コンピューター >  >> システム >> Linux

Container Linuxとは何ですか?それを使用する必要がありますか?

Linuxオペレーティングシステムにはさまざまな種類があります。 UbuntuなどのLinuxオペレーティングシステムはかなり一般的ですが、それでも他のオペレーティングシステムはニッチをターゲットにしています。セキュリティ指向のKaliLinuxがあります。 Xubuntu、さらにはHannah Montana Linux(!)などの軽量ディストリビューション。デスクトップで使用する場合は、バニラLinuxオペレーティングシステムが適切に機能します。ただし、サーバーの実行などの特殊なタスクの場合は、カスタマイズされたバージョンを見つけるのが最善です。

コンテナはますます人気があります。以前はCoreOSと呼ばれていたContainerLinuxは、単純なコンテナー化されたデプロイメント用に設計されたLinuxオペレーティングシステムです。これは、最新のニッチなLinuxオペレーティングシステムの1つです。この概要を確認し、ContainerLinuxを実際に見てください。

Container Linuxの実践:背景知識

Container Linuxに飛び込む前に、サーバーアーキテクチャの概要から始めましょう。 Container Linuxは、クラスター化されたデプロイメント用に設計されています。クラスター化されたデプロイメントは非常に複雑に聞こえますが、かなり単純です。基本的に、コンピュータークラスターは、連携して動作する複数のサーバーで構成されます。したがって、それらは複数ではなく、1つのユニットまたはシステムとして機能します。さらに、クラスター内のコンピューターは、同じ機能を実行するノードまたはサーバーを備えています。つまり、ノードは単一のマシンであり、クラスターは連携して動作するサーバーのグループです。

最も一般的なContainerLinuxのデプロイメントは、クラスター環境内にあります。以前はCoreOSと呼ばれていたディストリビューションには、1台のマシンからクラスターを起動する手段も含まれています。ただし、Container Linuxの特徴は、コンテナーへの依存です。

従来のデスクトップオペレーティングシステムとは異なり、すべてのアプリケーションはコンテナで実行されます。仮想マシン(VM)とコンテナーの両方が仮想化方式を使用しますが、コンテナーは異なります。 VMとは異なり、コンテナはホストマシンと同じオペレーティングシステムカーネルを利用します。コンテナー化されたアプリとホストマシンは同じカーネルを使用するため、コンテナーの展開は効率の向上から恩恵を受けます。仮想マシン構成では、各VMはアプリとゲストオペレーティングシステムを実行します。これは、ホストオペレーティングシステムとハードウェア上で実行されます。

代わりに、コンテナー化されたデプロイメントは、仮想化ソフトウェアの上にある独自のコンテナーでアプリを実行します。 Dockerは依然として最も人気のあるコンテナソフトウェアですが、chroot、LXC、Linux-VServerはDockerの代替ソフトウェアの1つです。

Container Linuxの実践:なぜコンテナを使用するのですか?

OK、コンテナは仮想化の方法です。なぜコンテナ化された環境を選ぶのですか?通常、コンテナはパフォーマンスを向上させます。個別のオペレーティングシステムを避け、代わりに共有カーネルを使用することで、CPU、ストレージ、およびメモリの効率を最大化します。

VM構成の場合のように複数のオペレーティングシステムインスタンスを実行する必要がないため、より多くのコンテナを実行できます。パフォーマンスの向上は、単一のオペレーティングシステムの必要性に由来します。同様に、仮想マシン環境よりも高速にコンテナを作成できます。したがって、コンテナは敏捷性を維持し、継続的デリバリーと継続的インテグレーションを可能にするのにより適しています。

アジャイル開発は、反復と予測不可能性の考慮に集中します。アジャイル哲学のさらなる洞察については、アジャイルマニフェストを読むことができます。ただし、コンテナの利点にもかかわらず、完全な仮想化方法ではありません。コンテナはホストオペレーティングシステムカーネルを共有するため、セキュリティ上のリスクがあります。コンテナに影響を与える脆弱性または違反は、オペレーティングシステムにアクセスできます。ただし、仮想マシン内のオペレーティングシステムでコンテナ化されたアプリを実行する回避策があります。これにより、ホストマシンのオペレーティングシステムが単一のコンテナホストオペレーティングシステムから分離されます。

コンテナ化では、コンテナが同じオペレーティングシステムを使用する必要もあります。仮想マシンでは、各アプリケーションが独自のオペレーティングシステムを取得します。そのため、コンテナ化されたLinux環境でWindowsServer用に設計されたアプリを実行することはできません。その逆も同様です。

Container Linuxの実践:Container Linuxとは何ですか?

Container Linuxとは何ですか?それを使用する必要がありますか?

CoreOS、または現在呼ばれているContainer Linuxは、オープンソースのLinuxオペレーティングシステムです。これは、クラスター化されたデプロイメントを目的とした軽量のディストリビューションです。より具体的には、CoreOSは、シンプルで信頼性が高く、スケーラブルなデプロイメントに重点を置いています。パッケージマネージャーは見つかりません。代わりに、Container Linuxでは、すべてのアプリをコンテナー内で実行する必要があります。 Container Linuxは、ChromeOSをベースとして使用します。したがって、ContainerLinuxはかなり軽量なままです。テストするために、以前はCoreOSと呼ばれていたLinuxオペレーティングシステムを、老朽化し​​たHP Envy m6-1205dxAMDA10搭載ラップトップの仮想マシンで実行しました。システムリソースの消費量はかなり低いままでした。

Container Linuxは、いくつかの従来のデスクトップLinuxオペレーティングシステム機能を避けているため、ディストリビューションを軽量に保ちます。デスクトップオペレーティングシステムとは異なり、パッケージマネージャーはありません。代わりに、すべてのアプリケーションはDockerコンテナーとして実行されます。これにより、移植性とサービスの分離が可能になります。デスクトップ環境が必要な場合は、運が悪いです。 Container Linuxには、グラフィカルユーザーインターフェイスがありません。代わりに、すべてがコマンドラインベースです。 CoreUpdateダッシュボードは、マシンの状態、実行中のサービス、およびクラスターの状態に関する情報を提供します。ただし、PremiumManagedLinuxサブスクリプションのコンポーネントとしてのみ利用できます。

コンテナLinuxアーキテクチャ

Container Linuxは軽量で、コンテナ化とクラスタリング用に設計されています。デスクトップ環境がないため、CentOSやUbuntuなどのLinuxオペレーティングシステムとは構成の機能が異なります。最初の起動時に、ContainerLinuxはcloud-configファイルをロードします。 cloud-configに情報を入力する必要があります。これは、特にcloud-configに精通していない人にとっては、少し注意が必要です。ただし、これは、Container Linuxに重要なサービスをロードし、パラメーターを変更し、クラスターを管理する機能を提供する重要なファイルです。

さらに、

etcd

および

fleet

デーモンは、ContainerLinuxに不可欠なままです。これらのサービスは両方とも、デフォルトで起動時に起動します。さらに、起動時にcloud-configファイルにより、ホストは既存のクラスターに参加する方法を知ることができます。

etcd

デーモンは、クラスター内のホストのデータを配布および保管します。これは、構成の維持とサービス検出に不可欠です。

fleet

デーモンは分散型initに似ています。このデーモンは

にリンクしています
systemd

クラスタ内のホストの初期化を行い、サービスのスケジューリングなどのタスクを処理します。

の各システム
fleet

クラスターは1つだけ実行します

fleetd

デーモン。このデーモンは、エージェントとエンジンの両方として機能する2つの主要な責任を負います。エンジンとして、デーモンはスケジューリングの決定を実行します。一方、エージェント側はユニットを実行します。フリートクラスターでは、

etcd

唯一のデータストアです。クラスタの存在、ユニットの状態、ユニットファイルなどの情報はすべて

内に保存されます。
etcd

デーモン。さらに、フリートエージェントとエンジンの通信手段でもあります。

Container Linuxの実践:誰がそれを使用すべきか?

Container Linuxは無料でダウンロードでき、軽量で、仮想マシンにインストールするのはかなり簡単です。迅速でスケーラブルなコンテナー化されたデプロイメントが必要な場合は、ContainerLinuxを選択する必要があります。ほとんどの場合、システム管理者とデータベース管理者は、ContainerLinuxから最も恩恵を受けます。 Container Linuxにはデスクトップ環境がないため、クラスター管理やサーバー設定に最適です。 Linuxサーバーのオペレーティングシステムをお探しの場合、ContainerLinuxは12の最高のLinuxサーバーディストリビューションの1つです。

Air Pairは、CoreOSインセンティブに関する優れた記事を備えています。この記事では、Container Linuxを使用するための主な目的として、高可用性、本番環境のメンテナンス、ソフトウェアバージョン管理などについて説明します。特に、信じられないほど熱心なオープンソースコミュニティもあります。 Container Linuxは、経験豊富なLinuxユーザー向けに調整されています。ヘルプドキュメントは包括的ですが、Linuxにある程度精通していることを前提としています。初心者および初心者のユーザーは、初期インストールで少し問題が発生する可能性があります。

より具体的には、cloud-configが課題になる可能性があります。あるCoreOSインストールビデオのコメントセクションで、YouTubeユーザーのSetyoso Nugrohoは、「素晴らしいチュートリアルです。CoreOSで#cloud-configファイルの構成を学ぶとかなり混乱します」と述べています。構成はそれほど難しくありませんが、Container Linuxは、VIMエディターなどのLinux機能を十分に理解していることを前提としています。

Container Linuxの実践:インストール方法

ContainerLinuxをインストールする方法はたくさんあります。 CoreOS Webサイトによると、公式プラットフォームには、Amazon EC2、DigitalOcean、Microsoft Azure、ベアメタル、OpenStackが含まれます。 Oracle Linux、CentOS、Suseなどと並んで、CoreOSはAzureと互換性のある数少ないLinuxオペレーティングシステムの1つです。活気のあるコミュニティのおかげで、Packet、Rackspace、Brightbox、VirtualBox、VMwareなどのプラットフォームもサポートされています。最も簡単な方法は、ISOファイルを使用してVirtualBoxにContainerLinuxをインストールすることでした。 VirtualBoxの使用方法のクイックガイドは次のとおりです。

VirtualBoxの設定

VirtualBoxを開くと、仮想マシン名、オペレーティングシステムの種類、およびバージョンの入力を求められます。私は単にCoreOSと呼んでいます。タイプとして、Linuxを選択します。バージョンとして、Linux 2.6 / 3.x / 4 / x(64ビット)を使用します。 [次へ]をクリックします。

Container Linuxとは何ですか?それを使用する必要がありますか?

次に、RAMを割り当てる必要があります。 CoreOSは、最低1024MBのRAMを推奨しています。

Container Linuxとは何ですか?それを使用する必要がありますか?

RAMを選択したら、仮想ハードディスクを追加する必要があります。 [今すぐ仮想ハードディスクを作成する]オプションを使用します。

Container Linuxとは何ですか?それを使用する必要がありますか?

次の画面で、ハードディスクファイルの種類の入力を求められます。 VDIまたはVirtualBoxディスクイメージを選択します。

Container Linuxとは何ですか?それを使用する必要がありますか?

その後、ストレージスペースを構成します。動的に割り当てられたハードディスクファイルを使用することをお勧めします。

Container Linuxとは何ですか?それを使用する必要がありますか?

次に、ファイルの場所とサイズを選択します。名前としてデフォルトのCoreOSを残し、8GBのファイルデータサイズを選択しました。

Container Linuxとは何ですか?それを使用する必要がありますか?

CoreOS VirtualBox仮想マシンが適切に構成されたら、先に進んで緑色の[スタート]ボタンをクリックします。

Container Linuxとは何ですか?それを使用する必要がありますか?

[スタート]をクリックしたら、起動ディスクを選択する必要があります。 CoreOSISOを取得したフォルダーに移動して続行します。

コンテナLinuxの設定

CoreOS ISOを起動すると、ContainerLinuxのロードが開始されます。最終的に、CoreOSのバージョンとコマンドラインの読み取り値を示す行が表示されます。

core@localhost

次のように入力します:

sudo openssl passwd -1 > cloud-config-file
Container Linuxとは何ですか?それを使用する必要がありますか?

コマンドラインは、設定ファイルを開くことができない場合に警告を表示します。希望のパスワードを入力して続行します。次に入力します:

cat cloud-config-file
Container Linuxとは何ですか?それを使用する必要がありますか?

これにより長い文字列が返され、新しいcloud-configファイルが作成されます。次に、ビジュアルエディターでcloud-configを開きます。

vi cloud-config-file
Container Linuxとは何ですか?それを使用する必要がありますか?

これにより、編集可能なcloud-configファイルが読み込まれます。 CoreOSには、高度なcloud-configサンプルファイルが含まれています:

Container Linuxとは何ですか?それを使用する必要がありますか?

私のは次のように見えました:

#cloud-config
users: moe
passwd: [SSL password]
groups:
- sudo
- docker
Container Linuxとは何ですか?それを使用する必要がありますか?

次のように入力して、cloud-configファイルを確認できます。

cat cloud-config-file
Container Linuxとは何ですか?それを使用する必要がありますか?

これにより、構成ファイルが返されます。すべて問題がなければ、CoreOSのインストールに進みます:

sudo coreos-install -d /dev/sda -C stable -c cloud-config-file
Container Linuxとは何ですか?それを使用する必要がありますか?

CoreOSがダウンロード、書き込み、検証されているというメッセージが表示されます。それが完了するとすぐに、「Success!CoreOS[バージョン]は/dev/sdaにインストールされています。」というメッセージが表示されます。

Container Linuxとは何ですか?それを使用する必要がありますか?

CoreOS仮想マシンをシャットダウンしてから、バックアップを開始します。バックアップを開始するときは、必ずCoreOS ISOをアンマウントしてください。アンマウントしないと、ライブCDが再度実行されます。

CoreOSがロードされ、コマンドラインにログインプロンプトが表示されます:

localhost login:
Container Linuxとは何ですか?それを使用する必要がありますか?

ユーザー名とパスワードを入力します。これにより、「Container Linux byCoreOS[バージョン]」というメッセージと新しいコマンドラインが読み込まれます。

Container Linuxとは何ですか?それを使用する必要がありますか?

Container Linuxの実践:次のステップ

CoreOSによるContainerLinuxが正しくインストールされたので、コンテナーとクラスターのセットアップを開始できます。 CoreOSのドキュメントには、優れたクイックスタートガイドがあります。 etcdを使用したサービス検出に関する情報と、Dockerを使用したコンテナー管理に関するセクションがあります。 「HelloWorld」Dockerプルなどの簡単なテストをいくつか実行しました。さらに、私はメディアサーバーの大ファンなので、PlexDockerイメージをインストールしました。最後に、クラスター管理用のフリートをセットアップしました。

最初に実行したいのは、ContainerLinuxの主要コンポーネントを構成することです。

  • etcd
  • Docker
  • 艦隊

これらの3つの主要な基盤を構成することにより、サービスディスカバリ、クラスター管理、およびコンテナーのセットアップの準備が整います。次に、アプリのコンテナ化と、安全なDockerコンテナでのデスクトップアプリの安全なテストを開始できます。

Container Linuxの実践:最終的な考え

私はコンテナを頻繁に使用しませんが、ContainerLinuxはデプロイメントを簡素化しました。ドキュメントは、サンプルの構成ファイルで優れています。初心者の方は、いくつかの非公式のビデオインストールチュートリアルでCoreOSのインストールが簡単になることに注意してください。 CoreOSはContainerLinuxは軽量であると主張していますが、私は当初懐疑的でした。それでも、リソース消費量がかなり少ない仮想マシンでContainerLinuxを起動しました。また、Container Linuxが本当に軽量かどうかをテストしたかったので、古いHPラップトップを使用しましたが、問題は発生しませんでした。

ただし、初期インストールの一部の手順は、「初心者向け」ではありません。 Container Linuxのインストールとセットアップには、Linuxに精通している必要があります。特に、CoreOSが有料のプレミアム機能として提供しているCoreUpdateダッシュボードは試していません。コマンドラインの使用に問題はありませんが、監視用のグラフィカル環境があれば便利です。

システム管理者とデータベース管理者は、ContainerLinuxから最も恩恵を受けます。ただし、ホームサーバーの場合、クラスター環境を作成するためのシンプルで軽量な手段です。さらに、Container Linuxを使用すると、単一のマシンからクラスターを起動できます。しかし、Container Linuxは、コンテナーを操作するための優れた入門書です。 Dockerとコンテナーについて詳しく知りたい場合、Container Linuxは仮想マシンで非常にうまく動作し、開始するために必要なすべてのリソースを提供します。

これは、経験豊富なDevOpsエンジニア、システム管理者、データベース管理者に加えて、コンテナー初心者向けの優れたすぐに使えるソリューションです。最終的に、CoreOSによるContainer Linuxは、スケーラブルで効率的なコンテナー化された環境を作成するための簡単な手段です。

CoreOSを使用していますか?する予定はありますか?以下のコメントセクションで、Linuxでどのようにコンテナ化しているかをお知らせください!


  1. シングルサインオン(SSO)–それは何であり、使用する必要がありますか?

    シングルサインオン(SSO)を使用すると、サイトにアクセスするための資格情報を提供する手間が省けます。しかし、それは本当にパスワードの問題を解決するのでしょうか、それとも代わりにさらに多くの問題を引き起こすのでしょうか?この記事では、SSOについて説明します。これにより、これが適切なソリューションであるかどうかを判断できます。 パスワードを何度も入力しなければならないのは本当に面倒です。もちろん、パスワードマネージャーを使用することもできますが、私たちの多くは、重要性の低いパスワードであっても、パスワードマネージャーを信頼していません。結局のところ、パスワードマネージャーがハッキングされた場

  2. Double VPN とは何か、使用すべきか

    オンライン プライバシーとセキュリティに関連する増大する問題に対処するために、多数のセキュリティ ソリューションとインフラストラクチャが構築されています。これには主に VPN が含まれます。 とダブル VPN 最適な VPN ソリューションについては既に説明しました およびその機能の詳細。 (ベスト VPN カテゴリをチェックして、いくつかの高度な機能について学びたい場合) Windows 10、8、7 PC に最適な 13 の VPN Mac 向けの 12 のベスト無料 VPN Linux に最適な VPN Android 向け VPN アプリ トップ 10 iPad