「Kubernetes」のコンテナクラスタをまたがるデータはどのように格納されているのだろうか?答えは「etcd」というコンポーネントにある。Kubernetesにおいて必要不可欠とも言えるこのコンポーネントは、Red HatのCoreOSチームによって管理されてきた。しかし、これからは違う。オープンソースのetcdプロジェクトはRed Hatから寄贈され、Cloud Native Computing Foundation(CNCF)のインキュベーティングプロジェクトとして加わった。
etcdとはいったい何なのだろうか?これは猫がキーボードにじゃれついたことで生み出された3文字略語ではない。etcdは2013年にCoreOSチームによって作り出されたものであり、共有設定やサービスディスカバリ、スケジューラ連携に用いられる、オープンソースの分散KVS(キーバリューストア)だ。これは複製されたログを管理するための「Raft」という分散合意アルゴリズムをベースにしている。
etcdの役割は、分散システムにおいて要となるデータを安全に格納するというものだ。etcdはKubernetesの主たるデータストアとして知られているが、他のプロジェクトでも利用可能となっている。その一例として、AlibabaのシニアスタッフエンジニアであるXiang Li氏は、「高い可用性とデータの信頼性を実現するという点に優れていることから、Alibabaでは複数の重要インフラシステムでetcdを採用している」と述べている。
etcdを採用することで、アプリケーションは一貫性のあるかたちで稼働時間を伸ばせるようになる。特定のサーバに障害が発生した場合でも、etcdによってサービスの継続が保証される。またetcdは、システム停止に陥るような障害から守ってくれるだけではなく、システムの稼働を中断することなくアップデートを実施することも可能にしてくれる。さらに、サーバ間で作業を連携させたり、コンテナ間のオーバーレイネットワークを設定する際にも用いることができる。
CoreOSの最高技術責任者(CTO)のBrandon Philips氏は、KubeConの基調講演で、「etcdの管理が、Kubernetesの成長と維持を管理する組織に移されることを喜ばしく思う」と述べた。
Red Hatは、etcdから完全に手を引くのではなく、引き続きetcdの開発を支援していく。etcdはやはり、Red HatのKubernetesを活用するエンタープライズ向け製品である「Red Hat OpenShift」の重要な部分だ。
この記事は海外CBS Interactive発の記事を朝日インタラクティブが日本向けに編集したものです。