Sziasztok,
Van egy 3 Node-os Swarm-om, amiben futtatok egy szolgaltatast, amit betettem nginx-proxy moge (https://github.com/nginx-proxy/nginx-proxy)
Amig a ket szolgaltatas egy node-on van, nincs is semmi gond, viszont ha elvandorolnak, akkor 503-as hibat kapok. Ez alapvetoen egy ismert hianyossag az nginx-proxy-nal, de paran irtak, h sikerult megkerulniuk a dolgot. (sajnos nekem nem). Jelenleg bindeltem a ket service-t hogy egy node-on fusson, csak ez igy a swarm ertelmet veszi el... (foleg h a tobbi szolgaltatasom is betennem nginx-proxy moge) Traefik-et is neztem, de azt nem sikerult eletre kelteni. (plusz az nginx szimpatikusabb lenne)
Itt a yaml ha segit:
version: '3.6'
services:
nginx-proxy:
image: hun25-21v:5000/nginxproxy/nginx-proxy:1.4-alpine
ports:
- "443:443"
volumes:
- /var/run/docker.sock:/tmp/docker.sock:ro
- 'nginx-proxy_config:/etc/nginx/certs'
# environment:
networks:
- proxy
deploy:
placement:
constraints:
- node.labels.nginx_proxy==true
networks:
proxy:
external: true
volumes:
nginx-proxy_config:
external: true
name: nginx-proxy_config
version: '3.6'
services:
test_service:
container_name: test_service
image: hun25-21v:5000/test_service:latest
environment:
- VIRTUAL_HOST=test_service.domain.com
- VIRTUAL_PORT=3000
deploy:
placement:
constraints:
- node.labels.nginx_proxy==true
restart: always
networks:
- proxy
networks:
proxy:
external: true- 330 megtekintés
Hozzászólások
Ha Swarm-ozol, akkor ajánlom figyelmedbe ezt az oldalt: https://geek-cookbook.funkypenguin.co.nz/docker-swarm/
Itt van rengeteg setup swarm-hoz.
Traefik Setup: https://geek-cookbook.funkypenguin.co.nz/docker-swarm/traefik/
Nálam megy rendesen az nginx is. A lényeg, hogy minden node-on fusson a HA miatt.
Illetve az nginx config-ból az adott service-t a belső címen címezd és a többit megoldja neked a swarm.
Azaz a proxy pass-od-ban valami lyesmi legyen:
proxy_pass http://SERVICE-NAME:BELSŐ-PORT;
Amúgy vannak olyan image-ek NGINX-ből amik felvannak rá készítve és a service-ekre felaggatott TAG-ek alapján belövik neked az nginx config-ot.
Ez is ilyen, de vannak limitációi. Pl.: egy service-re csak 1 forwardot tud.
https://github.com/garutilorenzo/docker-swarm-ingress
Remélem tudtam segíteni.
- A hozzászóláshoz be kell jelentkezni
"...fel vannak..."
- A hozzászóláshoz be kell jelentkezni
docker network create --driver=overlay --ingress my_ingress_network
docker service create --name my_service --network my_ingress_network my_image
docker service create --name proxy --network my_ingress_network --publish 80:80 --publish 443:443 my_proxy_image
Az overlay típusú network a lényeg. Hozzá kell tennem: én nem szeretem a swarm-ot, nekem már többször összedőlt a networkingje.
Éppen folyamatban is van a "leszállás" róla, egyik helyen vm-ekbe (és azon belül sima docker-compose) másik helyen kubernetes irányba.
- A hozzászóláshoz be kell jelentkezni
- A hozzászóláshoz be kell jelentkezni
Próbálkozz egy másik image-el.
Amit én linkeltem nginx image-et az nézi: https://github.com/garutilorenzo/docker-swarm-ingress/blob/master/nginx-ingress/ingress/ingress.py#L65
- A hozzászóláshoz be kell jelentkezni
nem akarja ezzel sem... azt irja, az ingress network megy, de nincs mappelve domain...
version: "3.8"
services:
nginx:
image: garutilorenzo/docker-swarm-ingress:latest
ports:
- 443:443
volumes:
- /var/run/docker.sock:/var/run/docker.sock
networks:
- proxy
secrets:
- domain.com.key
- domain.com.crt
environment:
PROXY_MODE: ssl-term-bridg
deploy:
replicas: 1
update_config:
parallelism: 1
delay: 10s
restart_policy:
condition: on-failure
placement:
constraints: [node.role == manager]
secrets:
domain.com.key:
external: true
domain.com.crt:
external: true
networks:
proxy:
external: true
name: proxy
version: '3.6'
services:
test:
container_name: test
ports:
- 3000:3000
image: hun25-21v:5000/test:latest
restart: always
labels:
ingress.host: domain.com
ingress.port: 3000
networks:
- proxy
networks:
proxy:
external: true
- A hozzászóláshoz be kell jelentkezni
Tippre a deploy hiányzik.
...
deploy: <-- szerintem ez hianyzik
labels:
ingress.host: domain.com
ingress.port: 3000- A hozzászóláshoz be kell jelentkezni
Köszi, holnap megnézem.
- A hozzászóláshoz be kell jelentkezni
Milyen hálózati problémáid voltak a swarm-al?
Én csak Host OS upgrade-nél futottam bele eddig. Ott a probléma az volt, hogy a Swarm az IPTABLES-t piszkálja ahogy elviekben a compose is.
Ott volt valami change a Host OS részéről és összeborult.
Még kb. 5 éve próbálkoztam vanilla K8S-el. Ott 8 hónap alatt 8x állt meg a networking.
Ott mindig megdögölött az ARP komponens és emiatt rossz címekre oldott fel.
Nálam a kis/home projektek akkor költöztek vissza swarm-ra.
- A hozzászóláshoz be kell jelentkezni
odáig vezettem vissza hogy restartkor nem volt mindegy hogy restartkor egy bizonyos docker networkben a service (jwilder-féle proxy) vagy valami más indult el. Ha nem a proxy indult el (és foglalta el a 443-as portot) akkor nem tudott proxyzni.
Aztán lehet persze hogy az ingress configom nem volt teljesen oké, eléggé összetákolt motyó volt amúgyis (vegyesen service-k és compose).
Az tette be a kaput amikor egy docker upgrade után valami megkattant az overlayfs-ben és semmi se indult el, na akkor már mindegy volt hogy hova állítom vissza a backupot, ezért aztán "szétraktam".
Így most sokkal kevesebb a terhelés az egyes overlayfs-eken (és nem is zfs van hanem ext4). Külön-külön lehet upgradelni, béke.
Ja és nincs annyi (se service se erőforrás) hogy megérné a kubernetes.
- A hozzászóláshoz be kell jelentkezni
Egyelore en is ezt csinalom...
https://github.com/nginx-proxy/nginx-proxy/issues/97#issuecomment-13975…
A service-ek is futnak most minden node-on, mert nyilvan csak igy mukodik.
Tettem egy 15 sec-es Round-robin-t a DNS-re igy van "terheleselosztas" valamilyen szinten.
- A hozzászóláshoz be kell jelentkezni