Rolling upgrade, từng node một, và tắt shard allocation trong lúc node đang restart để cluster không copy shard đi lung tung.
PUT /_cluster/settings
{ "persistent": { "cluster.routing.allocation.enable": "primaries" } }
POST /_flush
# ... restart 1 node, doi no join lai ...
PUT /_cluster/settings
{ "persistent": { "cluster.routing.allocation.enable": null } }
# doi status ve green roi moi lam node tiep theoThứ tự chuẩn: master-eligible node cuối cùng, data node trước.
Bắt buộc trước khi bắt đầu: snapshot, và chạy upgrade assistant để phát hiện thứ bị deprecated. Elasticsearch chỉ hỗ trợ rolling upgrade trong phạm vi nhất định — nhảy quá xa version thì phải nâng qua bản trung gian hoặc reindex.
Điểm hay bị bỏ sót là client library: client version cũ có thể không nói chuyện được với cluster version mới, nên phải nâng và test client trước, tốt nhất là trên một cluster staging cùng version.
Một hướng ít rủi ro hơn cho cluster quan trọng: dựng cluster mới song song, restore snapshot, chuyển traffic dần rồi tắt cluster cũ.