Bu temel ağ katmanı olarak Weave kullanarak DCHQ platformunun ölçeklenebilirlik hakkında 2-blog serisinin ikinci blog. Ilk blog her Bellek 4GB ve 2 işlemciler ile Rackspace 3 Bulut Sunucular sahip 10 Örgü Kümeleri 10.000 kapların dağıtımını kaplı.
Bu blog, biz 2.000 konteyner dağıtım kapsayacak - ancak bunun yerine 3 bulut sunucuları her biri 10 küme kullanarak, biz bir kullanıyor olacak 30 bulut sunucuları ile tek Örgü küme . DCHQ uygulama dağıtımını ve yönetimini otomatik değil, ama aynı zamanda 13 farklı bulutlar ve sanallaştırma platformları üzerinde altyapı hazırlığını ve otomatik ölçeklendirme otomatik. Bu blogda bu ölçeklenebilirlik testi hakkında daha fazla bilgi edinin.
arka plan
Uygulama taşınabilirliği hala Linux konteynırlarının kabulü için önde gelen sürücü (yani herhangi bir Linux ana bilgisayarda aynı uygulamayı çalıştırmak için güçlü olmak) iken, bir başka önemli avantajları mümkün ediliyor sunucu kullanımını optimize size bilgi işlem her bit kullanın böylece. Tabii ki, akıntıya karşı ortamlar için, PROD gibi, hala iş yükü için yeterli CPU ve bellek daha adamak isteyebilirsiniz - ama sunucu kullanımı optimize tipik bir kuruluşta bilgi işlem kaynak tüketimi çoğunluğunu temsil DEV / TEST ortamlarında, içinde can önemli maliyet tasarrufu sağlayacak.
Bu, tüm kağıt üzerinde iyi geliyor - ama DevOps mühendis ve altyapı işletmecileri hala şu sorularla mücadele:
- Nasıl iş grupları, geliştirme ekipleri, veya uygulama projelerine harita kümeler halinde farklı bulutların arasında ben grup sunucuları can?
- Nasıl bu kümeleri izlemek ve farklı gruplar veya kullanıcılar tarafından kaynak tüketimi içgörü alabilirim?
- Nasıl birden fazla makinede konteynerler birbirleri ile iletişim kurabilmesi için bir kümede sunucular arasında ağ kurarım?
- Ben bir kümede bilgi işlem her bit kullanın böylece nasıl kendi kapasite tabanlı yerleştirme politikasını nasıl tanımlarsınız?
- Otomatik olarak nasıl yeni konteyner tabanlı uygulama dağıtımlar için geliştiricilerin ihtiyaçlarını karşılamak için küme ölçeklendirme olabilir?
mevcut DCHQ, barındırılan ve üzerinde öncül sürümleri, tüm bu zorlukların ele ve altyapı işletmecileri veya DevOps mühendisler için en gelişmiş altyapı sağlama, otomatik ölçeklendirme, kümelenme ve yerleştirme ilkeleri içerir.
- Bir kullanıcı Docker ve yazılım tanımlı ağ katmanı (opsiyonel) ile birlikte DCHQ ajan yüklemek için otomatik olarak oluşturulan komut dosyası çalıştırarak herhangi bir yerde çalışan herhangi bir Linux host kayıt olabilirsiniz. Bu görev "Docker Sunucular" oluşturmaya yönelik DİNLENME API'sini kullanarak programlı otomatik hale getirilebilir ( https://dchq.readme.io/docs/dockerservers )
- Alternatif olarak, DCHQ kullanıcıları otomatik olarak vSphere, openstack, CloudStack, Amazon Elastic Cloud Computing, Google Compute Engine, Rackspace, DigitalOcean, SoftLayer, Microsoft Azure, ve diğerleri sanal altyapı dönmeye izin 13 bulut sağlayıcıları ile bütünleşir.
Nginx Cluster için Başvuru Şablonu Bina
Bir kez (ya barındırılan DCHQ.io veya içi versiyonu) DCHQ için giriş, bir kullanıcı gidebilirsiniz App & Makine ve ardından tıklayın + yeni oluşturmak için düğmeye Docker Oluştur şablonu.
Biz bu ölçeklenebilirlik testi uğruna basit bir Nginx küme oluşturduk. Bunu fark edeceksiniz CLUSTER_SIZE parametresi (aynı uygulama bağımlılıkları ile) başlatmak için konteyner sayısını belirlemenizi sağlar.
Mem_min parametresi Eğer konteyner tahsis etmek istiyorum Bellek az miktarda specifcy sağlar.
Ev sahibi parametresi Eğer konteyner dağıtımları için kullanmak istediğiniz ana belirlemenizi sağlar. Bu şekilde farklı bilgisayarlar (ya da bölgeler) genelinde uygulama sunucusu kümeleri için yüksek kullanılabilirliği sağlamak ve veritabanı örneğin ayrı bir host üzerinde çalışmasını sağlamak için afinite kurallarına uymak olabilir. İşte ev sahibi parametresi için desteklenen değerler şunlardır:
- host1, host2, host3 , vb - konteyner dağıtımları için bir veri merkezi (veya küme) içinde rastgele bir ev sahibi seçer
- <IP Adresi 1 IP Adresi 2, vb> - Bir kullanıcı gerçek IP konteyner dağıtımları için kullanmak adresleri belirlemenizi sağlar
- <Hostname 1, Hostname 2, vb> - Bir kullanıcı konteyner dağıtımları için kullanılacak gerçek hostnames belirlemenizi sağlar
- Joker karakterler (örneğin "db- *", ya da "app-srv- *") - joker belirtmek için bir hostname içinde kullanmak
Herhangi Cloud üzerinde Dayanak Altyapı Sağlama
Bir uygulama kaydedildikten sonra, bir bulut sağlayıcısı kayıt bir kullanıcı sağlama ve vSphere, openstack, CloudStack, Amazon Web Services, Rackspace, Microsoft Azure, DigitalOcean HP Kamu dahil 13 farklı bulut uç noktalara kümelerin otomatik ölçeklendirme otomatik hale getirmek için bulut, IBM SoftLayer, Google Compute Engine, ve diğerleri.
İlk olarak, bir kullanıcının giderek Rackspace (örneğin) bir bulut sağlayıcısı kayıt olabilirsiniz Bulut Sağlayıcıları Rackspace şirketinin seçmek için + düğmesine tıklayarak ve sonra. Hesap Ayarları bölümünden alınabilir ki - Rackspace API Anahtarı sağlanmalıdır.
Bir kullanıcı daha sonra otomatik olarak yeni Bulut Sunucular dönmesi için otomatik ölçekli politikası ile bir küme oluşturabilirsiniz. Bu giderek yapılabilir Kümeleri tıklayarak sonra sayfanın ve + düğmesi. Bir kapasite tabanlı yerleştirme politikası seçin ve ardından yapabilirsiniz Örgü bir küme içinde birden fazla makinede güvenli, şifre korumalı çapraz konteyner iletişimi kolaylaştırmak için ağ katmanı olarak. Bu durumda, biz de otomatik olarak (bu durumda 30 bulut sunucuları) tanımlanan maksimum limite bu küme yukarı bulut sunucuları spin olacaktır otomatik ölçekli politikası tanımlanır. Granül haklar bu küme yalnızca bu testte (user1@dchq.io, user2@dchq.io, ..., user10@dchq.io) kullandığınız 10 kullanıcılar tarafından kullanılabilir olduğundan emin olmak için kullanılabilir. Son olarak, haklar planı (ya da uygulama şablonu) seviyesinde tanımlanabilir - sadece hak uygulamalar bu paylaşılan kümeye dağıtılabilir sağlamak. Bu durumda, küme "Tüm Blueprints" açıktı.
Bir kullanıcı artık hüküm ya UI tabanlı iş akışı yoluyla veya Self-Service Library talep edilebilir basit bir YAML tabanlı Makine Oluştur şablonu tanımlayarak yeni oluşturulan kümede Bulut Sunucular bir dizi.
UI tabanlı iş akışı - Bir kullanıcı giderek Rackspace Cloud Sunucular talep edebilirsiniz Makineler üzerinde tıklatarak ve + seçmek için düğmeye Rackspace şirketinin . Bulut Sağlayıcı seçildiğinde, bir kullanıcı gerekli bölge, boyutu ve görüntü seçebilirsiniz. Limanlar (RabbitMQ için Weave için Docker, 6783 örneğin 32000-59000 ve 5672) bağlantı noktası gereksinimleri bazı karşılamak için Rackspace Cloud Sunucular varsayılan olarak açılır. Bir Küme sonra seçilir ve Bulut Sunucuları sayısı belirtilebilir.
YAML merkezli Makine Oluştur Template - Bir kullanıcı ilk giderek Rackspace için bir makine Oluştur şablonu oluşturabilirsiniz Makineleri seçerek ve sonra Makine Oluşturüzerine .
Makine Oluştur şablon için desteklenen parametreler aşağıda özetlenmiştir:
- Açıklama : plan / şablon Açıklaması
- instancetype : Bulut sağlayıcı spesifik bir değer (örneğin general1-4)
- bölge : Bulut sağlayıcı spesifik bir değer (örneğin IAD)
- Görüntü : Zorunlu - tam görüntü kimliği / ad (örneğin IAD / 5ed162cc-b4eb-4371-b24a-a0ae73376c73 veya vSphere VM Şablon adı)
- kullanıcı adı : Opsiyonel - Sadece vSphere VM Template username
- Şifre : Opsiyonel - Sadece vSphere VM Template şifresini şifreli. Sen son nokta kullanarak parolayı şifreleyebilirsiniz https://www.dchq.io/#/encrypt
- ağ : Opsiyonel - Bulut sağlayıcı özgü değer (örneğin varsayılan)
- SecurityGroup : Bulut sağlayıcı spesifik bir değer (örneğin dchq güvenlik grubu)
- keypair : Bulut sağlayıcı spesifik bir değer (örneğin özel anahtar)
- OpenPorts : Opsiyonel - virgülle ayrılmış liman değerleri
- saymak : VM hiçbir, varsayılan 1 Toplam.
Makine Oluştur şablon kaydedildikten sonra, bir kullanıcı Self Servis bu makineyi talep edebilirsiniz Kütüphane . Bir kullanıcı tıklayabilirsiniz Özelleştir seçin ve sonra Bulut sağlayıcı ve Küme bu Rackspace Cloud Sunucular hazırlık için kullanılacak.
Programlı DCHQ REST API kullanarak Nginx küme Dağıtma
Bulut Sunucular sağlanan sonra, bir kullanıcı programlı DCHQ REST API kullanarak Nginx küme dağıtabilirsiniz. API yılların kullanımını kolaylaştırmak için, bir kullanıcı daha önce varsayılan küme olarak oluşturulan küme seçmeniz gerekir. Bu giderek yapılabilir Benim Profil ve sonra gerektiği varsayılan küme seçilmesi.
Varsayılan küme seçildikten sonra sonra bir kullanıcı sadece "dağıtmak" API (çağırır aşağıdaki kıvırmak çalıştırabiliriz https://dchq.readme.io/docs/deployid ).
bu basit kıvırmak komut, biz şu var:
- Bir döngü, 1 ila 20
- Her yineleme ile biz user1@dchq.io~~V atanan varsayılan küme kullanarak kümelenmiş Nginx uygulama dağıtımı ediyoruz
- kullanici1% 40dchq.io user1@dchq.io için kullanılan @ sembolü heks% 40 ile değiştirilmiş olduğu
- @ Şifre ve ev sahibi arasındaki onaltılık ile değiştirilmemiştir
- <id> Nginx küme uygulama kimliğine karşılık gelir. Bu giderek alınabilir Kütüphane > özelleştirme Nginx küme için. Kimlik URL olmalıdır
- uyku 22 her yineleme arasında kullanılır
- Bu komut dosyasını çalıştırdıktan sonra, 200 Nginx kaplar user1@dchq.io~~pobj tarafından dağıtılan olurdu - 20 yineleme 10 konteynerlerin her bir Nginx kümesi dağıtma.
hepsi aynı paylaşılan kümeye dağıtma - Biz o zaman diğer kullanıcılara (user2@dchq.io, user3@dchq.io, ..., user10@dchq.io) için aynı işlem tekrarlanır.
Bu kıvrılma komut dosyası kendinizi deneyebilirsiniz. Sen DCHQ On-Yerinde (yükleyebilirsiniz ya http://dchq.co/dchq-on-premise.html ) ya da DCHQ.io (PaaS Hosted kaydolmak http://dchq.io ).
CPU İzleme, Hafıza ve Cluster Of I / O kullanımı, Sunucular ve Koşu Konteynerler
DCHQ kullanıcıları CPU, Bellek izlemenizi sağlar, Disk ve ben kümeleri, bilgisayarlar ve konteynerlerin / Ç.
- Kümeleri izlemek için, sadece gidebilirsiniz Kümeleri
- Ana izlemek için, sadece gidebilirsiniz Makineler
- Konteynerleri izlemek için, sadece gidebilirsiniz Apps Canlı
Daha önce biz 2000 kapları başlattı sonra bilgisayarlar performans ve küme izlenir.
2000 konteynırları kadar iplik sonra küme için performans grafikleri ekran yakaladık. Bunu görebilirsiniz kümede 30 bulut sunucuları arasında toplanan Bellek kullanımı% 81 idi .
Bunu görebilirsiniz kümede 30 bulut sunucuları arasında en yüksek Bellek kullanımı% 84 idi .
Biz kümedeki 30 hosts birine aşağı delinmiş ve söz konusu ana bilgisayarda çalışan kapların # gibi daha fazla ayrıntı görünce, görüntü sayısı çekti ve tabii ki, CPU / Bellek / Disk Kullanımı. Bu durumda, söz konusu ev sahibi bellek kullanımı% 83 olmuştur .
İşte (her küme 10 konteyner vardı) çalışan tüm 200 Nginx kümelerinin bir görünümdür.
Sonuç
genellikle erişim kontrolleri, izleme, ağ, kapasite tabanlı yerleştirme, politika ve kota dışarı otomatik ölçekli birden fazla geliştirme ekipler arasında sunucuların havuzları yönetmek için mücadele gibi Docker tabanlı uygulama dağıtımları düzenlediğini hala birçok DevOps mühendis ve altyapı işletmecileri için bir meydan okumadır yapılandırılması gerekir kilit unsurlarıdır.
mevcut DCHQ, barındırılan ve üzerinde öncül sürümleri, tüm bu zorlukların ele ve altyapı işletmecileri veya DevOps mühendisler için en gelişmiş altyapı sağlama, otomatik ölçeklendirme, kümelenme ve yerleştirme ilkeleri içerir.
Gelişmiş altyapı sağlama ve kümeleme yeteneklerine ek olarak, DCHQ isteği zaman ya da çağrılabilir çapraz görüntü ortam değişkeni bağlamaları, genişletilebilir BASH komut eklentileri ile Docker Yaz'ı uzanan bir avans uygulaması kompozisyon çerçevesinde aracılığıyla kurumsal uygulamaların konteyner kullan kolaylaştırır post-hüküm ve otomatik ölçeklendirme desteği ile birden çok ana bilgisayara veya bölgeler arasında yüksek kullanılabilirlik için uygulama kümeleme.
Giriş / çıkış ve sürekli teslim uygulama yaşam döngüsü yönetimi izleme gibi işlevselliği, konteyner güncellemeleri, ölçek ile birlikte out-of-box çok katmanlı Java uygulama şablonları erişmek için.
No comments:
Post a Comment