Aracılığıyla paylaş


Uygulamayı kaynaktan Azure Red Hat OpenShift'e dağıtma

Bu makalede, kaynaktan görüntüye (S2I) derlemesini kullanarak bir uygulamayı kaynak koddan Azure Red Hat OpenShift kümesine dağıtacaksınız. Kaynaktan Görüntüye (S2I), kaynak koddan yeniden üretilebilir kapsayıcı görüntüleri oluşturmaya yönelik bir derleme işlemidir. S2I, bir kapsayıcı görüntüsüne kaynak kodu ekleyerek ve kapsayıcının bu kaynak kodu yürütme için hazırlamasına izin vererek çalışmaya hazır görüntüler oluşturur. OpenShift'in dağıtmak için kaynaktan bir uygulama oluşturmasını sağlayabilirsiniz, böylece her değişiklikle el ile bir kapsayıcı oluşturmanız gerekmez. OpenShift, kaynak kod değişiklikleri bildirildiğinde yeni sürümleri otomatik olarak derleyebilir ve dağıtabilir.

Başlamadan önce

Uyarı

Bu makalede bir çekme gizli dizisi ayarladığınız varsayılır. Kümeniz için çekme gizli diziniz yoksa, Red Hat çekme gizli dizinizi eklemek veya güncelleştirmek için belgeleri izleyebilirsiniz.

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:

Azure Cloud Shell'i başlatma düğmesi

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".

Proje oluştur

adlı demoprojectyeni bir proje oluşturmak için komutunu çalıştırın:

oc new-project demoproject

Şuna benzer bir çıkış görmeniz gerekir:

Now using project "demoproject" on server "https://api.wzy5hg7x.eastus.aroapp.io:6443".

You can add applications to this project with the 'new-app' command. For example, try:

    oc new-app django-psql-example

to build a new example application in Python. Or use kubectl to deploy a simple Kubernetes application:

    kubectl create deployment hello-node --image=gcr.io/hello-minikube-zero-install/hello-node

Web konsolunu başlatma

Şunu çalıştırarak küme web konsolu URL'sini öğrenin:

 az aro show \
    --name <cluster name> \
    --resource-group <resource group> \
    --query "consoleProfile.url" -o tsv

Buna benzer bir URL almalısınız.

https://console-openshift-console.apps.wzy5hg7x.eastus.aroapp.io/

Konsol URL'sini bir tarayıcıda başlatın ve kimlik bilgilerini kullanarak kubeadmin oturum açın.

Sol taraftaki menüde Yönetici perspektifi yerine Geliştirici perspektifine geçin ve proje listesinden öğesini seçindemoproject. Daha sonra projenin Topoloji sayfasında olmanız gerekir.

Azure Red Hat OpenShift proje topolojisi

Proje boş olduğundan iş yükü bulunmamalıdır ve bir uygulamayı nasıl dağıtabileceğinize ilişkin çeşitli seçenekler sunulur.

Web konsolunu kullanarak dağıtma

Bir uygulamayı dağıtmak için sunulan seçeneklerden Git'ten'i seçin. Bu işlem, Git'ten içeri aktar sayfasına gitmenizi sağlayacaktır. Git Deposu URL'si https://github.com/sclorg/django-ex.gitolarak kullanın. Örnek web uygulaması Python programlama dili kullanılarak uygulanır.

Git'ten Azure Red Hat OpenShift projesi

Uyarı

OpenShift bunun bir Python projesi olduğunu algılar ve uygun oluşturucu görüntüsünü seçer.

Ekranı aşağı kaydırarak Gelişmiş Seçenekler'e gelin ve Uygulamaya yol oluştur seçeneğinin işaretli olduğundan emin olun. Bu eylem, bir hizmeti dışarıdan erişilebilen bir konak adı vererek kullanıma sunmanın bir yolu olan bir OpenShift yolu oluşturur.

Git'ten Azure Red Hat OpenShift projesi - Rota kurulumu

Hazır olduğunuzda, sayfanın alt kısmında Oluştur'a tıklayın. 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.

Git'ten Azure Red Hat OpenShift projesi - Topoloji

Topolojiye genel bakış, dağıtmış olduğunuz uygulamanın görsel bir gösterimini sağlar. Bu görünümle, genel uygulama yapısını görebilirsiniz.

Git simgesine tıklayarak sizi uygulamanın kaynak kodunun oluşturulduğu Git deposuna götürebilirsiniz. Sol altta gösterilen simge, uygulamanın derleme durumunu gösterir. Bu simgeye tıkladığınızda derleme ayrıntıları bölümüne gidin. Uygulamada kullanıma sunulan yollar varsa, sağ üstteki simgeye tıklayarak oluşturulan uygulama yolunun URL'sini açabilirsiniz.

Uygulama ölçeği artırma veya azaltma, dağıtımları başlatma ve podları yeniden oluşturma işlemleri sırasında topoloji görünümündeki uygulama gösterimi, size neler olduğuna ilişkin gerçek zamanlı bir görünüm sağlayacak şekilde animasyonlu olacaktır.

Uygulama simgesine tıklanması aşağıda gösterildiği gibi daha fazla ayrıntı getirir.

Git'ten Azure Red Hat OpenShift projesi - Ayrıntılar

Oluşturucu günlüklerini görüntüleme

Derleme başladıktan sonra Kaynaklar panelinde gösterilen Günlükleri Görüntüle bağlantısına tıklayın.

Git'ten Azure Red Hat OpenShift projesi - Derleme günlükleri

Bu, çalıştırılırken derlemenin ilerleme durumunu izlemenize olanak sağlar. Bu örnekte python oluşturucu görüntüsü, uygulama kaynak kodunu OpenShift iç görüntü kayıt defterine göndermeden önce son görüntüye ekler. "Gönderme başarılı" son iletisini gördüğünüzde derleme başarıyla tamamlanmış olur.

Uygulamaya erişme

Uygulama görüntüsünün derlemesi tamamlandıktan sonra dağıtılır.

Projenin topoloji görünümüne dönmek için sol taraftaki menü çubuğunda Topoloji'ye tıklayın. Web konsolunu kullanarak uygulamayı oluşturduğunuzda, uygulama için otomatik olarak bir Yol oluşturulur ve kümenin dışında kullanıma sunulur. Uygulamaya bir web tarayıcısından erişmek için kullanılabilecek URL, daha önce görüntülediğiniz uygulamanın Kaynaklar sekmesinde görünürdü.

Topoloji görünümünden halkanın sağ üst kısmındaki simgeye tıklayarak dağıtılan uygulamanın URL'sine ulaşabilirsiniz. Dağıtım tamamlandığında simgeye tıkladığınızda dağıttığınız uygulamayı görmeniz gerekir.

Git'ten Azure Red Hat OpenShift projesi - Uygulamaya göz atma

Komut satırını kullanarak dağıtma

Web konsolunu kullanarak bir uygulamayı dağıtmayı öğrendiniz, şimdi aynı web uygulamasını dağıtalım, ancak bu kez komut satırı aracını kullanarak oc .

Projeyi silmek ve baştan başlamak için aşağıdaki komutu çalıştırın:

oc delete project demoproject

silindiğini belirten demoproject bir onay iletisi almalısınız.

project.project.openshift.io "demoproject" deleted

demoproject komutunu çalıştırarak öğesini yeniden oluşturun:

oc new-project demoproject

Proje içinde, Sağlanan en son Python sürümü için S2I oluşturucusunu belirterek GitHub'da kaynaktan yeni bir uygulama oluşturun.

oc new-app python:latest~https://github.com/sclorg/django-ex.git

Bunun aşağıdakine benzer bir çıkış görüntülemesi gerekir:

--> Found image 8ec6f0d (4 weeks old) in image stream "openshift/python" under tag "latest" for "python:latest"

    Python 3.8
    ----------
   [...]

    Tags: builder, python, python38, python-38, rh-python38

    * A source build using source code from https://github.com/sclorg/django-ex.git will be created
      * The resulting image will be pushed to image stream tag "django-ex:latest"
      * Use 'oc start-build' to trigger a new build
    * This image will be deployed in deployment config "django-ex"
    * Port 8080/tcp will be load balanced by service "django-ex"
      * Other containers can access this service through the hostname "django-ex"

--> Creating resources ...
    imagestream.image.openshift.io "django-ex" created
    buildconfig.build.openshift.io "django-ex" created
    deploymentconfig.apps.openshift.io "django-ex" created
    service "django-ex" created
--> Success
    Build scheduled, use 'oc logs -f bc/django-ex' to track its progress.
    Application is not exposed. You can expose services to the outside world by executing one or more of the commands below:
     'oc expose svc/django-ex'
    Run 'oc status' to view your app.

OpenShift, uygulamanın adı olarak Git deposunun adını kullanır. Çalıştırarak derleme ve dağıtımın durumunu gözden geçirin:

oc status

Derleme ve dağıtım tamamlandığında şuna benzer bir çıkış görmeniz gerekir.

In project demoproject on server https://api.wzy5hg7x.eastus.aroapp.io:6443

svc/django-ex - 172.30.200.50:8080
  dc/django-ex deploys istag/django-ex:latest <-
    bc/django-ex source builds https://github.com/sclorg/django-ex.git on openshift/python:latest
    deployment #1 deployed about a minute ago - 1 pod


2 infos identified, use 'oc status --suggest' to see details.

Uygulamayı OpenShift kümesinin dışında kullanıma açmak için aşağıdakini çalıştırarak bir yol oluşturmanız gerekir:

oc expose service/django-ex

Bir onay almalısınız.

route.route.openshift.io/django-ex exposed

Şunu çalıştırarak URL'yi alın:

oc get route django-ex

Dağıtılan uygulamaya göz atmak için kullanabileceğiniz yola atanan ana bilgisayar adını geri almanız gerekir.

NAME        HOST/PORT                                              PATH   SERVICES    PORT       TERMINATION   WILDCARD
django-ex   django-ex-demoproject.apps.wzy5hg7x.eastus.aroapp.io          django-ex   8080-tcp                 None

Yeni ikili derleme tetikleme

Uygulama üzerinde çalışırken, büyük olasılıkla değişiklikler yapmak ve bunların dağıtılmasını görmek istersiniz. Her kod işlemesiyle yeni bir derleme ve dağıtım tetikleyecek bir web kancasını kolayca ayarlayabilirsiniz. Ancak, bazen her kod değişikliğini depoya göndermek zorunda kalmadan değişiklikleri görmek istediğiniz için bu istenmeyebilir.

Değişiklikleri hızla yinelediğiniz durumlarda ikili derleme olarak adlandırılan sürümü kullanabilirsiniz. Bu senaryoyu göstermek için aşağıdaki komutu çalıştırarak uygulamanın Git deposunu yerel olarak kopyalayın:

git clone https://github.com/sclorg/django-ex.git

Bu, uygulamanın kaynak kodunu içeren bir alt dizin django-ex oluşturur:

Cloning into 'django-ex'...
remote: Enumerating objects: 980, done.
remote: Total 980 (delta 0), reused 0 (delta 0), pack-reused 980
Receiving objects: 100% (980/980), 276.23 KiB | 4.85 MiB/s, done.
Resolving deltas: 100% (434/434), done.

Alt dizine geçin:

cd django-ex

Tümleşik Azure Cloud Shell düzenleyicisini açın:

code welcome/templates/welcome/index.html

Ekranı aşağı kaydırın ve ifadesinin Welcome to your Django application on OpenShiftolduğu Welcome to Azure Red Hat OpenShift satırı değiştirin. Dosyayı kaydedin ve sağ üstteki menüden düzenleyiciyi ... kapatın.

Git'ten Azure Red Hat OpenShift projesi - Azure Cloud Shell düzenleyicisinde uygulamayı düzenleme

komutunu çalıştırarak yeni bir derleme başlatın:

oc start-build django-ex --from-dir=. --wait

Bayrağı geçirerek --from-dir=. OpenShift komut satırı belirtilen dizinden kaynak kodu karşıya yükler ve ardından derleme ve dağıtım işlemini başlatır. Aşağıdakine benzer bir çıkış almanız gerekir ve birkaç dakika sonra derleme tamamlanmalıdır.

Uploading directory "." as binary input for the build ...
.
Uploading finished
build.build.openshift.io/django-ex-2 started

Tarayıcıyı uygulamayla yenilerseniz güncelleştirilmiş başlığı görmeniz gerekir.

Git'ten Azure Red Hat OpenShift projesi - Güncelleştirilmiş uygulamaya göz atın

Kaynakları temizle

Uygulamayla işiniz bittiğinde, projeyi silmek için aşağıdaki komutu çalıştırabilirsiniz:

oc delete project demoproject

Öğ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:

  • Proje oluştur
  • Web konsolunu kullanarak kaynak koddan uygulama dağıtma
  • OpenShift komut satırını kullanarak kaynak koddan uygulama dağıtma
  • OpenShift komut satırını kullanarak ikili derleme tetikleme

Kaynak-görüntü ve diğer derleme stratejilerini kullanarak uygulama derleme ve dağıtma hakkında daha fazla bilgi edinin.