Aracılığıyla paylaş


Öğretici: Aks için uygulama hazırlama

Şunlar için geçerlidir: Azure Stack HCI 22H2 üzerinde AKS, Windows Server'da AKS

Yedinin birinci bölümü olan bu öğreticide, Azure Arc tarafından etkinleştirilen Azure Kubernetes Service kullanırken kubernetes kümesinde kullanılmak üzere çok kapsayıcılı bir uygulama hazırlanmıştır. Docker Compose gibi mevcut geliştirme araçları, bir uygulamayı yerel olarak derlemek ve test etmek için kullanılır.

Aşağıdakileri nasıl yapacağınızı öğrenirsiniz:

  • Örnek bir uygulama kaynağını GitHub’dan kopyalama
  • Örnek uygulama kaynağından kapsayıcı görüntüsü oluşturma
  • Çok kapsayıcılı uygulamayı yerel bir Docker ortamında test etme

Tamamlandıktan sonra, aşağıdaki uygulama yerel geliştirme ortamınızda çalışacaktır:

Yerel olarak çalışan Azure Voting Uygulamasının yerel bir web tarayıcısında açtığı kapsayıcı görüntüsünü gösteren ekran görüntüsü.

Sonraki öğreticilerde kapsayıcı görüntüsü bir Azure Container Registry yüklenir ve ardından kubernetes kümesine dağıtılır.

Başlamadan önce

Bu öğreticide kapsayıcılar, kapsayıcı görüntüleri ve docker komutları gibi temel Docker kavramları hakkında bilgi sahibi olduğunuz varsayılmıştır. Kapsayıcı temelleri hakkında bilgi için bkz. Docker ile çalışmaya başlama.

Bu öğreticiyi tamamlamak için Linux kapsayıcılarını çalıştıran yerel bir Docker geliştirme ortamı gerekir. Docker, Windows üzerinde Docker'ı yapılandıran paketler sağlar.

Not

AKS, bu öğreticilerdeki her adımı tamamlamak için gereken Docker bileşenlerini içermez. Bu yüzden, eksiksiz bir Docker geliştirme ortamı kullanmanızı öneririz.

Uygulama kodunu alma

Bu öğreticide kullanılan örnek uygulama , ön uç web bileşeni ve arka uç Redis örneğinden oluşan temel bir oylama uygulamasıdır. Web bileşeni, özel kapsayıcı görüntüsüne paketlenmiştir. Redis örneği, Docker Hub’dan alınan değiştirilmemiş bir görüntü kullanır.

Örnek uygulamayı geliştirme ortamınıza kopyalamak için GitHub'ı kullanın:

git clone https://github.com/Azure-Samples/azure-voting-app-redis.git

Kopyalanan dizine geçin:

cd azure-voting-app-redis

Dizinin içinde uygulama kaynak kodu, önceden oluşturulmuş Docker Compose dosyası ve Kubernetes bildirim dosyası bulunur. Bu dosyalar öğretici kümesi boyunca kullanılır. Dizinin içeriği ve yapısı aşağıdaki gibidir:

azure-voting-app-redis
│   azure-vote-all-in-one-redis.yaml
│   docker-compose.yaml
│   LICENSE
│   README.md
│
├───azure-vote
│   │   app_init.supervisord.conf
│   │   Dockerfile
│   │   Dockerfile-for-app-service
│   │   sshd_config
│   │
│   └───azure-vote
│       │   config_file.cfg
│       │   main.py
│       │
│       ├───static
│       │       default.css
│       │
│       └───templates
│               index.html
│
└───jenkins-tutorial
        config-jenkins.sh
        deploy-jenkins-vm.sh

Kapsayıcı görüntüleri oluşturma

Kapsayıcı görüntüleri oluşturmayı ve çok kapsayıcılı uygulamaların dağıtımını otomatikleştirmek için Docker Compose'u kullanabilirsiniz.

Kapsayıcı görüntüsünü oluşturmak için örnek docker-compose.yaml dosyasını çalıştırın, Redis görüntüsünü indirin ve uygulamayı başlatın:

docker-compose up -d

Tamamlandığında, oluşturulan görüntüleri görmek için docker images komutunu kullanın. Üç görüntü indirildi veya oluşturuldu. azure-vote-front görüntüsü ön uç uygulamasını içerir ve nginx-flask görüntüsünü temel olarak kullanır. Redis görüntüsü redis örneğini başlatmak için kullanılır.

$ docker images

REPOSITORY                                     TAG                 IMAGE ID            CREATED             SIZE
mcr.microsoft.com/azuredocs/azure-vote-front   v1                  84b41c268ad9        9 seconds ago       944MB
mcr.microsoft.com/oss/bitnami/redis            6.0.8               3a54a920bb6c        2 days ago          103MB
tiangolo/uwsgi-nginx-flask                     python3.6           a16ce562e863        6 weeks ago         944MB

Çalışan kapsayıcıları görmek için docker ps komutunu çalıştırın:

$ docker ps

CONTAINER ID        IMAGE                                             COMMAND                  CREATED             STATUS              PORTS                           NAMES
d10e5244f237        mcr.microsoft.com/azuredocs/azure-vote-front:v1   "/entrypoint.sh /sta…"   3 minutes ago       Up 3 minutes        443/tcp, 0.0.0.0:8080->80/tcp   azure-vote-front
21574cb38c1f        mcr.microsoft.com/oss/bitnami/redis:6.0.8         "/opt/bitnami/script…"   3 minutes ago       Up 3 minutes        0.0.0.0:6379->6379/tcp          azure-vote-back

Uygulamayı yerel olarak test etme

Çalışan uygulamayı görmek için yerel web tarayıcısına http://localhost:8080 yazın. Örnek uygulama aşağıdaki örnekte gösterilen şekilde yüklenir:

Yerel web tarayıcısında açılan kapsayıcı görüntüsünü gösteren ekran görüntüsü.

Kaynakları temizleme

Uygulamanın işlevselliği doğrulandığından, çalışan kapsayıcılar durdurulabilir ve kaldırılabilir. Kapsayıcı görüntülerini silmeyin. Sonraki öğreticide azure-vote-front görüntüsü bir Azure Container Registry örneğine yüklenir.

docker-compose down komutuyla kapsayıcı örneklerini ve kaynakları durdurabilir ve kaldırabilirsiniz:

docker-compose down

Yerel uygulamayı kaldırdığınızda, sonraki öğreticide kullanmak üzere Azure Vote uygulamasını ( azure-vote-front) içeren bir Docker görüntüye sahip olursunuz.

Sonraki adımlar

Bu öğreticide bir uygulama test edildi ve bu uygulamaya yönelik kapsayıcı görüntüleri oluşturuldu. Şunları öğrendiniz:

  • Örnek bir uygulama kaynağını GitHub’dan kopyalama
  • Örnek uygulama kaynağından kapsayıcı görüntüsü oluşturma
  • Çok kapsayıcılı uygulamayı yerel bir Docker ortamında test etme

Kapsayıcı görüntülerini Azure Container Registry’de depolamayı öğrenmek için sonraki öğreticiye geçin.