etcd — CoreOS kompaniyasi tomonidan 2013-yilda taqdim etilgan, taqsimlangan kalit-qiymat (key-value) ombori. Nomi Unix tizimlaridagi konfiguratsiya fayllari saqlanadigan /etc katalogidan va “d” (distributed) harfidan olingan bo’lib, uning maqsadini — taqsimlangan konfiguratsiya saqlashni — ifodalaydi.
CoreOS tomonidan yaratilishi
CoreOS o’zining yengil, konteynerlarga mo’ljallangan operatsion tizimi uchun butun klaster bo’ylab konfiguratsiya va holatni ishonchli saqlash va sinxronlashtirish vositasiga muhtoj edi. Mavjud yechimlar (masalan, ZooKeeper) Java‘ga bog’liq va operatsion jihatdan og’ir bo’lgani sababli, CoreOS yengilroq, Go tilida yozilgan alternativani yaratdi.
Raft konsensus algoritmi asosida ishlashi
etcd Raft deb ataladigan konsensus algoritmiga asoslangan bo’lib, bu algoritm bir nechta server orasida ma’lumotning izchil nusxalanishini kafolatlaydi, hattoki ba’zi serverlar ishdan chiqqan taqdirda ham. Raft o’zining tushunarliligi bilan mashhur bo’lib, u murakkabroq Paxos algoritmiga qulay muqobil sifatida ishlab chiqilgan.
Kalit-qiymat ombori sifatida vazifasi
etcd oddiy, ammo kuchli kalit-qiymat interfeysini taqdim etadi — ma’lumot kalit va unga mos qiymat juftligi sifatida saqlanadi. Bundan tashqari, u “watch” mexanizmi orqali ma’lum kalitning qiymati o’zgarganda mijoz tizimlarga darhol xabar berish imkonini beradi, bu esa real vaqtda konfiguratsiya yangilanishini kuzatishga xizmat qiladi.
Kubernetes’ning miya markazi bo’lishi
etcd Kubernetes‘ning barcha klaster holatini — qaysi Pod qayerda ishlayotgani, qanday konfiguratsiya qo’llanilgani va boshqa barcha metama’lumotlarni — saqlaydigan yagona “haqiqat manbai” (source of truth) hisoblanadi. etcd’ning o’zi ishdan chiqsa, butun Kubernetes klasteri boshqarilmas holga kelishi mumkin, shu sababli uni to’g’ri zaxiralash muhim ahamiyatga ega.
ZooKeeper bilan farqi
etcd ZooKeeper‘ga qaraganda soddaroq REST/gRPC asosidagi API‘ga ega va Go ekotizimi (jumladan Kubernetes)ga tabiiyroq mos keladi, ZooKeeper esa Java asosidagi eski tizimlarda ko’proq uchraydi. Ikkalasi ham o’xshash muammoni — taqsimlangan muvofiqlashtirishni — hal qiladi, ammo turli texnologik ekotizimlarga xizmat qiladi.
Bog’liq tushunchalar
Kubernetes, Raft, Taqsimlangan tizimlar, Kalit-qiymat ombori, CoreOS, Konsensus algoritmi, ZooKeeper