Öğretici: Linux Service Fabric kümesi üzerinde kapsayıcı görüntüleri oluşturma
Bu öğretici, Linux Service Fabric kümesinde kapsayıcıları kullanmayı gösteren öğretici serisinin ilk parçasıdır. Bu öğreticide, bir çoklu konteyner uygulaması Service Fabric ile kullanılmak üzere hazırlanmaktadır. Sonraki öğreticilerde, bu görüntüler Service Fabric uygulamasının bir parçası olarak kullanılır. Bu öğreticide şunların nasıl yapıldığını öğrenirsiniz:
- Uygulama kaynağını GitHub’dan kopyalama
- Uygulama kaynağından kapsayıcı görüntüsü oluşturma
- Azure Container Registry (ACR) örneği dağıtma
- ACR için kapsayıcı görüntüsü etiketleme
- Görüntüyü ACR’ye yükleme
Bu öğretici serisinde şunların nasıl yapıldığını öğrenirsiniz:
- Service Fabric için kapsayıcı görüntüleri oluşturma
- Kapsayıcılara Sahip bir Service Fabric Uygulaması Derleme ve Çalıştırma
- Service Fabric’de yük devretme ve ölçeklendirme nasıl işlenir?
Önkoşullar
- Service Fabric için ayarlanan Linux geliştirme ortamı. Linux ortamınızı ayarlamak için buradaki yönergeleri izleyin.
- Bu öğretici için Azure CLI 2.0.4 veya sonraki bir sürümü kullanmanız gerekir. Sürümü bulmak için
az --version
komutunu çalıştırın. Yükleme veya yükseltme yapmanız gerekirse bkz. Azure CLI'yı yükleme. - Ayrıca, Azure aboneliğine sahip olmalısınız. Ücretsiz deneme sürümü hakkında daha fazla bilgi için buraya göz atın.
Uygulama kodunu alma
Bu öğreticide kullanılan örnek uygulama, oylama uygulamasıdır. Bu uygulama, ön uç bileşen ile arka uç Redis örneğinden oluşur. Bileşenler, kapsayıcı görüntüleri olarak paketlenir.
Geliştirme ortamına uygulamanın bir kopyasını indirmek için Git kullanın.
git clone https://github.com/Azure-Samples/service-fabric-containers.git
cd service-fabric-containers/Linux/container-tutorial/
Çözüm, iki klasör ve bir ‘docker-compose.yml’ dosyası içerir. ‘azure-vote’ klasörü, görüntüyü derlemek için kullanılan Dockerfile dosyasının yanı sıra Python ön uç hizmetini de içerir. ‘Voting’ dizini ise kümeye dağıtılmış Service Fabric uygulama paketini içerir. Bu dizinler, bu öğreticiyi tamamlamak için gerekli varlıkları içerir.
Kapsayıcı görüntüleri oluşturma
azure-vote dizini içinde, ön uç web bileşeni için görüntü derlemek üzere aşağıdaki komutu çalıştırın. Bu komut, görüntüyü oluşturmak için bu dizindeki Docker dosyasını kullanır.
docker build -t azure-vote-front .
Not
Erişim reddediliyorsa Docker'da sudo ile çalışmayı anlatan bu belgeyi izleyin.
Gerekli tüm bağımlılıkların Docker Hub’dan çekilmesi gerektiğinden, bu komutun çalıştırılması uzun sürebilir. Tamamlandığında, yeni oluşturduğunuz azure-vote-front görüntüsünü görmek için docker images komutunu kullanın.
docker images
Azure Container Registry’yi dağıtma
Azure hesabınızda oturum açmak için önce az login komutunu çalıştırın.
az login
Sonra, Azure Container kayıt defterini oluşturmada kullanacağınız aboneliğinizi seçmenizi sağlayan az account komutunu kullanın. subscription_id> yerine <Azure aboneliğinizin abonelik kimliğini girmeniz gerekir.
az account set --subscription <subscription_id>
Bir Azure Container Registry dağıtırken önce bir kaynak grubuna ihtiyaç duyarsınız. Azure kaynak grubu, Azure kaynaklarının dağıtıldığı ve yönetildiği bir mantıksal kapsayıcıdır.
az group create komutuyla bir kaynak grubu oluşturun. Bu örnekte, westus bölgesinde myResourceGroup adlı bir kaynak grubu oluşturulur.
az group create --name <myResourceGroup> --location westus
az acr create komutuyla Azure Container kayıt defteri oluşturun. acrName> değerini aboneliğiniz altında oluşturmak istediğiniz kapsayıcı kayıt defterinin adıyla değiştirin<. Bu ad, alfasayısal karakterler içermeli ve benzersiz olmalıdır.
az acr create --resource-group <myResourceGroup> --name <acrName> --sku Basic --admin-enabled true
Bu öğreticinin geri kalan aşamalarında, seçtiğiniz kapsayıcı kayıt defteri adı için yer tutucu olarak “acrName” kullanacağız. Lütfen bu değeri not edin.
Kapsayıcı kayıt defterinizde oturum açın
Görüntüleri göndermeden önce ACR örneğinizde oturum açın. İşlemi tamamlamak için az acr login komutunu kullanın. Kapsayıcı kayıt defterine oluşturulduğunda verilen benzersiz adı sağlayın.
az acr login --name <acrName>
Komut tamamlandığında bir “Oturum Başarıyla Açıldı” iletisi döndürür.
Kapsayıcı görüntülerini etiketleme
Her kapsayıcı görüntüsünün, kayıt defterinin loginServer adıyla etiketlenmesi gerekir. Bu etiket, görüntü kayıt defterine kapsayıcı görüntüleri gönderilirken kullanılır.
Mevcut görüntülerin listesini görüntülemek için docker images komutunu kullanın.
docker images
Çıktı:
REPOSITORY TAG IMAGE ID CREATED SIZE
azure-vote-front latest 052c549a75bf About a minute ago 913MB
loginServer adını almak için aşağıdaki komutu çalıştırın:
az acr show --name <acrName> --query loginServer --output table
Bu çıkış, aşağıdaki sonuçları içeren bir tablo döndürür. Bu sonuç, sonraki adımda kapsayıcı kayıt defterine göndermeden önce azure-vote-front görüntünüzü etiketleyebilmeniz için gereklidir.
Result
------------------
<acrName>.azurecr.io
Şimdi, kapsayıcı kayıt defterinizin loginServer’ı için azure-vote-front görüntüsünü etiketleyin. Ayrıca, görüntü adının sonuna :v1
ekleyin. Bu etiket, görüntü sürümünü belirtir.
docker tag azure-vote-front <acrName>.azurecr.io/azure-vote-front:v1
Etiketledikten sonra, işlemi doğrulamak için ‘docker images’ komutunu çalıştırın.
Çıktı:
REPOSITORY TAG IMAGE ID CREATED SIZE
azure-vote-front latest 052c549a75bf 23 minutes ago 913MB
<acrName>.azurecr.io/azure-vote-front v1 052c549a75bf 23 minutes ago 913MB
Kayıt defterine görüntü gönderme
azure-vote-front görüntüsünü kayıt defterine gönderin.
Aşağıdaki örneği kullanarak, ortamınızda, ACR loginServer adını loginServer olarak değiştirin.
docker push <acrName>.azurecr.io/azure-vote-front:v1
Docker gönderme komutlarının tamamlanması birkaç dakika sürebilir.
Kayıt defterindeki görüntüleri listeleme
Azure Container Registry’nize gönderilen görüntülerin listesini döndürmek için az acr repository list komutunu kullanın. Komutu ACR örneği adıyla güncelleştirin.
az acr repository list --name <acrName> --output table
Çıktı:
Result
----------------
azure-vote-front
Öğretici tamamlandığında, kapsayıcı görüntüsü özel bir Azure Container Registry örneğinde depolanır. Sonraki öğreticilerde, bu görüntüyü ACR’den bir Service Fabric kümesine dağıtma işlemi açıklanmıştır.
Sonraki adımlar
Bu öğreticide, GitHub'dan bir uygulama çekildi ve kapsayıcı görüntüleri oluşturulup bir kayıt defterine gönderildi. Aşağıdaki adımlar tamamlandı:
- Uygulama kaynağını GitHub’dan kopyalama
- Uygulama kaynağından kapsayıcı görüntüsü oluşturma
- Azure Container Registry (ACR) örneği dağıtma
- ACR için kapsayıcı görüntüsü etiketleme
- Görüntüyü ACR’ye yükleme
Yeoman kullanarak bir Service Fabric uygulamasına kapsayıcı paketleme hakkında bilgi edinmek için sonraki öğreticiye geçin.