Ingress Nginxは、Kubernetesにおいてウェブサービスのリバースプロキシやロードバランシングを提供するために広く利用されています。状況によっては、同じIPアドレスで他のTCP/UDPサービスも提供したい場合があります。この記事では、そのような状況でIngress NginxをTCP/UDPサービスのプロキシとして利用する方法を紹介します。
FOSDEM 2023 振り返り
卒業後の就職活動に追われ、さらに3年間のパンデミックを経て、海外の大規模なカンファレンスに参加するのは本当に久しぶりでした。今回、OCFがFOSDEMに出展し、参加費用の一部を補助してくれることを知り、少し考えた末、このヨーロッパ最大級のオープンソース関連カンファレンスに参加することに決めました。
Proxmox VEでNvidia vGPUを使用する
はじめに:数週間前、中国の中古プラットフォームで非常に安価なNvidia Tesla P4を見つけました。Tesla P4はロープロファイル・シングルスロットのグラフィックボードであり、補助電源も不要なため、1Uサーバーでの使用に非常に適しています。そこで、vGPUをテストするために数枚購入しました。本記事では、Proxmox VEでNvidiaのvGPU機能を使用する方法を紹介します。
ベアメタルからクラウドへ:OpenStackデプロイツール 3
前回の記事では、強力なベンダーのバックアップがある2つのデプロイツールを紹介しました。今回は、主にコミュニティメンバーによってメンテナンスされているデプロイプロジェクトであるOpenStack-Ansible、Kolla-Ansible、OpenStack-Helmについて紹介します。OpenStack-Ansibleはその名の通り、Ansibleを通じてOpenStackをデプロイするツールで、非常に多くのOpenStackコンポーネントや様々なプラグインをサポートしています。OpenStack-Ansibleは主にlxcコンテナとAnsible-playbookを使用してOpenStackをインストールしますが、nova-computeなど一部のサービスはlxcコンテナ内には配置されません。ネットワークプラグインのサポートも、今日紹介する3つのツールの中で最も充実しており、特殊な環境で非常に便利なCalicoも含まれています。OpenStack-AnsibleはOpenStackのデプロイだけでなく、ストレージに必要なCephも同時にデプロイできます。一方、Kolla-Ansibleなどの他のプロジェクトでは、Cephクラスターを別途自分でデプロイし、config overwriteを通じて設定する必要があります。Kolla-Ansibleは、本シリーズ記事で採用しているデプロイツールであり、OpenStack-Ansibleと比べると[…]
ベアメタルからクラウドへ:OpenStack デプロイツール 2
前回の記事では、非常に手軽に始められるものの、開発・テスト向けのデプロイ方法であるDevStackとMicroStackを紹介しました。今回は、強力なベンダーのバックアップがある2つのデプロイツール、TripleOとOpenStack Charmsを紹介します。TripleOは「OpenStack on OpenStack」の略称です。これはOpenStackのプロジェクトの一つであり、主な機能はOpenStackの一部のコンポーネントを利用して、実際の商用環境で使用可能なOpenStackクラウドのデプロイと運用を支援することです。現在、TripleOは主にRedHatによってメンテナンスされており、RedHat OpenStack Platform (RHOSP) のアップストリームデプロイプロジェクトでもあります。アーキテクチャの概要:先ほど述べたように、TripleOは「OpenStack on OpenStack」であり、つまり2つのOpenStack環境を持つことになります。一方の環境はundercloudと呼ばれます。Undercloudには、overcloudをデプロイするために必要なOpenStackコンポーネントが含まれています。OvercloudはundercloudによってデプロイされたOpenStackクラスターであり、本番環境やステージング環境として利用できます[…]
ベアメタルからクラウドへ:OpenStack デプロイツール 1
最初の3週間はクラウドの概念とOpenStackのアーキテクチャについて紹介してきましたが、今日からは実際にOpenStackのデプロイに関する紹介に入ります。まず、OpenStackでよく使われるデプロイツールをいくつか紹介します。OpenStackデプロイツール:OpenStackのデプロイツールには非常に多くの種類があり、それぞれ適したアーキテクチャや環境が異なります。これら2つの記事では、以下のツールを含む一般的なOpenStackデプロイツールを概観します:DevStack、MicroStack、TripleO、OpenStack Charms、OpenStack-Ansible、Kolla-Ansible、OpenStack-Helm。DevStack:「DevStack」はその名の通り「Dev(開発者)」向けのものであり、主な目的はOpenStackの開発者が機能を迅速にテストできる環境を提供することです。DevStackは基本的には一連のシェルスクリプトであり、デフォルトではgit masterベースの最新バージョンを使用して、完全なOpenStack環境を迅速にデプロイします。主な用途は、対話的な開発環境として、またアップストリームのOpenStackコンポーネントにおけるファンクショナルテストの基盤として利用することです。MicroStack:MicroStackとは何か?「2つのコマンドで構築できるOpenStack環境」。MicroStackは、2つのコマンドを実行するだけで基本的なOpenStack環境を生成できるプロジェクトです。これにより、負担を大幅に軽減できます[…]
ベアメタルからクラウドへ:OpenStack Cinder の紹介
今日は、最後のOpenStackコンポーネントであるCinderを紹介します。Cinderも一般的なOpenStackデプロイで提供されるサービスであり、OpenStackのコアプロジェクトの一つです。Cinderがどのようなサービスを提供し、そのアーキテクチャがどのようになっているかを見ていきましょう。Cinderとは何か?公式ドキュメントでは次のように説明されています:CinderはOpenStackのブロックストレージ(Block Storage)サービスであり、Nova仮想マシン、Ironicベアメタル、コンテナなどにボリューム(volume)を提供するために使用されます。Cinderは、ハードディスクを提供するサービスと考えることができます。インスタンスにハードディスクをマウントしてストレージ空間を提供するためのAPIを提供します。単にブロックストレージを提供するだけでなく、Cinderはボリュームスナップショットやバックアップ機能も提供しており、同時にボリュームタイプ(volume type)を利用して異なるバックエンドやストレージ空間を管理することも可能です。Cinder自体の設計目標は以下の通りです:マイクロサービスベースのアーキテクチャ(開発者が新機能を迅速に追加できるようにする)、高可用性(非常に高いワークロードまで拡張可能)、フォールトトレランス(プロセスを分離し連鎖的な故障を防止)、リカバラブル(管理者が問題を容易に発見・調整・解決できる)、オープンスタンダード(コミュニティ主導のAPIのリファレンス実装となる)。Cinderのアーキテクチャ:Cinder […]
ベアメタルからクラウドへ:OpenStack Glance の紹介
Neutronに関する記事を数回経て、ようやく次のOpenStackコアプロジェクトに到達しました。今回紹介するのは、見落とされがちですが非常に重要なGlanceです。Glanceとは何か?公式ドキュメントの定義では次のように述べられています:イメージサービス(Glance)は、他のサービスと共に使用することを目的としたデータアセットを、ユーザーがアップロードおよび発見できるようにします。現在は、イメージファイル(Images)とメタデータ定義(metadata definitions)を提供しています。簡単に言えば、Glanceはイメージファイルとメタデータ定義を保存・ダウンロードするためのサービスです。イメージファイル:Glanceイメージサービスには、仮想マシン(VM)イメージの検索、アップロード、ダウンロードが含まれます。GlanceはRESTful APIを備えており、ユーザーはVMイメージのメタデータを照会したり、実際のイメージデータをダウンロードしたりできます。イメージの保存方法には多くの種類があり、現在はローカルファイルシステム、Ceph、Swiftなどが一般的です。メタデータ定義:Glanceはイメージファイルを保存すると同時に、メタデータ定義カタログ(Catalog)も保存できます。これにより、OpenStackの他のサービスに対して、APIコールを通じてOpenStackに適用可能な[…]を確認する手段を提供します。
ベアメタルからクラウドへ:OpenStack Neutron の紹介 — OVN vs OVS
前回の記事ではOpenStackにおけるOVNプラグインの参照アーキテクチャについて説明しましたが、本記事ではOpenStack NeutronでOVNとOVSを使用する場合の主な違いを比較します。アーキテクチャ面:公式FAQから翻訳したこの表により、OVNとOVSのアーキテクチャ面の違いが明確にわかります。項目:ml2/ovs、ml2/networking-ovn。エージェント/サーバー間の通信:RabbitMQメッセージ + RPC、ノースバウンド(NorthBound)とサウスバウンド(SouthBound)データベース間のovsdbプロトコル。l3HA:APIデプロイ時にルーターのhaフィールドを設定することでl3HAの有効/無効を切り替え可能、複数のネットワークノードがある場合に自動的にHA機能を有効化。DVR […]
ベアメタルからクラウドへ:OpenStack Neutron の紹介 — OVN アーキテクチャ
前回の記事ではOVNを紹介しましたが、本記事ではOpenStackにおけるOVNプラグインの参照アーキテクチャについて詳しく見ていきます。アーキテクチャのレイアウト:参照アーキテクチャでは、OVNコンポーネントを4つの異なるタイプのノードに分割し、それぞれが異なるタスクを担当します。コントローラーノード(Controller Node):コントローラーノードは主に以下の機能を提供します。1つの管理インターフェース、認証サービス(Keystone)、イメージサービス(Glance)、OVN ML2メカニズムドライバーによるネットワーク管理(コントロールプレーン)、計算リソース管理(Novaコントロールプレーン)。データベースノード(Database Node):データベースノードは主にOVN関連のデータベースを担当し、以下のコンポーネントを含みます。1つの管理インターフェース、ovn-northd、OVNノースバウンドデータベース、OVN […]

