
Before you begin
- Labs create a Google Cloud project and resources for a fixed time
- Labs have a time limit and no pause feature. If you end the lab, you'll have to restart from the beginning.
- On the top left of your screen, click Start lab to begin
Create a GKE cluster
/ 20
Create Docker container with Cloud Build
/ 20
Deploy container to GKE
/ 10
Expose GKE Deployment
/ 20
Scale GKE deployment
/ 10
Make changes to the website
/ 10
Update website with zero downtime
/ 10
Web sitesi veya uygulama işletmek zor bir iştir. En olmayacak zamanlarda sorunlar yaşanır, sunucular çöker veya talep artışları daha fazla kaynak kullanılmasına yol açar. Üstelik, sisteme kapalı kalma süresi tanımadan değişiklik yapmak karmaşık ve streslidir. Gerekli işlemleri yapmanızı, hatta otomatik hale getirmenizi sağlayan bir aracın var olduğunu düşünün. Kubernetes size bu olanakların hepsini sunmakla kalmaz, bu işlemleri zahmetsiz hale de getirir.
Bu laboratuvarda, e-ticaret web sitesi işleten Fancy Store adlı kurgusal şirkette çalışan bir geliştirici rolünü oynayacaksınız. Şirketin karşılaştığı ölçeklendirme sorunları ve kesintiler nedeniyle uygulamanızı Google Kubernetes Engine'e (GKE) dağıtmanız istendi.
Bu laboratuvardaki alıştırmalar, bulut geliştiricilerinin sıkça takip ettiği adımlara uygun şekilde sıralanmıştır:
Buradaki talimatları okuyun. Laboratuvarlar süreli olduğundan duraklatılamaz. Start Lab'i (Laboratuvarı başlat) tıkladığınızda başlayan zamanlayıcı, Google Cloud kaynaklarının ne süreyle kullanımınıza açık durumda kalacağını gösterir.
Bu uygulamalı laboratuvarı kullanarak, laboratuvar etkinliklerini simülasyon veya demo ortamı yerine gerçek bir bulut ortamında gerçekleştirebilirsiniz. Bunu yapabilmeniz için size yeni, geçici kimlik bilgileri verilir. Bu kimlik bilgilerini laboratuvar süresince Google Cloud'da oturum açmak ve Google Cloud'a erişmek için kullanabilirsiniz.
Bu laboratuvarı tamamlamak için gerekenler:
Laboratuvarı Başlat düğmesini tıklayın. Laboratuvar için ödeme yapmanız gerekiyorsa ödeme yöntemini seçebileceğiniz bir iletişim kutusu açılır. Soldaki "Laboratuvar ayrıntıları" panelinde şunlar yer alır:
Google Cloud Console'u aç'ı tıklayın (veya Chrome Tarayıcı'yı kullanıyorsanız sağ tıklayıp Bağlantıyı gizli pencerede aç'ı seçin).
Laboratuvar, kaynakları çalıştırır ve sonra "Oturum aç" sayfasını gösteren başka bir sekme açar.
İpucu: Sekmeleri ayrı pencerelerde, yan yana açın.
Gerekirse aşağıdaki kullanıcı adını kopyalayıp Oturum açın iletişim kutusuna yapıştırın.
Kullanıcı adını "Laboratuvar ayrıntıları" panelinde de bulabilirsiniz.
İleri'yi tıklayın.
Aşağıdaki şifreyi kopyalayıp Hoş geldiniz iletişim kutusuna yapıştırın.
Şifreyi "Laboratuvar ayrıntıları" panelinde de bulabilirsiniz.
İleri'yi tıklayın.
Sonraki sayfalarda ilgili düğmeleri tıklayarak ilerleyin:
Birkaç saniye sonra Google Cloud konsolu bu sekmede açılır.
Cloud Shell, çok sayıda geliştirme aracı içeren bir sanal makinedir. 5 GB boyutunda kalıcı bir ana dizin sunar ve Google Cloud üzerinde çalışır. Cloud Shell, Google Cloud kaynaklarınıza komut satırı erişimi sağlar.
Google Cloud konsolunun üst kısmından Activate Cloud Shell (Cloud Shell'i etkinleştir) simgesini tıklayın.
Aşağıdaki pencereleri tıklayın:
Bağlandığınızda kimliğiniz zaten doğrulanmıştır. Proje ise Project_ID'nize (
gcloud
, Google Cloud'un komut satırı aracıdır. Cloud Shell'e önceden yüklenmiştir ve sekmeyle tamamlamayı destekler.
Çıkış:
Çıkış:
gcloud
ile ilgili tüm belgeleri, Google Cloud'daki gcloud CLI'a genel bakış rehberinde bulabilirsiniz.
Bölgeler ve Alt Bölgeler belgelerinden daha fazla bilgi edinebilirsiniz.
Web sitenizi dağıtacağınız bir Kubernetes kümesine ihtiyacınız var. Öncelikle, uygun API'lerin etkinleştirildiğinden emin olun.
Artık küme oluşturmaya hazırsınız.
fancy-cluster
adlı ve 3 düğümlü bir GKE kümesi oluşturmak için şu komutu çalıştırın:Kümenin oluşturulması birkaç dakika sürer.
Çıkış:
Google Cloud Console'da Kubernetes kümenizi ve ilgili bilgileri bulun.
Gezinme menüsü () > Kubernetes Engine > Kümeler'i tıklayın.
Burada fancy-cluster adlı kümenizi göreceksiniz.
Tebrikler! İlk Kubernetes kümenizi oluşturdunuz.
Hedefi doğrulamak için İlerleme durumumu kontrol et'i tıklayın.
Var olan bir web sitesiyle çalıştığınız için kaynağı klonlamanız yeterlidir. Böylece, Docker görüntüsü oluşturup GKE'ye dağıtım yapmaya odaklanabilirsiniz.
Uygun dizine geçin.
Dağıtım öncesinde uygulamanızı test edebilmeniz için NodeJS bağımlılıklarını yüklemeniz gerekir:
Bu komut dosyasının çalışması tamamlanana dek birkaç dakika bekleyin.
npm
'nin güncel sürümüyle çalıştırdığınızdan emin olun:Çıkış:
Bu işlemi yaptığınızda, Fancy Store'u iş başında görebilirsiniz.
Laboratuvarın ilerleyen bölümlerinde tekrar ziyaret edeceğiniz bu sekmeyi açık bırakın.
Kaynak dosyalarınız artık hazır olduğuna göre sıra, uygulamanızı Docker'a uygun hale getirmeye geldi.
Normalde bu süreç iki adımda tamamlanır. Bir Docker container'ı oluşturulur ve GKE'nin pull edebileceği şekilde görüntünün depolanması için bu container bir kayıt defterine push edilir. İşinizin kolaylaşması için Docker container'ı Cloud Build yardımıyla oluşturun ve görüntüyü tek bir komutla Container Registry'ye yerleştirin. Tek bir komutla görüntüyü derleyip Container Registry'ye taşıyabilirsiniz. Docker dosyası oluşturma ve aktarma işlemlerinden oluşan manuel süreç hakkında daha fazla bilgiye Container Registry Hızlı Başlangıç Kılavuzu'ndan ulaşabilirsiniz.
Google Cloud Build, dizindeki dosyaları sıkıştırır ve bir Google Cloud Storage paketine taşır. Ardından, derleme işlemi sırasında paketteki tüm dosyalar alınır ve Dockerfile üzerinden Docker derleme işlemi çalıştırılır. Docker görüntüsü için ana makineyi gcr.io olarak ayarladığınız ve --tag
işaretini belirttiğinizden, elde edilen Docker görüntüsü Google Cloud Container Registry'ye push edilir.
Terminalde şuna benzer bir çıktı alınır:
Derleme geçmişinizi görüntülemek veya işlemi gerçek zamanlı olarak izlemek için Gezinme menüsünü tıklayın, Araçlar bölümüne gidin ve Cloud Build > Geçmiş'i tıklayın. Burada önceki tüm derlemelerinizin listesini görebilirsiniz.
Bir derlemeyle ilgili olarak günlük çıkışı dahil tüm ayrıntıları görmek için derlemenin adını tıklayın.
İsteğe bağlı: Derleme ayrıntıları sayfasından, derleme bilgileri bölümündeki Derleme özeti > Yürütme ayrıntıları > Görüntü adı'na giderek container görüntüsünü inceleyebilirsiniz:
Hedefi doğrulamak için İlerleme durumumu kontrol et'i tıklayın.
Web sitenizi container mimarisine aldığınıza ve container'ınızı Google Container Registry'ye aktardığınıza göre sıra Kubernetes'e dağıtım yapmaya geldi.
Uygulamaları bir GKE kümesinde dağıtıp yönetmek için Kubernetes küme yönetimi sistemiyle iletişim kurmanız gerekir. Bunun için genellikle kubectl
komut satırı aracı kullanılır.
Kubernetes'te uygulamalar Kapsüller şeklinde temsil edilir. Kapsüller, bir container'ı (veya birbirlerine sıkı sıkıya bağlı bir grup container'ı) temsil eden birimlerdir. Kapsül, Kubernetes'teki en küçük dağıtılabilir birimdir. Bu laboratuvardaki her kapsülde yalnızca monolit container'ınız yer almaktadır.
Uygulamanızı dağıtmak için bir Dağıtım kaynağı oluşturun. Dağıtım, uygulamanızın replika adı verilen birden fazla kopyasını yönetir ve bu kopyaların her birinin kümenizdeki ayrı birer düğümde çalıştırılmasını planlar. Bu laboratuvarda, Dağıtım tarafından uygulamanızın yalnızca bir kapsülü çalıştırılacaktır. Dağıtımlar bunun için bir ReplicaSet oluşturur. ReplicaSet, belirtilen sayıda replikanın her zaman çalışmasını sağlamaktan sorumludur.
Şimdi kullanacağınız kubectl create deployment
komutu, Kubernetes'in kümenizde monolith
adlı ve 1 replikalı bir Dağıtım oluşturmasını sağlar.
Hedefi doğrulamak için İlerleme durumumu kontrol et'i tıklayın.
Kapsül durumu Çalışıyor olana dek komutu yeniden çalıştırın.
Çıkış:
Bu çıkışta çeşitli bilgiler sunulmaktadır:
Bu durumda tüm öğeler başarıyla oluşturulmuş demektir.
kubectl describe pod monolith
kubectl describe pod/monolith-7d8bc7bf68-2bxts
kubectl describe deployment monolith
kubectl describe deployment.apps/monolith
Çıkışın sonunda, hata oluşturan etkinliklerin listesi ve kaynaklarınız hakkında ayrıntılı bilgiler gösterilir.İsteğe bağlı: Her bir komutu dağıtımlarınız için ayrı ayrı da çalıştırabilirsiniz:
Kubernetes'in tüm avantajlarını görmek için bir kapsülü silerek sunucu çöküşü simülasyonu yapın ve neler olacağını öğrenin.
Silme işlemini İş Yükleri sayfasından izleyebilirsiniz.
İş yükü adını tıklayın (hızla gerçekleşir).
Yeterince hızlı hareket ederseniz get all
komutunu yeniden çalıştırarak biri sonlandırılan ve diğeri oluşturulan veya çalıştırılan iki kapsül görebilirsiniz:
Çıkış:
Neden böyle oldu? ReplicaSet, kapsülün sonlandırıldığını gördü ve istenen replika sayısını korumak için yeni bir kapsül oluşumunu tetikledi. Sonraki bölümlerde, birden fazla örneğin çalışacağı şekilde ölçeğin nasıl genişletildiğini göreceksiniz. Bu durumda örneklerden birinin çökmesi, kullanıcılara sitenin veya uygulamanın kapalı kaldığı süre olarak yansımaz.
Uygulamanızı GKE'de dağıttınız ancak uygulamaya küme dışından erişilemiyor. Varsayılan olarak, GKE'de çalıştırılan container'ların harici bir IP adresi bulunmadığından bu container'lara internet üzerinden erişilemez. İnternet trafiği alabilmesi için uygulamanızı bir Hizmet kaynağı üzerinden açıkça kullanıma sunmanız gerekir. Hizmetler, uygulamanızın kapsüllerine ağ ve IP desteği sağlar. GKE, uygulamanız için harici bir IP adresi ve bir yük dengeleyici oluşturur.
GKE, harici IP adresini Dağıtım'a değil Hizmet kaynağına atar.
kubectl get service
komutunu kullanabilirsiniz:Çıkış:
Hizmetiniz için harici bir IP adresi görene dek komutu yeniden çalıştırın.
Daha önce test ettiğiniz web sitesini göreceksiniz. Web siteniz artık Kubernetes'te tam olarak çalışıyor.
Hedefi doğrulamak için İlerleme durumumu kontrol et'i tıklayın.
Artık uygulamanız GKE'de çalışıyor ve internet üzerinden kullanıma açık. Web sitenizin çok popülerleştiğini hayal edin. Uygulamanızın tüm bu trafikle başa çıkabilmesi için uygulama ölçeğini birden fazla örneğin kullanılacağı şekilde artıracak bir yöntem gereklidir. Şimdi de uygulamanın ölçeğini 3 replikaya kadar nasıl artırabileceğinizi öğreneceksiniz.
Çıkış:
Artık kapsülünüzün çalıştırıldığı 3 örnek görmeniz gerekir. Dağıtım ve replika kümesi sayısının da artık istendiği gibi 3 olduğunu fark edeceksiniz.
Hedefi doğrulamak için İlerleme durumumu kontrol et'i tıklayın.
Senaryo: Pazarlama ekibiniz sizden sitenizin ana sayfasını değiştirmenizi istedi. Bu sayfanın şirketinizin kimliği ve aslında nelerin satışını yaptığı konusunda daha bilgilendirici olması gerektiğini düşünüyorlar.
Görev: Pazarlama ekibini memnun etmek için ana sayfaya bazı metinler ekleyeceksiniz. Geliştiricilerden biri istenen değişiklikleri index.js.new
adlı bir dosyada zaten hazırlamış. Bu dosyayı index.js
dosyasına kopyalarsanız değişiklikler sayfaya yansıtılacaktır. Uygun değişiklikleri yapmak için aşağıdaki talimatları uygulayın.
Bu işlem sonucunda elde edilen kod aşağıdaki gibi görünmelidir:
React bileşenleri güncellendi ancak statik dosyaların oluşturulması için React uygulamasının derlenmesi gerekiyor.
Artık kod güncellendiğine göre Docker container'ını yeniden oluşturup Google Cloud Container Registry'de yayınlamanız gerekiyor. Önceki komutu tekrar kullanın ancak bu kez sürüm etiketini güncelleyin.
Sonraki bölümde, kapalı kalma süresi olmadan uygulamanızı güncellemek için bu görüntüyü kullanacaksınız.
Hedefi doğrulamak için İlerleme durumumu kontrol et'i tıklayın.
Değişiklikler tamamlandı ve pazarlama ekibi yaptığınız güncellemelerden memnun kaldı. Şimdi sırada kullanıcıların işlerini kesintiye uğratmadan web sitesini güncellemek var.
GKE'nin periyodik güncelleme mekanizması, eski container görüntünüzün örnekleri çalışan tüm replikalarda sistem tarafından yeni container görüntünüzle değiştirilirken bile uygulamanızın çalışır ve kullanılabilir durumda kalmasını sağlar.
Çıkış:
Burada 3 yeni kapsül oluşturulduğunu ve eski kapsüllerinizin sonlandırıldığını göreceksiniz. Yaşlarına bakarak yeni ve eski kapsülleri ayırt edebilirsiniz. En sonunda, yine yalnızca 3 kapsül gösterilir. Bunlar, güncellenmiş 3 kapsülünüzdür.
Az önce ana sayfa bileşenine eklemiş olduğunuz metin artık web sitenizde gösterilir.
CTRL+C
tuşlarına basın.Hedefi doğrulamak için İlerleme durumumu kontrol et'i tıklayın.
Bu laboratuvarı tamamladığınızda tüm kaynaklar silinir. Yine de, artık ihtiyaç duymadığınız kaynakları kendi ortamınızdan kaldırmanız önerilir.
Y
yazarak işlemi onaylayın. Bu komutun çalıştırılması biraz zaman alabilir.Web sitenizi GKE'de başarıyla dağıttınız, ölçeklendirdiniz ve güncellediniz. Artık Docker ve Kubernetes konularında deneyimli bir kullanıcısınız!
Bu yönlendirmesiz öğrenim laboratuvarı, Website on Google Cloud (Google Cloud'da Web Sitesi) görevinin bir parçasıdır. Görevler, bir öğrenme rotasını oluşturan birbiriyle bağlantılı laboratuvar dizilerini ifade eder. Bu laboratuvara katıldıysanız bu göreve kaydolun ve hemen bir tamamlama kredisi kazanın. Katılabileceğiniz diğer görevlere göz atın.
Becerilerinizi gösterip bilgilerinizi doğrulamak için uygulamalı bir yarışma laboratuvarına katılmak ister misiniz? Söz konusu görevi bitirdikten sonra bu ek yarışma laboratuvarını tamamlayarak özel bir Google Cloud dijital rozeti kazanın.
Google Kubernetes Engine'de Monolitik Bir Web Sitesini Mikro Hizmetlere Taşıma laboratuvarına katılarak öğrenmeye devam edin veya aşağıdaki önerilere göz atın:
Kılavuzun Son Güncellenme Tarihi: 13 Eylül 2023
Laboratuvarın Son Test Edilme Tarihi: 13 Eylül 2023
Telif Hakkı 2025 Google LLC. Tüm hakları saklıdır. Google ve Google logosu, Google LLC şirketinin ticari markalarıdır. Diğer tüm şirket ve ürün adları ilişkili oldukları şirketlerin ticari markaları olabilir.
This content is not currently available
We will notify you via email when it becomes available
Great!
We will contact you via email if it becomes available
One lab at a time
Confirm to end all existing labs and start this one