Öğretici: Azure Kubernetes Hizmeti (AKS) için uygulamayı hazırlama

Bu yedi parçalık öğreticinin ilk bölümünde, bir çoklu kapsayıcı uygulaması Kubernetes’te kullanılmak üzere hazırlanmaktadır. Uygulamayı yerel ortamda derlemek ve test etmek için Docker Compose gibi var olan geliştirme araçları kullanılmaktadı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 bir Web tarayıcısında yerel olarak açılan Azure oylama uygulamasının bulunduğu 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 bir AKS 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 Mac, Windows veya Linux sisteminde Docker'ı kolayca yapılandırmanızı sağlayan paketler sağlar.

Not

Azure Cloud Shell, bu öğreticilerdeki her adımı tamamlamak için gerekli olan 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şeninden ve arka uç redin ö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 git komutunu kullanın:

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

Kopyalanmış 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

Docker Compose kapsayıcı görüntülerinden alınan derlemeyi ve çoklu kapsayıcı uygulamalarının dağıtımını otomatikleştirmek için kullanılabilir.

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ü indirilir veya oluşturulur. Azure-oyön görüntüsü, ön uç uygulamasını içerir ve bir temel olarak NGINX-Flask görüntüsünü kullanır. Redsıs görüntüsü, redsıs ö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 bir Web tarayıcısında yerel olarak açılan Azure oylama uygulamasının bulunduğu kapsayıcı görüntüsünü gösteren ekran görüntüsü

Kaynakları temizleme

Artık uygulama işlevselliği doğrulandığından, çalışan kapsayıcılar durdurulup kaldırılabilir. *Kapsayıcı görüntülerini silme _-sonraki öğreticide, _azure-oyön * 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 uygulama kaldırıldığında, sonraki öğreticide kullanılmak üzere Azure oy uygulamasını, Azure-oyönünü Içeren bir Docker görüntüsüne 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.