NTLite를 사용하여 업데이트로 Windows 사용자 지정 ISO를 만드는 방법
NTLite를 사용하여 Vultr 시스템과 호환되는 Windows 사용자 지정 ISO를 만드는 방법을 단계별로 설명합니다. 최신 드라이버와 업데이트 통합을 포함한 완벽 가이드.
Docker Swarm은 개별 서버를 컴퓨터 클러스터로 전환하여 확장, 고 가용성 및로드 밸런싱을 용이하게합니다. Swarm로드 밸런서는 라운드 로빈로드 밸런싱 전략을 구현하며 이는 여러 인스턴스를 사용하여 고 가용성 설정을 허용하기 위해 일정한 형식의 고정 세션이 필요한 (레거시) 상태 저장 애플리케이션의 올바른 기능을 방해 할 수 있습니다. Docker Enterprise Edition은 Layer-7 고정 세션을 지원하지만이 안내서에서는 Docker의 무료 (CE) 버전에 중점을 둘 것입니다. 고정 세션을 구현하기 위해 Traefik을 사용합니다.
이 자습서에서는 프라이빗 IP 주소가 192.168.0.100 및 192.168.0.101 인 두 개의 Vultr 인스턴스를 사용합니다. 둘 다 Docker Swarm 관리자 노드입니다 (제작에는 적합하지 않지만이 자습서에는 충분합니다).
이 학습서는 jwilder/whoami도커 이미지를 데모 애플리케이션으로 사용합니다 . 이 간단한 컨테이너는 응답 컨테이너의 이름으로 REST 호출에 응답하므로 고정 세션이 작동하는지 테스트하기가 매우 쉽습니다. 이 이미지는 데모 용으로 만 사용되며 자신의 응용 프로그램 이미지로 교체해야합니다. 는 whoami-service다음과 같이 구성된다 :
sudo docker network create whoaminet -d overlay
sudo docker service create --name whoami-service --mode global --network whoaminet --publish "80:8000" jwilder/whoami
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --reload
에 curl에서 whoamiREST 엔드 포인트를 계속 사용 하는 경우 http://192.168.0.100/직장에서 Docker Swarm의 라운드 로빈로드 균형 조정을 볼 수 있습니다.
curl http://192.168.0.100
I'm a6a8c9294fc3
curl http://192.168.0.100
I'm ae9d1763b4ad
curl http://192.168.0.100
I'm a6a8c9294fc3
curl http://192.168.0.100
I'm ae9d1763b4ad
curl http://192.168.0.100
I'm a6a8c9294fc3
Chrome 또는 Firefox와 같은 최신 브라우저에서는 연결을 유지 (개방)하도록 설계되어 있으며 Docker Swarm로드 밸런서는 새로운 연결 마다 다른 컨테이너로만 전환하므로이 테스트에 사용할 필요가 없습니다 . 브라우저에서이를 테스트하려면 연결이 닫힐 때까지 30 초 이상 기다려야 새로 고칠 수 있습니다.
Traefik은 기본적으로 Docker Swarm을 지원하며 컨테이너를 즉시 감지 및 등록 또는 등록 취소 할 수 있으며 내부 오버레이 네트워크를 통해 애플리케이션과 통신합니다. Traefik은 요청 처리를 시작하기 전에 애플리케이션에 대한 정보가 필요합니다. 이 정보는 Swarm 서비스에 레이블을 추가하여 Traefik에 제공됩니다.
sudo docker service update --label-add "traefik.docker.network=whoaminet" --label-add "traefik.port=8000" --label-add "traefik.frontend.rule=PathPrefix:/" --label-add "traefik.backend.loadbalancer.stickiness=true" whoami-service
아래 목록은 각 레이블의 의미를 설명합니다.
traefik.docker.network: Traefik이 서비스와 통신 할 Docker 오버레이 네트워크 traefik.port: 서비스가 청취중인 포트 (게시 된 포트가 아니라 내부적으로 노출 된 포트 임)traefik.frontend.rule: PathPrefix:/컨텍스트 루트 /를이 서비스에 바인딩합니다 .traefik.backend.loadbalancer.stickiness:이 서비스에 고정 세션을 사용합니다.가 지금 whoami-service필요한 라벨로 구성되어, 우리는 떼에 Traefik 서비스를 추가 할 수 있습니다 :
sudo docker service create --name traefik -p8080:80 -p9090:8080 --mount type=bind,source=/var/run/docker.sock,destination=/var/run/docker.sock --mode=global --constraint 'node.role == manager' --network whoaminet traefik --docker --docker.swarmmode --docker.watch --web --loglevel=DEBUG
이 명령은 한 번에 많은 작업을 수행합니다. 아래 목록에 자세한 내용이 설명되어 있습니다.
--name traefik: 새로운 Docker 서비스 이름은 traefik-p8080:80: Traefik의 포트 80를 포트에 게시합니다 8080(포트 80는 이미 포트 에서 사용 중입니다 whoami-service)-p9090:8080: Traefik의 자체 웹 인터페이스를 포트에 게시 9090--mount ...: Traefik이 호스트의 Docker 런타임에 액세스 할 수 있도록 Docker Socket을 컨테이너에 마운트합니다. --global: 고 가용성을 위해 각 관리자 노드에 Traefik 컨테이너가 필요합니다. --constraint 'node.role == manager': 작업자 노드는 Traefik에 필요한 정보를 제공 할 수 없으므로 관리자 노드에서만 Traefik을 실행하려고합니다. 예를 들어 docker service ls작업자 노드에서 작동하지 않으므로 Traefik은 실행중인 서비스를 찾을 수조차 없습니다.--network whoaminet: Traefik을와 동일한 네트워크에 whoami-service연결합니다. 그렇지 않으면 연결할 수 없습니다. 우리는 이전에 Traefik에게 traefik.docker.network라벨 이있는이 네트워크를 통해 서비스에 연결하라고 했습니다traefik: 도커에게이 서비스에 최신 Traefik 도커 이미지를 사용하도록 지시하십시오.--docker --docker.swarmmode --docker.watch --web --loglevel=DEBUG: Docker swarm 모드에서 실행할 수 있도록 Traefik에 직접 전달되는 명령 행 인수 ( --loglevel=DEBUG선택 사항이지만 설정 및이 학습서에서는 흥미 롭습니다)CentOS 방화벽에서 필요한 포트를 열면됩니다.
sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
sudo firewall-cmd --zone=public --add-port=9090/tcp --permanent
sudo firewall-cmd --reload
Traefik이 시작 되 자마자 Traefik이 두 whoami컨테이너를 발견 한 로그를 볼 수 있습니다 . 또한 고정 세션을 처리하는 데 사용할 쿠키 이름을 출력합니다.
time="2018-11-25T13:17:30Z" level=debug msg="Configuration received from provider docker: {\"backends\":{\"backend-whoami-service\":{\"servers\":{\"server-whoami-service-1-a179b2e38a607b1127e5537c2e614b05\":{\"url\":\"http://10.0.0.5:8000\",\"weight\":1},\"server-whoami-service-2-df8a622478a5a709fcb23c50e689b5b6\":{\"url\":\"http://10.0.0.4:8000\",\"weight\":1}},\"loadBalancer\":{\"method\":\"wrr\",\"stickiness\":{}}}},\"frontends\":{\"frontend-PathPrefix-0\":{\"entryPoints\":[\"http\"],\"backend\":\"backend-whoami-service\",\"routes\":{\"route-frontend-PathPrefix-0\":{\"rule\":\"PathPrefix:/\"}},\"passHostHeader\":true,\"priority\":0,\"basicAuth\":null}}}"
time="2018-11-25T13:17:30Z" level=debug msg="Wiring frontend frontend-PathPrefix-0 to entryPoint http"
time="2018-11-25T13:17:30Z" level=debug msg="Creating backend backend-whoami-service"
time="2018-11-25T13:17:30Z" level=debug msg="Adding TLSClientHeaders middleware for frontend frontend-PathPrefix-0"
time="2018-11-25T13:17:30Z" level=debug msg="Creating load-balancer wrr"
time="2018-11-25T13:17:30Z" level=debug msg="Sticky session with cookie _a49bc"
time="2018-11-25T13:17:30Z" level=debug msg="Creating server server-whoami-service-1-a179b2e38a607b1127e5537c2e614b05 at http://10.0.0.5:8000 with weight 1"
time="2018-11-25T13:17:30Z" level=debug msg="Creating server server-whoami-service-2-df8a622478a5a709fcb23c50e689b5b6 at http://10.0.0.4:8000 with weight 1"
time="2018-11-25T13:17:30Z" level=debug msg="Creating route route-frontend-PathPrefix-0 PathPrefix:/"
time="2018-11-25T13:17:30Z" level=info msg="Server configuration reloaded on :80"
time="2018-11-25T13:17:30Z" level=info msg="Server configuration reloaded on :8080"
우리가 말을 걸면 http://192.168.0.100:8080새로운 쿠키 _a49bc가 설정되었음을 알 수 있습니다 .
curl -v http://192.168.0.100:8080
* About to connect() to 192.168.0.100 port 8080 (#0)
* Trying 192.168.0.100...
* Connected to 192.168.0.100 (192.168.0.100) port 8080 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.29.0
> Host: 192.168.0.100:8080
> Accept: */*
>
< HTTP/1.1 200 OK
< Content-Length: 17
< Content-Type: text/plain; charset=utf-8
< Date: Sun, 25 Nov 2018 13:18:40 GMT
< Set-Cookie: _a49bc=http://10.0.0.5:8000; Path=/
<
I'm a6a8c9294fc3
* Connection #0 to host 192.168.0.100 left intact
후속 전화에서이 쿠키를 Traefik으로 보내면 항상 동일한 컨테이너로 전달됩니다.
curl http://192.168.0.100:8080 --cookie "_a49bc=http://10.0.0.5:8000"
I'm a6a8c9294fc3
curl http://192.168.0.100:8080 --cookie "_a49bc=http://10.0.0.5:8000"
I'm a6a8c9294fc3
curl http://192.168.0.100:8080 --cookie "_a49bc=http://10.0.0.5:8000"
I'm a6a8c9294fc3
curl http://192.168.0.100:8080 --cookie "_a49bc=http://10.0.0.5:8000"
I'm a6a8c9294fc3
쿠키에는 Traefik이 요청을 보내야하는 컨테이너의 내부 (오버레이) IP 주소 만 포함됩니다. 쿠키 값을 http://10.0.0.4:8000로 변경하면 요청이 다른 컨테이너로 효과적으로 전달됩니다. 쿠키를 Traefik으로 다시 보내지 않으면 고정 세션이 작동하지 않고 응용 프로그램 컨테이너와 Traefik 컨테이너간에 요청이 균형을 이룹니다.
이것이 CentOS 7의 Docker CE에서 레이어 7 고정 세션을 설정하는 데 필요한 전부입니다.
NTLite를 사용하여 Vultr 시스템과 호환되는 Windows 사용자 지정 ISO를 만드는 방법을 단계별로 설명합니다. 최신 드라이버와 업데이트 통합을 포함한 완벽 가이드.
Vultr BGP 설정을 위한 단계별 튜토리얼. ASN 할당부터 IP 라우팅 구성, BIRD 데몬 설정, FreeBSD 특이사항 및 실전 문제 해결 팁 7가지 포함한 최종 가이드
WebDAV (Web Distributed Authoring and Versioning)를 이용한 원격 파일 작성을 위한 프레임워크로, WsgiDAV 설치 및 구성 방법을 안내합니다.
Mailcow는 DoveCot, Postfix 및 기타 여러 오픈 소스 패키지를 기반으로 하는 경량 메일 서버입니다. 데비안에서 Mailcow 설치 방법을 안내합니다.
랜섬웨어 공격이 증가하고 있지만 AI가 최신 컴퓨터 바이러스를 처리하는 데 도움이 될 수 있습니까? AI가 답인가? AI boone 또는 bane인지 여기에서 읽으십시오.
오픈 소스이자 무료 운영 체제인 ReactOS가 최신 버전과 함께 제공됩니다. 현대 Windows 사용자의 요구 사항을 충족하고 Microsoft를 무너뜨릴 수 있습니까? 이 구식이지만 더 새로운 OS 환경에 대해 자세히 알아보겠습니다.
Whatsapp은 마침내 Mac 및 Windows 사용자용 데스크톱 앱을 출시했습니다. 이제 Windows 또는 Mac에서 Whatsapp에 쉽게 액세스할 수 있습니다. Windows 8 이상 및 Mac OS 10.9 이상에서 사용 가능
인공 지능이 소규모 회사에서 어떻게 인기를 얻고 있으며 어떻게 인공 지능이 성장할 가능성을 높이고 경쟁자가 우위를 점할 수 있는지 알아보려면 이 기사를 읽으십시오.
최근 Apple은 문제를 해결하기 위해 macOS Catalina 10.15.4 추가 업데이트를 출시했지만 이 업데이트로 인해 Mac 컴퓨터의 브릭킹으로 이어지는 더 많은 문제가 발생하는 것 같습니다. 자세히 알아보려면 이 기사를 읽어보세요.
빅데이터의 13가지 상용 데이터 추출 도구