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 öğreticide, Kubernetes'te kullanmak üzere çoklu kapsayıcılı uygulama hazırlarsınız. Uygulamayı yerel olarak derlemek ve test etmek için Docker Compose gibi mevcut geliştirme araçlarını kullanırsınız. Şunları yapmayı öğreneceksiniz:
- GitHub örnek uygulama kaynağını kopyalayın.
- Örnek uygulama kaynağından bir kapsayıcı görüntüsü oluşturun.
- Çok kapsayıcılı uygulamayı yerel bir Docker ortamında test edin.
Tamamlandıktan sonra, aşağıdaki uygulama yerel geliştirme ortamınızda çalışacaktır:
Sonraki öğreticilerde, konteyner görselini bir Azure Container Registry (ACR) yükleyip ardından bir AKS kümesine dağıtacaksınız.
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, Docker'ı Mac, Windows veya Linux sisteminde yapılandıran paketler sağlar.
Not
Azure Cloud Shell, 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 sample uygulaması aşağıdaki Kubernetes dağıtımları ve hizmetlerini içeren temel bir mağaza ön uygulamasıdır:
- Mağaza ön: Müşterilerin ürünleri görüntülemesi ve sipariş vermesi için web uygulaması.
- Ürün hizmeti: Ürün bilgilerini gösterir.
- Sipariş hizmeti: Sipariş verir.
- Rabbit MQ: Sipariş kuyruğu için ileti kuyruğu.
Bilgisayarınızda bir dizin oluşturun ve Bash gibi terminal oturumunuzda bu dizine geçin. Bu örnekte demorepo adlı bir dizin kullanılır, ancak istediğiniz adı kullanabilirsiniz.
mkdir demorepo cd demorepoÖrnek uygulamayı geliştirme ortamınıza kopyalamak için git kullanın.
git clone https://github.com/Azure-Samples/aks-store-demo.gitKopyalanan dizine geçin.
cd aks-store-demo
Docker Compose dosyasını gözden geçirme
Bu öğreticide oluşturduğunuz örnek uygulama, kopyaladığınız repositorydocker-compose-quickstart YAML dosyasını kullanır.
services:
rabbitmq:
image: rabbitmq:3.13.2-management-alpine
container_name: 'rabbitmq'
restart: always
environment:
- "RABBITMQ_DEFAULT_USER=username"
- "RABBITMQ_DEFAULT_PASS=password"
ports:
- 15672:15672
- 5672:5672
healthcheck:
test: ["CMD", "rabbitmqctl", "status"]
interval: 30s
timeout: 10s
retries: 5
volumes:
- ./rabbitmq_enabled_plugins:/etc/rabbitmq/enabled_plugins
networks:
- backend_services
order-service:
build: src/order-service
container_name: 'order-service'
restart: always
ports:
- 3000:3000
healthcheck:
test: ["CMD", "wget", "-O", "/dev/null", "-q", "http://order-service:3000/health"]
interval: 30s
timeout: 10s
retries: 5
environment:
- ORDER_QUEUE_HOSTNAME=rabbitmq
- ORDER_QUEUE_PORT=5672
- ORDER_QUEUE_USERNAME=username
- ORDER_QUEUE_PASSWORD=password
- ORDER_QUEUE_NAME=orders
- ORDER_QUEUE_RECONNECT_LIMIT=3
networks:
- backend_services
depends_on:
rabbitmq:
condition: service_healthy
product-service:
build: src/product-service
container_name: 'product-service'
restart: always
ports:
- 3002:3002
healthcheck:
test: ["CMD", "wget", "-O", "/dev/null", "-q", "http://product-service:3002/health"]
interval: 30s
timeout: 10s
retries: 5
environment:
- AI_SERVICE_URL=http://ai-service:5001/
networks:
- backend_services
store-front:
build: src/store-front
container_name: 'store-front'
restart: always
ports:
- 8080:8080
healthcheck:
test: ["CMD", "wget", "-O", "/dev/null", "-q", "http://store-front:80/health"]
interval: 30s
timeout: 10s
retries: 5
environment:
- VUE_APP_PRODUCT_SERVICE_URL=http://product-service:3002/
- VUE_APP_ORDER_SERVICE_URL=http://order-service:3000/
networks:
- backend_services
depends_on:
- product-service
- order-service
networks:
backend_services:
driver: bridge
Kapsayıcı görüntüleri oluşturma ve uygulamayı çalıştırma
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.
Docker
Kapsayıcı görüntüsünü oluşturun, RabbitMQ görüntüsünü indirin ve komutunu kullanarak
docker composeuygulamayı başlatın:docker compose -f docker-compose-quickstart.yml up -dkomutunu kullanarak
docker imagesoluşturulan görüntüleri görüntüleyin.docker imagesAşağıdaki daraltılmış örnek çıktı, oluşturulan görüntüleri gösterir:
REPOSITORY TAG IMAGE ID aks-store-demo-product-service latest 72f5cd7e6b84 aks-store-demo-order-service latest 54ad5de546f9 aks-store-demo-store-front latest 1125f85632ae ...docker pskomutunu kullanarak çalışan kapsayıcıları görüntüleyin.docker psAşağıdaki özetlenmiş örnek çıktıda dört çalışan kapsayıcı gösterilmektedir.
CONTAINER ID IMAGE f27fe74cfd0a aks-store-demo-product-service df1eaa137885 aks-store-demo-order-service b3ce9e496e96 aks-store-demo-store-front 31df28627ffa rabbitmq:3.13.2-management-alpine
Uygulamayı yerel olarak test etme
Çalışan uygulamanızı görmek için yerel bir web tarayıcısında adresine gidin http://localhost:8080 . Örnek uygulama aşağıdaki örnekte gösterilen şekilde yüklenir:
Bu sayfada, ürünleri görüntüleyebilir, sepetinize ekleyebilir ve ardından bir sipariş vekleyebilirsiniz.
Kaynakları temizleme
Uygulamanın işlevselliğini doğruladığınız için çalışan kapsayıcıları durdurabilir ve kaldırabilirsiniz. Sonraki öğreticide kullanacağınız için kapsayıcı görüntüleri silmeyin.
komutunu kullanarak docker-compose down kapsayıcı örneklerini ve kaynaklarını durdurun ve kaldırın.
docker compose down
Sonraki adımlar
Bu öğreticide örnek bir uygulama oluşturdunuz, uygulama için kapsayıcı görüntüleri oluşturdunuz ve uygulamayı test ettiniz. Şunları öğrendiniz:
- GitHub örnek uygulama kaynağını kopyalayın.
- Örnek uygulama kaynağından bir kapsayıcı görüntüsü oluşturun.
- Çok kapsayıcılı uygulamayı yerel bir Docker ortamında test edin.
Sonraki öğreticide, kapsayıcı görüntülerini bir ACR'de depolamayı öğreneceksiniz.