
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 Kubernetes cluster and deployments (Auth, Hello, and Frontend)
/ 50
Canary Deployment
/ 50
DevOps yöntemlerinde, uygulama dağıtım senaryolarını (ör. sürekli dağıtım, mavi-yeşil dağıtım, canary dağıtımı) yönetmek için birden fazla dağıtım kullanılır. Bu laboratuvarda, birden fazla heterojen dağıtımın kullanıldığı yaygın senaryoları tamamlamak için container'ları ölçeklendirmeyi ve yönetmeyi öğreneceksiniz.
Bu laboratuvarda nasıl yapılacağını öğreneceğiniz görevler:
kubectl
aracını kullanmayaml
dosyaları oluşturmaBu laboratuvarda öğrendiklerinizden mümkün olan en iyi şekilde yararlanabilmek için aşağıdakileri yapmanız önerilir:
Heterojen dağtımlar, belirli bir teknik ya da operasyonel ihtiyacı karşılamak için iki veya daha fazla ayrı altyapı ortamını ya da bölgesini bağlar. Heterojen dağıtımlar, dağıtımın özelliklerine bağlı olarak "karma", "çoklu bulut" veya "herkese açık-gizli" olarak adlandırılır.
Bu laboratuvarda heterojen dağıtımlar; tek bulut ortamındaki bölgeleri kapsayanlar, birden fazla herkese açık bulut ortamını kapsayanlar (çoklu bulut) veya hem şirket içi hem herkese açık bulut ortamlarını kapsayanlar (karma ya da herkese açık-gizli) olarak ele alınacaktır.
Tek ortamla veya bölgeyle kısıtlanmış olan dağıtımlarda işletme ve teknik durumlarla ilgili çeşitli zorluklar ortaya çıkabilir:
Heterojen dağıtımlar sayesinde bu zorlukların üstesinden gelebilirsiniz. Ancak bu dağıtımları, programatik ve deterministik süreçler ve prosedürlerle inşa etmeniz gerekir. Bir defalık veya anlık dağıtım prosedürlerinden yararlanmak dağıtımların ya da süreçlerin hassas ve hataya yatkın olmasına yol açabilir. Anlık süreçlerde veri veya trafik kaybı yaşanabilir. Başarılı dağıtım süreçlerinin, tekrarlanabilir olması ve yönetme, temel hazırlık, yapılandırma ve bakım yapma gibi işlemler için daha önce denenmiş yaklaşımları kullanması gerekir.
Heterojen dağıtımda sık karşılaşılan üç senaryo vardır:
Aşağıdaki alıştırmalarda heterojen dağıtımların bazı yaygın kullanım alanlarına yer verilmiştir. Ayrıca, bu dağıtımları yürütmek için Kubernetes'i ve diğer altyapı kaynaklarını kullanan iyi tasarlanmış yaklaşımlar paylaşılmıştır.
Buradaki talimatları okuyun. Laboratuvarlar süreli olduğundan duraklatılamaz. 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 gerçek bir bulut ortamında (Simülasyon veya demo ortamında değil.) gerçekleştirebilirsiniz. Bu olanağın sunulabilmesi 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 kullanırsınız.
Bu laboratuvarı tamamlamak için şunlar gerekir:
Laboratuvarı Başlat düğmesini tıklayın. Laboratuvar için ödeme yapmanız gerekiyorsa ödeme yöntemini seçebileceğiniz bir pop-up 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çın 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 Console 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.
Bağlandığınızda, kimliğiniz doğrulanmış olur. Proje ise PROJECT_ID'nize göre ayarlanmıştır. Çıkış, bu oturum için PROJECT_ID'yi tanımlayan bir satır içerir:
gcloud
, Google Cloud'un komut satırı aracıdır. Cloud Shell'e önceden yüklenmiştir ve sekmeyle tamamlamayı destekler.
Yetkilendir'i tıklayın.
Çıkışınız aşağıdaki gibi görünecektir:
Çıkış:
Çıkış:
Örnek çıkış:
gcloud
ile ilgili tüm belgeleri, Google Cloud'daki gcloud CLI'ya genel bakış rehberinde bulabilirsiniz.
Aşağıdaki komutu çalıştırarak Google Cloud çalışma alt bölgenizi ayarların ve yerel alt bölgeyi
İlk olarak dağıtım nesnesini inceleyelim.
kubectl
aracındaki explain
komutunu kullanarak dağıtım nesnesi hakkında bilgi edinebilirsiniz:--recursive
seçeneğini kullanarak tüm alanları görebilirsiniz:deployments/auth.yaml
yapılandırma dosyasını güncelleyin:image
kodunu aşağıdaki şekilde değiştirin:auth.yaml
dosyasını kaydedin. <Esc>
tuşuna basıp aşağıdaki kodu yazın:<Enter>
tuşuna basın. Basit bir dağıtım oluşturun. Dağıtımın yapılandırma dosyasını inceleyin:Çıkış:
Dağıtımın bir replika oluşturduğunu ve auth container'ın 1.0.0 sürümünü kullandığını fark etmişsinizdir.
auth dağıtımı oluşturmak için kubectl create
komutunu çalıştırdığınızda dağıtım manifestindeki verilere uyan bir kapsül oluşturulur. Bu, replicas
alanında belirtilen sayıyı değiştirerek kapsül sayısını ölçeklendirebileceğiniz anlamına gelir.
kubectl create
komutunu kullanarak dağıtım nesnenizi oluşturun:ReplicaSet
(replika kümesi) oluşturur. Dağıtım için ReplicaSet
'in oluşturulup oluşturulmadığını kontrol edin:ReplicaSet
'in auth-xxxxxxx
benzeri bir adı vardır.
ReplicaSet
oluşturulduğunda üretilir:auth dağıtımı için hizmet oluşturmaya sıra geldi. Hizmet manifest dosyalarından daha önce bahsedildiği için burada ayrıntılara yer verilmeyecek.
kubectl create
komutunu kullanarak auth hizmetini oluşturun:Hello
dağıtımını oluşturmak ve kullanıma sunmak için aynı işlemi yapın:Ön uç
dağıtımını oluşturmak ve kullanıma sunmak için aynı işlemi tekrarlayın:ConfigMap
oluşturdunuz.Hello'dan yanıt gelmiş olması gerekir.
kubectl
aracının çıkış şablonu oluşturma özelliğini kullanarak curl'ü tek satır şeklinde kullanabilirsiniz:Laboratuvardaki ilerleme durumunuzu kontrol etmek için İlerleme durumumu kontrol et'i tıklayın. Kubernetes kümelerini, auth, hello ve ön uç dağıtımlarını başarıyla oluşturduğunuzda bir değerlendirme puanı göreceksiniz.
Dağıtımınızı oluşturduğunuza göre artık ölçeklendirebilirsiniz. Bunun için spec.replicas
alanını güncelleyin.
kubectl explain
komutunu yeniden kullanarak bu alana dair açıklamayı inceleyin:kubectl scale
komutunu kullanmaktır:Dağıtım güncellendikten sonra Kubernetes, ilişkili ReplicaSet
'i otomatik olarak günceller ve 5 kapsüle ulaşana kadar yeni kapsül başlatır.
hello
kapsülüne ulaşıp ulaşmadığınızı aşağıdaki komutla kontrol edin:Kubernetes dağıtımlarını ve kapsül gruplarını yönetip ölçeklendirmeyi öğrendiniz.
Dağıtımlar, görüntülerin sürüm güncellemelerini yapmak için periyodik güncelleme mekanizmasından yararlanır. Dağıtım yeni sürüme güncellendiğinde yeni bir ReplicaSet
oluşturur ve yeni ReplicaSet
'teki replika sayısını yavaşça artırırken eski ReplicaSet
'teki replika sayısını da azaltır.
image
kodunu aşağıdaki şekilde değiştirin:Güncellenmiş dağıtım, kümenize kaydedilir ve Kubernetes periyodik güncelleme işlemine başlar.
ReplicaSet
'i inceleyin:Kullanıma sunma sırasında herhangi bir sorun fark ederseniz güncellemeyi duraklatabilirsiniz.
Kullanıma sunmanın duraklatılması bazı kapsüllerin yeni sürümde, bazılarınınsa eski sürümde kaldığı anlamına gelir.
resume
komutunu kullanarak kullanıma sunmayı devam ettirin:status
komutunu çalıştırdığınızda şunu görürsünüz:Çıkış:
Yeni sürümünüzde bir hata tespit edildiğini varsayalım. Yeni sürümün hatalı olduğunu varsaydığımız için yeni kapsüllere bağlanan tüm kullanıcılar bu hatadan etkilenecek.
Uygulamanızı önceki sürüme geri çekerek sorunu araştırabilir ve düzeltilmiş sürümü yayınlayabilirsiniz.
rollout
komutunu kullanarak önceki sürüme dönün:Güzel! Kubernetes dağıtımlarında periyodik güncelleme yapmayı ve uygulamanızı kullanıma kapatmadan güncellemeyi öğrendiniz.
Yeni bir dağıtımı, kullanıcılarınızın bir alt kümesiyle üretim aşamasında test etmek istiyorsanız canary dağıtımı kullanın. Canary dağıtımı, kullanıma sunacağınız yenilikleri kullanıcılarınızın küçük bir kısmıyla paylaşarak riskleri azaltmanıza yardımcı olur.
Canary dağıtımı, yeni sürümünüzün yer aldığı ayrı bir dağıtımdan ve hem normal/stabil dağıtımınızı hem canary dağıtımınızı hedefleyen bir hizmetten oluşur.
Çıkış:
hello
ve hello-canary
adlarında iki dağıtımınızın olması gerekir. Aşağıdaki kubectl
komutunu çalıştırarak kontrol edin:hello
hizmetinde app:hello
seçicisi kullanılır. Böylece, hem üretim hem canary dağıtımlarındaki kapsül sayısına göre eşitleme yapılır. Ancak canary dağıtımında daha az kapsül olduğu için daha az kullanıcıya gösterilir.
hello
sürümünü doğrulayabilirsiniz:Laboratuvardaki ilerleme durumunuzu kontrol etmek için İlerleme durumumu kontrol et'i tıklayın. Canary dağıtımını başarıyla oluşturduğunuzda bir değerlendirme puanı göreceksiniz.
Bu laboratuvarda, Nginx hizmetine gönderilen her bir isteğin canary dağıtımı tarafından sunulması mümkündür. Peki, bir kullanıcı için canary dağıtımı kullanılmamasını istiyorsanız ne yapabilirsiniz? Örneğin, uygulamanızın arayüzünü değiştirdiniz ve kullanıcıların aklını karıştırmak istemiyorsunuz. Böyle bir durumda kullanıcının bir dağıtıma veya diğerine "bağlı" kalmasını istersiniz.
Oturum benzeşimli bir hizmet oluşturarak bunu yapabilirsiniz. Bu sayede, bir kullanıcıya her zaman aynı sürüm sunulur. Aşağıdaki örnekte hizmet her zamankiyle aynı olsa da sessionAffinity
alanı eklendi ve ClientIP
olarak ayarlandı. Aynı IP adresine sahip olan tüm müşterilerin istekleri, hello
uygulamasının aynı sürümüne gönderilir.
Bunu test etmek için ortamı ayarlamak zor olduğundan burada test etmeniz gerekmez. Yine de üretimdeki canary dağıtımlarında sessionAffinity
komutunu kullanmanız önerilir.
Periyodik güncellemeler uygulamanızı daha az ek yükle, performs düşüşüyle ve kapalı kalma süresiyle kademeli olarak dağıtmanıza olanak tanır. Yük dengeleyicileri, sadece yeni sürüm tam olarak dağıtıldıktan sonra yeni sürüme işaret edecek şekilde düzenlemenin avantajları vardır. Bu durumda tercihiniz, mavi-yeşil dağıtımdan yana olabilir.
Kubernetes; biri eski "mavi" sürüm, diğeri yeni "yeşil" sürüm için olmak üzere iki ayrı dağıtım oluşturur. "Mavi" sürüm için mevcut hello
dağıtımınızı kullanın. Dağıtımlara, yönlendirici olarak çalışan bir hizmet aracılığıyla erişilir. Yeni "yeşil" sürüm çalışmaya başladığında hizmeti güncelleyerek söz konusu sürüme geçebilirsiniz.
Mevcut hello hizmetini kullanın ancak seçicisi app:hello
, version: 1.0.0
olacak şekilde güncelleyin. Seçici, mevcut "mavi" dağıtımı eşler. Ancak farklı bir sürüm kullanacağı için "yeşil" dağıtımı eşlemez.
resource service/hello is missing
uyarısını görmezden gelebilirsiniz.Mavi-yeşil dağıtım stilini desteklemek üzere yeni sürüm için yeni bir "yeşil" dağıtım oluşturmanız gerekir. Yeşil dağıtım sürüm etiketini ve görüntü yolunu günceller.
Gerektiğinde eski sürüme aynı şekilde dönebilirsiniz.
Başardınız. Mavi-yeşil dağıtım oluşturmayı ve aynı anda sürüm değişikliği yapmanız gereken uygulamalarda güncellemeleri dağıtmayı öğrendiniz.
kubectl
komut satırı aracını ve dağıtımlarınızı başlatma, güncelleme ve ölçeklendirme işlemlerinde kullanılan YAML dosyalarının farklı dağıtım yapılandırma stillerini deneme fırsatınız oldu. Bu temel alıştırmalar sayesinde edindiğiniz becerileri kendi DevOps uygulamalarınızda kullanabilirsiniz.
Google Cloud dokümanlarında DevOps Çözümleri ve DevOps Kılavuzları
Kubernetes web sitesini ziyaret ederek Kubernetes topluluğuyla etkileşim kurabilirsiniz.
...Google Cloud teknolojilerinden en iyi şekilde yararlanmanıza yardımcı olur. Derslerimizde teknik becerilere odaklanırken en iyi uygulamalara da yer veriyoruz. Gerekli yetkinlik seviyesine hızlıca ulaşmanız ve öğrenim maceranızı sürdürebilmeniz için sizlere yardımcı olmayı amaçlıyoruz. Temel kavramlardan ileri seviyeye kadar farklı eğitim programlarımız mevcut. Ayrıca, yoğun gündeminize uyması için talep üzerine sağlanan, canlı ve sanal eğitim alternatiflerimiz de var. Sertifikasyonlar ise Google Cloud teknolojilerindeki becerilerinizi ve uzmanlığınızı doğrulamanıza ve kanıtlamanıza yardımcı oluyor.
Kılavuzun Son Güncellenme Tarihi: 2 Nisan 2024
Laboratuvarın Son Test Edilme Tarihi: 14 Ağustos 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