代管執行個體群組 Managed Instance Group (MIG) 有辦法強制保留一個vm 不被取代跟重新建立嗎?
目前在一個VM執行個體內搭ispconfig 來管理網站
但又需要負載平衡來因應突發流量
如果用代管執行個體群組 雖然設定最低保留一個
但只要該VM負載過高無回應的話就會重新建立一個並取代
有試過新增一個磁碟掛載在VM上把MySQL還有網站檔案存在內
透過範本讓代管執行個體群組自動建立
但是Google範本連接線有磁碟只能唯讀無法寫入
有沒有其他更好的做法?
每個 VM Instance 的 Local Disk 都只能給自己讀寫用, 不能有多個 Instace 共用同一個 Local Disk 同時讀寫.....這在所有 VM 環境內都是同樣的限制....(AWS,GCP,Azure,VMware,Hyper-V,KVM....全都一樣), 所以不要花腦筋去解這種天生就被限制的問題.....
要達到共同讀寫的目的, 必須透過 Shared Storage (共享儲存) 的機制來完成, 例如: NFS 或 SMB Server, 但是, 如果其中一個 Instace 下了 Exclusive Write 的指令, 在那當下, 其他的 VM Instace 也是無法寫入的...
Load Balance 並不是單純靠共用儲存磁碟就可以完成, 尤其你外層還套一個 ISPConfig 這樣的控制管理面板 (Management Panel), 做 LB 的難度更高.
通常管理面板大多不支援負載平衡, 但幸運的, ISPConfig 有一些變通方法: ISPConfig 要達到 Load Balance 功能, 必須將他設置成 Cluster Mode, 請詳閱此篇官方範例:
Installing a Web, Email & MySQL Database Cluster on Debian 8.4 Jessie with ISPConfig 3.1 - Page 4
從範例中可以看到, 她的每一台 Load Balance Server 都有自己的磁碟機, 不會去共用別人的; MySQL 的資料是透過 Mysql 自己的 Master-Master Cluster 機制來完成兩機之間的 DB 複寫; 檔案的部分則是由 ISPConfig 內建的 rsync 機制來完成兩機之間的檔案複寫...