All Projects → gesellix → Swarm Examples

gesellix / Swarm Examples

Licence: mit
Beispiel-Code zum Artikel "Continuous Deployment mit Docker Swarm" im Java Magazin 12.17

Programming Languages

java
68154 projects - #9 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to Swarm Examples

The World Is Yours
Nginx L7 DDoS Protection! And many more features 💥 ⚡️
Stars: ✭ 20 (+81.82%)
Mutual labels:  nginx
Docker Socket Http Proxy
Simple nginx proxy container for the docker socket
Stars: ✭ 7 (-36.36%)
Mutual labels:  nginx
Devops Tuts
Meteor Devops on OSX with Docker set for Ubuntu
Stars: ✭ 10 (-9.09%)
Mutual labels:  nginx
Jale
Jale is a blazing fast local development environment for MacOS written in Typescript.
Stars: ✭ 24 (+118.18%)
Mutual labels:  nginx
Php Interview
PHP后端开发面试指南。
Stars: ✭ 26 (+136.36%)
Mutual labels:  nginx
Springbootunity
rabbitmq、redis、scheduled、socket、mongodb、Swagger2、spring data jpa、Thymeleaf、freemarker etc. (muti module spring boot project) (with spring boot framework,different bussiness scence with different technology。)
Stars: ✭ 845 (+7581.82%)
Mutual labels:  nginx
Docker Php Nginx
Lightwight Docker image for the (latest) PHP-FPM and Nginx based on AlpineLinux
Stars: ✭ 22 (+100%)
Mutual labels:  nginx
Netkiller.github.io
Netkiller Free ebook - 免费电子书
Stars: ✭ 861 (+7727.27%)
Mutual labels:  nginx
Gowebsocket
golang基于websocket单台机器支持百万连接分布式聊天(IM)系统
Stars: ✭ 937 (+8418.18%)
Mutual labels:  nginx
Nuxt Ssr Demo
✨ 高仿掘金,整合 vue + nuxt + axios + vuex + vue-router (nuxt 自带 vuex 和 vue-router),一个基于 Nuxt 的服务器端渲染 Demo
Stars: ✭ 856 (+7681.82%)
Mutual labels:  nginx
Lor
a fast, minimalist web framework for lua based on OpenResty
Stars: ✭ 930 (+8354.55%)
Mutual labels:  nginx
Ngx mruby Package Builder
Package Builder of ngx_mruby with Docker
Stars: ✭ 25 (+127.27%)
Mutual labels:  nginx
Nginx Tutorial
这是一个 Nginx 极简教程,目的在于帮助新手快速入门 Nginx。
Stars: ✭ 845 (+7581.82%)
Mutual labels:  nginx
Ansible Nginx Drupal
Ansible role to configure Nginx for running Drupal using perusio's configuration
Stars: ✭ 23 (+109.09%)
Mutual labels:  nginx
Hack Lang Hhvm Resources
Landscaping With Hack Lang & HHVM Resources
Stars: ✭ 10 (-9.09%)
Mutual labels:  nginx
React Express Fullstack
Full stack (mostly unopinionated) starter pack with React+Redux and Expressjs
Stars: ✭ 23 (+109.09%)
Mutual labels:  nginx
Stepic web project
Stars: ✭ 8 (-27.27%)
Mutual labels:  nginx
Nginx Json Proxy
An experiment with openresty, lua and nginx
Stars: ✭ 10 (-9.09%)
Mutual labels:  nginx
Status Nginx Module
A http status module for pure nginx, which is in production already.
Stars: ✭ 10 (-9.09%)
Mutual labels:  nginx
Ngx http proxy connect module
A forward proxy module for CONNECT request handling
Stars: ✭ 850 (+7627.27%)
Mutual labels:  nginx

Docker Swarm: Beispiele

Beispiel-Code zum Artikel "Continuous Deployment mit Docker Swarm" im Java Magazin 12.17.

Update: Der komplette Artikel ist jetzt unter jaxenter.de online lesbar.

An English version of the article is available at jaxenter.com.

Überblick

Die Beispiele setzen voraus, dass die lokale Docker Engine als Swarm Manager fungiert und mindestens ein Worker, markiert mit dem Label de.gesellix.swarm.node=worker, im Swarm verfügbar ist. Eine solche Umgebung kann wie unter Lokale Testumgebung beschrieben eingerichtet werden.

Im Artikel wird der Nginx in zwei Varianten eingesetzt, die in zwei Unterverzeichnissen vorbereitet sind:

  • nginx-basic: ein rudimentärer Reverse Proxy für den whoami Service.
  • nginx-secrets: der gleiche Proxy, diesmal ergänzt um HTTPS und unter Verwendung des offiziellen Basis-Images.

Äquivalent zum nginx-basic gibt es eine Alternative, die Træfik anstelle des Nginx' verwendet:

  • traefik: enthält Træfik als dynamischer Reverse Proxy in einem Stack.

Lokale Testumgebung

Um lokal einen Swarm-Cluster einzurichten, eignen sich die Scripte im Verzeichnis swarm:

./01-init-swarm.sh
./02-init-worker.sh

Die beiden Befehle schalten zuerst die lokale Docker Engine in den Swarm Mode und richten dann drei Worker ein. Darüber hinaus werden eine lokale Registry und ein Registry-Mirror gestartet.

Die Worker und Registries können per ./10-remove-worker.sh wieder gestoppt werden.

Beispiele

Disclaimer: Die Beispiele sind stark an die offizielle Dokumentation unter docs.docker.com angelehnt.

Nginx (basic)

Unter nginx-basic liegt eine Konfiguration für den Nginx als Reverse Proxy für einen Beispiel-Service. Für ein manuelles Setup sind folgende Schritte notwendig:

docker build -t 127.0.0.1:5000/nginx -f nginx-basic nginx-basic
docker push 127.0.0.1:5000/nginx
docker service create --detach=false --name basic --publish 8080:80 --replicas 3 127.0.0.1:5000/nginx

Das gleiche Setup ist etwas bequemer per Docker Stack möglich:

docker stack deploy --compose-file nginx-basic/docker-stack.yml basic-stack

Nginx (mit HTTPS)

Unter nginx-secrets liegt die gleiche Konfiguration aus Nginx (basic), allerdings ergänzt um HTTPS Unterstützung unter Verwendung von Docker Secrets und Docker Configs. Das manuelle Setup lautet wie folgt:

nginx-secrets/gen-certs.sh
docker secret create --name site.key nginx-secrets/cert/site.key
docker secret create --name site.crt nginx-secrets/cert/site.crt
docker config create --name https.conf nginx-secrets/backend-https.conf
docker service create --detach=false --name https-proxy --publish 8443:443 --secret site.key --secret site.crt --config source=https.conf,target=/etc/nginx/conf.d/https.conf --replicas 3 nginx:alpine

Das gleiche Setup ist wieder etwas bequemer per Docker Stack möglich:

docker stack deploy --compose-file nginx-secrets/docker-stack.yml https-stack

Træfik (basic)

Unter traefik liegt ein Beispiel für die Verwendung von Træfik in einem Docker Swarm. Das Beispiel kann per docker stack deployed werden:

docker stack deploy --compose-file traefik/docker-stack.yml traefik

Contributing

Fehlerkorrekturen oder Verbesserungen können gerne per Issue oder Pull Request eingereicht werden. Die Beispiele sollten allerdings noch zum Inhalt des Artikels passen. Für Fragen stehe ich darüber hinaus auf Twitter @gesellix zur Verfügung.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].