kapsayıcıları Linux üzerinde SQL Server ile kullanma

Tamamlandı

Kapsayıcılar, kuruluşların SQL Server'ın esnek ve ölçeklenebilir yüklemelerini oluşturmasına yardımcı olur.

Wide World Importers, esnek ve ölçeklenebilir bir barındırma mimarisi gerektiren bazı büyük ölçekli veritabanı iş yüklerini destekler. SQL Server'ı Sanal Makineler (VM) ve kapsayıcılar gibi sanal ortamlarda barındırma olasılığını değerlendirmek istiyorsunuz.

Burada, bir veritabanı için kapsayıcılar ve VM'ler arasında seçim yapmayı öğreneceksiniz.

VM'leri ve kapsayıcıları karşılaştırma

Sanallaştırma, yöneticilerin tek bir fiziksel sunucuda birden çok sanal sunucu barındırmak için kullandığı bir tekniktir. Sanallaştırmayı kullandığınızda, ek donanım satın alıp yüklemeden SQL Server gibi ek örneklerini kolayca dağıtabilirsiniz. Sanallaştırmaya yönelik iki yaygın yaklaşım vardır:

  • VM'ler: VM'leri kullandığınızda, her örnek kendi işletim sistemi ve donanımına sahip eksiksiz bir sanal sunucudur.
  • Kapsayıcılar: Kapsayıcıları kullandığınızda, her örnek bir işletim sistemini ve donanım kaynaklarını konak bilgisayarla paylaşır.

Hem VM'ler hem de kapsayıcılar, SQL Server gibi uygulamaların ayrı bir fiziksel bilgisayardaymış gibi çalıştığı yalıtılmış bir ortam sağlar.

VM'lerin oluşturulması daha büyüktür ve daha uzun sürer, ancak kendi işletim sistemleri olduğundan konak bilgisayarda farklı bir yapılandırma ve donanım kullanır. Vm'leri aynı konakta farklı işletim sistemleriyle de karıştırabilirsiniz. Örneğin, bir Linux konağına, web sitesi barındırmak için Linux ve Apache çalıştıran bir VM yükleyebilirsiniz. Veritabanını barındırmak için Windows ve SQL Server çalıştıran başka bir VM de olabilir.

Kapsayıcılar daha küçük olduğundan VM'lerden çok daha hızlı yüklenir. Ancak, örneğin konağınız Linux Ubuntu çalıştırıyorsa, bu bilgisayardaki tüm kapsayıcıların aynı Ubuntu sürümünü çalıştırması gerekir. Linux konağına Linux ve Apache çalıştıran bir kapsayıcı yükleyebilirsiniz ancak veritabanı kapsayıcınızın da Linux çalıştırması gerekir. SQL Server 2017 veya sonraki bir sürümü çalıştırdığınız sürece bu mümkündür.

Diagram comparing the layers of software required to run VMs versus Containers.

Konak makinede, VM'leri barındırmak için Hyper-V veya VirtualBox gibi bir yazılım yüklemeniz gerekir. Kapsayıcılar için Docker sistemi, CRI-O, rkt ve diğer kapsayıcı konaklarını kullanabilirsiniz.

Sanal Makineler kullanma nedenleri

Kapsayıcıların en iyi çözüm olmadığı durumlar da vardır. Kapsayıcılar tek bir işletim sisteminde çalıştırıldığında ve sistem kaynaklarını paylaştığında, güvenlik önemlidir. Bir saldırgan süper kullanıcı ayrıcalıkları kazanırsa, bazı vektörler uygulamalara erişim elde etmeye neden olabilir. Kapsayıcılarda, uygulamaların konak bilgisayarla aynı işletim sisteminde çalıştırılması gerekir. Linux tabanlı uygulamaları Windows'daki kapsayıcılarda çalıştıramazsınız. VM'lerle Windows'da bir Linux makinesi veya macOS üzerinde bir Windows makinesi barındırarak daha fazla esneklik sağlarsınız. VM'ler, tek bir VM'de sıkı tümleştirme ile birden çok uygulama barındırmanıza olanak tanır. Kapsayıcılar geleneksel olarak yalnızca tek uygulamaları barındırır.

VM'ler kapsayıcılardan daha az verimlidir. Belirli bir donanım kümesinde, kapsayıcılardaki uygulama sayısını VM'lerle çalıştırabileceğinizden en az iki kat daha fazla çalıştırabilirsiniz. Vm daha fazla kaynak kullanır çünkü konuk işletim sistemini desteklemek için işletim sisteminin tam bir kopyasına ve tüm donanımın sanallaştırılmış sürümlerine ihtiyaç duyar.

Kapsayıcıları kullanma nedenleri

Kapsayıcılar karşılaştırmada daha hafiftir ve uygulamaları daha küçük bir ayak izine paketlemenizi sağlar. Kapsayıcıları barındıran tek bir işletim sistemi olduğundan yönetim daha az olur. Her VM'de her konuk işletim sistemi yerine yalnızca tek bir işletim sistemine düzeltme eki uygulamanız ve güncelleştirmeniz gerekir. Kapsayıcılar daha küçük ve daha basittir, bu nedenle vm'yi başlatmak için gereken dakikalar yerine saniyeler içinde başlatılabilirler.

Düzenleme

Docker Swarm, Kubernetes ve diğer çözümleri kullanarak kapsayıcıları düzenleyebilirsiniz. Düzenleyiciler kapsayıcıları kullanarak uygulamaları izleyip ölçeklendirmeyi ve bir olağanüstü durum kurtarma düzeyi sağlamayı mümkün hale getirir. Microsoft, Kubernetes'in nasıl kullanılacağına ilişkin araçlar ve örnekler sağlar, bu nedenle Linux üzerinde SQL Server kapsayıcılı hale getirmek için iyi bir seçimdir. Kubernetes ile kullanılabilen bir Linux üzerinde SQL Server kapsayıcı görüntüsü vardır.

Kapsayıcılı Linux üzerinde SQL Server

Kapsayıcılarda çalışan veritabanlarıyla ilgili sorunlardan biri kalıcı depolamadır. Kapsayıcının dışında veritabanının veritabanı dosyalarını tutabileceği bir depolama konumu sağlamanız gerekir. Değişiklikler daha sonra bir kümedeki tüm kapsayıcılar tarafından kullanılabilir. Kubernetes kullanıyorsanız, bu konum için kalıcı bir birim kullanabilirsiniz.

Diagram of the a Kubernetes cluster running SQL Server and the relationship between nodes, pods, storage, replica sets, and the service.

İlk olarak, kalıcı bir birim oluşturun, ardından kalıcı birim talebi (PVC) ekleyin. Microsoft tarafından oluşturulan mssql-server-linux kapsayıcı görüntüsünü kullanan Linux üzerinde SQL Server için bir dağıtım bildirimi oluşturun. Bildirim, tutarlı bir IP adresini garanti etmek için PVC ve hizmet için yük dengeleyici tanımlarını da içerir. Dağıtımı oluşturun ve SQL Server'ın bir pod içinde çalışıp çalışmadığını denetleyin. Bu kurulum tamamlandıktan sonra düğüm başarısız olursa Kubernetes yeni bir örneği önyükler. Basit bir test, bu podu silmek ve yeni bir pod'un otomatik olarak başlatılıp başlatılmadığını denetlemektir.

Bilgilerinizi kontrol edin

1.

Vm ne zaman bir uygulamayı barındırmak için en iyi seçenek olur?