Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede, OpenShift Sunucusuz ile bir Azure Red Hat OpenShift kümesine bir uygulama dağıtacaksınız. OpenShift Sunucusuz, geliştiricilerin ölçeğini artıracak veya isteğe bağlı olarak sıfıra ölçeklendirecek uygulamaları dağıtıp çalıştırmasına yardımcı olur. Bu, kullanımda olmayan kaynakların tüketimini ortadan kaldırır.
Uygulama kodu, uygun çalışma zamanlarıyla birlikte bir kapsayıcıda paketlenebilir. Sunucusuz işlevsellik, bir olay tarafından tetiklendiklerinde uygulama kapsayıcılarını başlatır. Uygulamaları çeşitli olaylar aracılığıyla tetikleyebilirsiniz: kendi uygulamalarınızdan, birden çok bulut hizmeti sağlayıcısından, hizmet olarak yazılım (SaaS) sistemlerinden ve diğer hizmetlerden.
Sunucusuz kapsayıcı dağıtımının tüm yönlerini yönetmek için yerleşik OpenShift arabirimi özelliklerini kullanabilirsiniz. Geliştiriciler kapsayıcılı uygulamaların başlatılmasını sağlayan olayları görsel olarak belirleyebilir. Olay parametrelerini değiştirmenin birden çok yolu da vardır. OpenShift Sunucusuz uygulamalar OpenShift İşlem Hatları, Service Mesh ve İzleme gibi diğer OpenShift hizmetleriyle tümleştirilebilir. Bu, eksiksiz bir sunucusuz uygulama geliştirme ve dağıtım deneyimi sağlar.
Başlamadan önce
Küme oluşturma
Azure Red Hat OpenShift kümesi oluşturma öğreticisini izleyin. Komut satırı arabirimini (CLI) yerel olarak yükleyip kullanmayı seçerseniz, bu öğretici için Azure CLI sürüm 2.6.0 veya üzerini kullanmanız gerekir. Geçerli sürümünüzü bulmak için az --version
komutunu çalıştırın. Yüklemeniz veya yükseltmeniz gerekiyorsa bkz. Azure CLI'yı yükleme.
Kümeye bağlanma
Azure Red Hat OpenShift kümesini yönetmek için OpenShift komut satırı istemcisi olan oc'yi kullanmanız gerekir.
Uyarı
Azure Cloud Shell'deOpenShift komut satırını yüklemenizi ve bu makaledeki tüm komut satırı işlemleri için kullanmanızı öneririz. kabuğunuzu shell.azure.com açın veya bağlantıyı seçin:
CLI'nizi yüklemek, küme kimlik bilgilerinizi almak ve web konsolu ve OpenShift CLI ile kümeye bağlanmak için öğreticiyi izleyin.
Oturum açtıktan sonra projeyi kullandığınızı default
belirten bir ileti görmeniz gerekir.
Login successful.
You have access to 61 projects, the list has been suppressed. You can list all projects with 'oc projects'
Using project "default".
Knative komut satırı arabirimini (kn) yükleme
Makinenize uygun komut satırı arabiriminin (CLI) en son sürümünühttps://github.com/knative/client/releases/
Azure Cloud Shell'de komut çalıştırıyorsanız Linux için en son Knative CLI'yi indirin.
cd ~
wget https://github.com/knative/client/releases/download/v0.22.0/kn-linux-amd64
mkdir knative
chmod +x kn-linux-amd64
mv kn-linux-amd64 knative/kn
echo 'export PATH=$PATH:~/knative' >> ~/.bashrc && source ~/.bashrc
OpenShift web konsolunu açma
Aşağıdaki betiği çalıştırarak küme web konsolu URL'nizi bulun:
az aro show \
--name <cluster name> \
--resource-group <resource group> \
--query "consoleProfile.url" -o tsv
Aşağıdakine benzer bir URL almanız gerekir.
https://console-openshift-console.apps.wzy5hg7x.eastus.aroapp.io/
Bir web tarayıcısı açın ve konsol URL'sini açın. Kimlik bilgilerini kullanarak kubeadmin
oturum açın.
OpenShift Sunucusuz işlecini yükleme
OpenShift web konsolunda oturum açtığınızda Yönetici görünümünde olduğunuzu onaylayın. Operatör Hub'ınıaçın ve OpenShift Sunucusuz işlecini seçin.
Ardından Yükle'yi seçerek operatör yükleme sayfasını açın.
Azure Red Hat OpenShift'inizin küme sürümü için uygun Güncelleştirme Kanalını seçin ve işleci openshift-serverless
ad alanına yükleyin. Ekranı aşağı kaydırın ve Yükle'yi seçin.
Durum sayfası birkaç dakika içinde işlecin yüklendiğini ve kullanıma hazır olduğunu yansıtır. Devam etmek için İşleci Görüntüle düğmesini seçin.
Knative Serving'ı yükleme
OpenShift Sunucusuz'da bir kapsayıcıyı sunucusuz bir şekilde çalıştırma seçeneği yukarı akış Knative kullanılarak mümkündür. Knative, sunucusuz metodolojisi aracılığıyla modern uygulamaları dağıtan, çalıştıran ve yöneten bir bileşen kümesi sağlamak için Kubernetes'i genişletir.
Knative Serving örneğini oluşturma
Pencerenin sol üst köşesindeki Proje listesinde öğesini seçin knative-server
. Ardından Sağlanan API'ler bölmesinde, Knative Serving kartında Örnek Oluştur'u seçin.
Knative Sunum Oluştur sayfasında tüm varsayılan değerleri koruyun. Aşağı kaydırın ve Oluştur düğmesini seçin.
Durum sütununda Hazır gösterildiğinde OpenShift Sunucusuz yüklenir. Artık OpenShift Sunucusuz projesi oluşturmaya hazırsınız.
Sunucusuz proje oluşturma
adlı demoserverless
yeni bir proje oluşturmak için aşağıdaki komutu çalıştırın:
oc new-project demoserverless
Çıktının aşağıdakine benzer olması gerekir:
Now using project "demoserverless" on server "https://api.wzy5hg7x.eastus.aroapp.io:6443".
You can add applications to this project with the 'new-app' command. For example, build a new example application in Python with the following:
oc new-app django-psql-example
Or use kubectl to deploy a simple Kubernetes application:
kubectl create deployment hello-node --image=gcr.io/hello-minikube-zero-install/hello-node
Şimdi Yönetici görünümünden Geliştirici görünümüne geçelim. Soldaki menüden proje listenize gidin ve öğesini seçin demoserverless
. Şimdi projenin Topoloji sayfasındasınız.
Web konsolunu kullanarak dağıtma
Topoloji sayfasında Git'ten'i seçin. Git'ten İçeri Aktar sayfasında Git Deposu URL'sihttps://github.com/sclorg/django-ex.git
olarak kullanın. Python programlama diliyle örnek bir web uygulaması uygulanır.
Uyarı
OpenShift bunun bir Python projesi olduğunu algılar ve uygun oluşturucu görüntüsünü seçer.
Kaynaklar'agidin ve oluşturulacak kaynak türü olarak Knative Hizmeti'nin seçildiğini onaylayın. Bu, boştayken OpenShift Sunucusuz ölçeklendirmesini sıfıra getiren bir dağıtım türü olan Bir Knative Hizmeti oluşturur.
Sayfanın en altında Oluştur'u seçin. Bu, uygulamanın derlemesini ve dağıtımını yönetmek için kaynaklar oluşturur. Ardından proje için topolojiye genel bakışa yönlendirilirsiniz.
Topolojiye genel bakış, dağıtmış olduğunuz uygulamanın görsel bir gösterimini sağlar. Genel uygulama yapısını görebilirsiniz.
Derlemenin tamamlanmasını bekleyin. Bu işlem birkaç dakika sürebilir. Derleme tamamlandığında, hizmetin sol alt köşesinde yeşil bir onay işareti görünür.
Uygulama ölçeğinizi görün
Topoloji görünümünün en üstündeki Görüntüleme Seçenekleri listesinde Pod Sayısı'nı seçin. Pod sayısının ölçeğinin sıfır Pod'a düşürülmesini bekleyin. Ölçeği azaltma birkaç dakika sürebilir.
Knative Service panelinin sağ üst köşesinde URL'yi Aç simgesini seçin. Uygulama yeni bir tarayıcı sekmesinde açılır. Sekmeyi kapatın ve Topoloji görünümüne dönün. Burada, isteğinizi karşılamak için uygulamanızın ölçeğinin bir Pod'a kadar artırıldığını görebilirsiniz. Birkaç dakika sonra uygulamanız yeniden sıfır Pod'a ölçeklendirilir.
Yeni bir düzeltmeyi zorlama ve trafik dağıtımlarını ayarlama
Knative hizmetleri trafik eşlemesine izin verir; bu da bir hizmetin düzeltmelerinin trafiğin ayrılmış bir bölümüne eşlenebileceği anlamına gelir. Her hizmet yapılandırma güncelleştirmesi ile yeni bir düzeltme oluşturulur. Ardından hizmet yolu tüm trafiği varsayılan olarak en son hazır düzeltmeye yönlendirir. Trafiğin bölümlerini hangi düzeltmenin aldığını tanımlayarak bu davranışı değiştirebilirsiniz. Trafik eşlemesi, tek tek düzeltmeler için benzersiz URL'ler oluşturma seçeneği de sağlar.
Oluşturulan topolojide, ayrıntılarını görüntülemek için hizmetinizin içinde görüntülenen düzeltmeyi seçin. Pod halkasının altındaki ve ayrıntı panelinin üst kısmındaki rozetler olmalıdır (REV)
. Yan paneldeki Kaynaklar sekmesinde aşağı kaydırın ve hizmetinizle ilişkili yapılandırmayı seçin.
YAML sekmesine geçip değerini düzenlemek için aşağı kaydırarak yapılandırma güncelleştirmesini timeoutSeconds
zorlama. değerini olarak 301
değiştirin.
Kaydetseçeneğini seçin. Gerçek bir senaryoda, kapsayıcı görüntüsü etiketi güncelleştirilerek yapılandırma güncelleştirmeleri de tetiklenebilir.
Topoloji görünümüne döndüğünüzde yeni bir düzeltmenin dağıtıldığını göreceksiniz. Rozetle (KSVC)
biten hizmeti seçin ve Trafik Dağıtımını Ayarla düğmesini seçin. Artık trafiği hizmetteki düzeltmeler arasında bölebilmeniz gerekir.
Topoloji görünümü artık trafiğin düzeltmeler arasında nasıl dağıtıldığını gösterir.
Knative komut satırı arabirimini (kn) kullanma
Önceki adımlarda OpenShift web konsolunu kullanarak OpenShift Sunucusuz uygulaması oluşturup dağıtmıştınız. OpenShift Sunucusuz altında Knative çalıştırdığından, Knative komut satırı arabirimini (kn) kullanarak da Knative hizmetleri oluşturabilirsiniz.
Uyarı
CLI'yi henüz yüklemediyseniz kn
, bu makalenin önkoşullar bölümündeki adımları izlediğinize emin olun. Ayrıca OpenShift komut satırı arabirimini oc
kullanarak oturum açtığınızdan emin olun.
adresinde oluşturulmuş quay.io/rhdevelopers/knative-tutorial-greeter
bir kapsayıcı görüntüsü kullanacağız.
Hizmeti dağıtma
Hizmeti dağıtmak için aşağıdaki komutu çalıştırın:
kn service create greeter \
--image quay.io/rhdevelopers/knative-tutorial-greeter:quarkus \
--namespace demoserverless \
--revision-name greeter-v1
Aşağıdakine benzer bir çıkış görürsünüz.
Creating service 'greeter' in namespace 'demoserverless':
0.044s The Route is still working to reflect the latest desired specification.
0.083s ...
0.114s Configuration "greeter" is waiting for a Revision to become ready.
10.420s ...
10.489s Ingress has not yet been reconciled.
10.582s Waiting for load balancer to be ready
10.763s Ready to serve.
Service 'greeter' created to latest revision 'greeter-v1' is available at URL:
http://greeter-demoserverless.apps.wzy5hg7x.eastus.aroapp.io
Aşağıdakini çalıştırarak projedeki yolların listesini alabilirsiniz:
kn route list
Ad alanında yolların listesini geri alırsınız. Dağıtılan hizmeti görüntülemek için URL'yi bir web tarayıcısında açın.
NAME URL READY
greeter http://greeter-demoserverless.apps.wzy5hg7x.eastus.aroapp.io True
Hizmetin yeni bir sürümünü dağıtma
Aşağıdaki komutu çalıştırarak ve görüntü etiketini ve ortam değişkenini :latest
geçirerek uygulamanın yeni bir sürümünü dağıtınMESSAGE_PREFIX
:
kn service update greeter \
--image quay.io/rhdevelopers/knative-tutorial-greeter:latest \
--namespace demoserverless \
--env MESSAGE_PREFIX=GreeterV2 \
--revision-name greeter-v2
Yeni bir düzeltmenin greeter-v2
dağıtıldığına dair bir onay alırsınız.
Updating Service 'greeter' in namespace 'demoserverless':
5.029s Traffic is not yet migrated to the latest revision.
5.086s Ingress has not yet been reconciled.
5.190s Waiting for load balancer to be ready
5.332s Ready to serve.
Service 'greeter' updated to latest revision 'greeter-v2' is available at URL:
http://greeter-demoserverless.apps.wzy5hg7x.eastus.aroapp.io
Tüm düzeltmelerin ve bunların trafik dağıtımlarının listesini görüntülemek için aşağıdaki komutu çalıştırın:
kn revision list
Aşağıdaki çıkışa benzer bir liste alırsınız. Bu örnekte yeni düzeltmenin trafiğin %100'ünün alındığını unutmayın.
NAME SERVICE TRAFFIC TAGS GENERATION AGE CONDITIONS READY REASON
greeter-v2 greeter 100% 2 90s 3 OK / 4 True
greeter-v1 greeter 1 5m32s 3 OK / 4 True
Mavi/yeşil ve kanarya dağıtımları
Yeni bir düzeltme dağıtıldığında, varsayılan olarak trafiğin %100'ünün kendisine atanır. Uygulamanın eski sürümüne hızla geri döndürebileceğiniz mavi/yeşil bir dağıtım stratejisi uygulamak istediğinizi varsayalım. Knative bunu kolaylaştırır.
Hizmeti, trafiğin %100'ünün atanacağı üç trafik etiketi oluşturacak şekilde güncelleştirebilirsiniz.
- current: şu anda dağıtılan sürümü işaret eder
- önceki sürüm: önceki sürüme işaret eden
- en son: her zaman en son sürümü gösterir
kn service update greeter \
--tag greeter-v2=current \
--tag greeter-v1=prev \
--tag @latest=latest
Aşağıdakine benzer bir onay alırsınız.
Updating Service 'greeter' in namespace 'demoserverless':
0.037s Ingress has not yet been reconciled.
0.121s Waiting for load balancer to be ready
0.287s Ready to serve.
Service 'greeter' with latest revision 'greeter-v2' (unchanged) is available at URL:
http://greeter-demoserverless.apps.wzy5hg7x.eastus.aroapp.io
Aşağıdaki komutu kullanarak yolları listeleyin:
kn route describe greeter
Etiketlerin her birinin URL'lerini ve bunların trafik dağıtımını gösteren bir çıkış alırsınız.
Name: greeter
Namespace: demoserverless
Age: 10m
URL: http://greeter-demoserverless.apps.wzy5hg7x.eastus.aroapp.io
Service: greeter
Traffic Targets:
100% @latest (greeter-v2) #latest
URL: http://latest-greeter-demoserverless.apps.wzy5hg7x.eastus.aroapp.io
0% greeter-v1 #prev
URL: http://prev-greeter-demoserverless.apps.wzy5hg7x.eastus.aroapp.io
0% greeter-v2 #current
URL: http://current-greeter-demoserverless.apps.wzy5hg7x.eastus.aroapp.io
[..]
Önceki sürüme hızla geri dönmek istediğinizi varsayalım; trafiğin %100'ünün önceki etikete gönderilmesi için trafik dağıtımını güncelleştirebilirsiniz:
kn service update greeter --traffic current=0 --traffic prev=100
Aşağıdaki komutu kullanarak yolları listeleyin ve yeniden denetleyin:
kn route describe greeter
Trafik dağıtımının %100'ünün önceki sürüme gittiğini gösteren bir çıkış görürsünüz.
Name: greeter
Namespace: demoserverless
Age: 19m
URL: http://greeter-demoserverless.apps.wzy5hg7x.eastus.aroapp.io
Service: greeter
Traffic Targets:
0% @latest (greeter-v2) #latest
URL: http://latest-greeter-demoserverless.apps.wzy5hg7x.eastus.aroapp.io
100% greeter-v1 #prev
URL: http://prev-greeter-demoserverless.apps.wzy5hg7x.eastus.aroapp.io
0% greeter-v2 #current
URL: http://current-greeter-demoserverless.apps.wzy5hg7x.eastus.aroapp.io
[..]
Tarayıcınızdaki ana yolu yenilerken (http://greeter-demoserverless.apps.wzy5hg7x.eastus.aroapp.io
bu durumda) trafik dağıtımıyla oynayın.
Kaynakları temizle
Uygulamayı bitirdiğinizde, projeyi silmek için aşağıdaki komutu çalıştırabilirsiniz:
oc delete project demoserverless
Öğretici: Azure Red Hat OpenShift 4 kümesini silme başlığı altındaki yönergeleri izleyerek de kümeyi silebilirsiniz.
Sonraki Adımlar
Bu kılavuzda şunların nasıl yapılacağını öğrendiniz:
- OpenShift Sunucusuz işlecini ve Knative Serving'ı yükleme
- Web konsolunu kullanarak sunucusuz proje dağıtma
- Knative CLI (kn) kullanarak sunucusuz proje dağıtma
- Knative CLI (kn) kullanarak mavi/yeşil dağıtımları ve kanarya dağıtımlarını yapılandırma
OpenShift Sunucusuz kullanarak Azure Red Hat OpenShift'te sunucusuz, olay odaklı uygulamalar oluşturma ve dağıtma hakkında daha fazla bilgi edinmek için OpenShift Sunucusuz'u kullanmaya başlama belgelerini ve Sunucusuz uygulamaları oluşturma ve yönetme belgelerini izleyin.