ติดตั้ง Rancher OS ผ่าน iPXE
Rancher OS คือการกระจาย Linux ที่เบามากซึ่งสร้างขึ้นรอบ ๆ Docker ระบบปฏิบัติการมีน้ำหนักประมาณ 20MB บทช่วยสอนนี้จะทำให้คุณพร้อมใช้งาน
Docker Swarm เปลี่ยนเซิร์ฟเวอร์ส่วนบุคคลของคุณให้กลายเป็นคลัสเตอร์ของคอมพิวเตอร์ อำนวยความสะดวกในการปรับขนาดความพร้อมใช้งานสูงและการทำโหลดบาลานซ์ Swarm load-balancer ใช้กลยุทธ์ load-balancing round-robin และสิ่งนี้อาจรบกวนการทำงานที่ถูกต้องของแอปพลิเคชั่น stateful (แบบดั้งเดิม) ซึ่งต้องการเซสชันเหนียวบางรูปแบบเพื่อให้สามารถติดตั้งได้พร้อมกับอินสแตนซ์จำนวนมาก Docker Enterprise Edition รองรับเซสชั่นเหนียว Layer-7 แต่ในคู่มือนี้เราจะมุ่งเน้นไปที่ Docker รุ่นฟรี (CE) ในการใช้งานเซสชันที่ติดหนึบเราจะใช้ Traefik
sudo
สิทธิ์ใช้งาน(เป็นทางเลือก แต่ขอแนะนำอย่างยิ่งให้อย่าใช้ผู้ใช้รูท)ในการกวดวิชานี้เราจะใช้สองกรณี Vultr ที่มีที่อยู่ IP เอกชนและ192.168.0.100
192.168.0.101
ทั้งคู่เป็นโหนดตัวจัดการ Docker Swarm (ซึ่งไม่เหมาะสำหรับการผลิต แต่เพียงพอสำหรับบทช่วยสอนนี้)
บทช่วยสอนนี้ใช้jwilder/whoami
อิมเมจนักเทียบท่าเป็นแอปพลิเคชันสาธิต คอนเทนเนอร์แบบง่ายนี้จะตอบสนองต่อการเรียกส่วนที่เหลือด้วยชื่อของคอนเทนเนอร์ที่ตอบสนองทำให้ง่ายต่อการทดสอบว่าเซสชันที่ติดหนึบทำงานอยู่หรือไม่ เห็นได้ชัดว่าภาพนี้ใช้เพื่อการสาธิตเท่านั้นและจะต้องแทนที่ด้วยภาพของแอปพลิเคชันของคุณเอง
บริการ whoami มีการกำหนดค่าดังนี้:
sudo docker network create whoaminet -d overlay
sudo docker service create --name whoami-service --mode global --network whoaminet --publish "80:8000" jwilder/whoami
sudo iptables -I INPUT 1 -p tcp --dport 80 -j ACCEPT
หากในที่สุดเราก็มาcurl
ถึงจุดสิ้นสุดของ whoami REST ที่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 ต้องการข้อมูลบางอย่างเกี่ยวกับแอปพลิเคชันของคุณก่อนที่จะสามารถเริ่มจัดการคำขอ ข้อมูลนี้ให้แก่ Traefik โดยการเพิ่มป้ายกำกับในบริการ Swarm ของคุณ:
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
: เครือข่ายโอเวอร์เลย์ Docker ที่ Traefik จะสื่อสารกับบริการของคุณ 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 ของเรา-p9090:8080
: เราเผยแพร่เว็บอินเตอร์เฟสของ Traefik ไปยังพอร์ต 9090
--mount ...
: เราติดตั้ง Docker Socket ลงในคอนเทนเนอร์เพื่อให้ Traefik สามารถเข้าถึงรันไทม์ของ Docker ของโฮสต์ได้ --global
: เราต้องการคอนเทนเนอร์ Traefik บนแต่ละโหนดของผู้จัดการเพื่อความพร้อมใช้งานสูง --constraint 'node.role == manager'
: เราต้องการให้ Traefik ทำงานบนโหนดผู้จัดการเท่านั้นเนื่องจากโหนดผู้ปฏิบัติงานไม่สามารถให้ข้อมูลที่จำเป็นกับ Traefik ได้ ตัวอย่างเช่นdocker service ls
บนโหนดงานไม่ทำงานดังนั้น Traefik จะไม่สามารถค้นพบว่าบริการใดกำลังทำงานอยู่--network whoaminet
: เชื่อมต่อ Traefik กับเครือข่ายเดียวกันกับเราwhoami-service
ไม่เช่นนั้นจะไม่สามารถเชื่อมต่อได้ ก่อนหน้านี้เราบอก Traefik ให้เชื่อมต่อกับบริการของเราผ่านเครือข่ายนี้พร้อมกับtraefik.docker.network
ฉลากtraefik
: บอกนักเทียบท่าให้ใช้อิมเมจ Trafik docker ล่าสุดสำหรับบริการนี้--docker --docker.swarmmode --docker.watch --web --loglevel=DEBUG
: อาร์กิวเมนต์บรรทัดคำสั่งถูกส่งโดยตรงไปยัง Traefik เพื่ออนุญาตให้รันในโหมด Docker swarm DEBUG
เป็นทางเลือกที่นี่ แต่น่าสนใจระหว่างการตั้งค่าและสำหรับบทช่วยสอนนี้สิ่งที่เหลืออยู่ที่ต้องทำคือเปิดพอร์ตที่จำเป็นในไฟร์วอลล์ Debian:
sudo iptables -I INPUT 1 -p tcp --dport 8080 -j ACCEPT
sudo iptables -I INPUT 1 -p tcp --dport 9090 -j ACCEPT
ทันทีที่ 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
คุกกี้ไม่มีอะไรนอกจากที่อยู่ IP ภายในของคอนเทนเนอร์ที่ Traefik ควรส่งไปขอ หากคุณเปลี่ยนเป็นค่าคุกกี้เป็นhttp://10.0.0.4:8000
ดังนั้นคำขอจะถูกส่งต่อไปยังคอนเทนเนอร์อื่นอย่างมีประสิทธิภาพ หากคุกกี้ไม่เคยถูกส่งไปยัง Traefik อีกครั้งเซสชันที่ติดหนึบจะไม่ทำงานและการร้องขอจะมีความสมดุลระหว่างคอนเทนเนอร์ของแอปพลิเคชันและคอนเทนเนอร์ Traefik
นั่นคือทั้งหมดที่จำเป็นสำหรับการตั้งค่า Layer 7 Sticky Sessions ใน Docker CE บน Debian 9
Rancher OS คือการกระจาย Linux ที่เบามากซึ่งสร้างขึ้นรอบ ๆ Docker ระบบปฏิบัติการมีน้ำหนักประมาณ 20MB บทช่วยสอนนี้จะทำให้คุณพร้อมใช้งาน
บทนำนักเทียบท่าเป็นแอพพลิเคชั่นที่ช่วยให้เราสามารถปรับใช้โปรแกรมที่ทำงานเป็นตู้คอนเทนเนอร์ได้ มันถูกเขียนในภาษาโปรแกรม Go ที่ได้รับความนิยม
แอปพลิเคชัน PHP มักประกอบด้วยเว็บเซิร์ฟเวอร์ระบบฐานข้อมูลเชิงสัมพันธ์และล่ามภาษาเอง ในบทช่วยสอนนี้เราจะเป็นผู้ใช้ประโยชน์
Harbour เป็นเซิร์ฟเวอร์รีจิสตรีระดับองค์กรโอเพนซอร์ซที่จัดเก็บและกระจายอิมเมจ Docker ฮาร์เบอร์ขยายโอเพนซอร์ซ
ใช้ระบบที่แตกต่างกันอย่างไร เกริ่นนำ Rancher เป็นแพลตฟอร์มโอเพ่นซอร์สสำหรับการเรียกใช้คอนเทนเนอร์และสร้างบริการคอนเทนเนอร์ส่วนตัว Rancher เป็นฐาน
ใช้ระบบที่แตกต่างกันอย่างไร นักเทียบท่าเป็นแอปพลิเคชั่นที่อนุญาตให้มีการปรับใช้ซอฟต์แวร์ภายในคอนเทนเนอร์เสมือน มันถูกเขียนในโปรแกรม Go
ใช้ระบบที่แตกต่างกันอย่างไร เกริ่นนำ Rancher เป็นแพลตฟอร์มโอเพ่นซอร์สสำหรับการเรียกใช้คอนเทนเนอร์และสร้างบริการคอนเทนเนอร์ส่วนตัว Rancher เป็นฐาน
คอนเทนเนอร์ LXC (คอนเทนเนอร์ Linux) เป็นคุณลักษณะของระบบปฏิบัติการใน Linux ที่สามารถใช้เพื่อเรียกใช้ระบบ Linux ที่แยกได้หลายตัวในโฮสต์เดียว thes
ด้วยความช่วยเหลือของแอปพลิเคชัน Vultr Docker คุณสามารถปรับใช้ Docker ในอินสแตนซ์ของเซิร์ฟเวอร์ Vultr ของคุณได้อย่างง่ายดาย ในขณะเดียวกันคุณสามารถอำนวยความสะดวกในการจัดการงานนักเทียบท่า
บทความนี้จะอธิบายวิธีการติดตั้งนักเทียบท่าบน CoreOS ใน CoreOS นั้นโฟลเดอร์ / usr / จะไม่เปลี่ยนรูปดังนั้นเส้นทาง / usr / local / bin ไม่พร้อมใช้งานสำหรับ
เราทุกคนต่างก็รู้จักและชื่นชอบนักเทียบท่าซึ่งเป็นแพลตฟอร์มในการสร้างจัดการและแจกจ่ายคอนเทนเนอร์ของแอปพลิเคชันในหลาย ๆ เครื่อง Docker Inc. เป็นผู้ให้บริการ
ใช้ระบบที่แตกต่างกันอย่างไร เกริ่นนำ Sentry เป็นโซลูชั่นโอเพ่นซอร์สสำหรับการติดตามข้อผิดพลาด ยามติดตามข้อยกเว้นและข้อความที่เป็นประโยชน์อื่น ๆ ไปๆมาๆ
ภาพรวมบทความนี้มีไว้เพื่อช่วยให้คุณได้รับคลัสเตอร์ Kubernetes และทำงานกับ kubeadm ในเวลาไม่นาน คู่มือนี้จะปรับใช้เซิร์ฟเวอร์สองเครื่องในวันที่
ภาพรวม RancherOS เป็นระบบปฏิบัติการที่มีน้ำหนักเบาอย่างไม่น่าเชื่อ (เพียงประมาณ 60 MB) ที่เรียกใช้ระบบ Docker daemon เป็น PID 0 สำหรับการเรียกใช้บริการระบบ
ใช้ระบบที่แตกต่างกันอย่างไร บทนำ Docker Swarm เปลี่ยนเซิร์ฟเวอร์ส่วนบุคคลของคุณให้กลายเป็นคลัสเตอร์ของคอมพิวเตอร์ช่วยอำนวยความสะดวกในการปรับขนาด
บทช่วยสอนนี้อธิบายพื้นฐานของการเริ่มต้นใช้งาน Docker ฉันคิดว่าคุณได้ติดตั้ง Docker แล้ว ขั้นตอนในบทช่วยสอนนี้จะใช้กับ
เมื่อใช้งานเว็บแอพพลิเคชั่นโดยปกติคุณต้องการใช้ทรัพยากรให้เกิดประโยชน์สูงสุดโดยไม่ต้องแปลงซอฟต์แวร์ของคุณให้ใช้มัลติเธรด
บทนำคู่มือนี้จะแสดงวิธีสร้างและกำหนดค่า Docker Swarm โดยใช้เซิร์ฟเวอร์ Alpine Linux 3.9.0 และ Portainer หลายตัว โปรดระวังด้วย
ข้อกำหนดเบื้องต้นเอ็นจิ้น Docker 1.8+ พื้นที่ดิสก์ขั้นต่ำ 4GB RAM ขั้นต่ำ 4GB ขั้นตอนที่ 1 ติดตั้ง Docker เพื่อติดตั้ง SQL-Server, Docker mus
ReactOS ซึ่งเป็นโอเพ่นซอร์สและระบบปฏิบัติการฟรีพร้อมเวอร์ชันล่าสุดแล้ว สามารถตอบสนองความต้องการของผู้ใช้ Windows ยุคใหม่และล้ม Microsoft ได้หรือไม่? มาหาข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบเก่านี้ แต่เป็นประสบการณ์ OS ที่ใหม่กว่ากัน
การโจมตีของ Ransomware กำลังเพิ่มขึ้น แต่ AI สามารถช่วยจัดการกับไวรัสคอมพิวเตอร์ตัวล่าสุดได้หรือไม่? AI คือคำตอบ? อ่านที่นี่รู้ว่า AI boone หรือ bane
ในที่สุด Whatsapp ก็เปิดตัวแอพเดสก์ท็อปสำหรับผู้ใช้ Mac และ Windows ตอนนี้คุณสามารถเข้าถึง Whatsapp จาก Windows หรือ Mac ได้อย่างง่ายดาย ใช้ได้กับ Windows 8+ และ Mac OS 10.9+
อ่านข้อมูลนี้เพื่อทราบว่าปัญญาประดิษฐ์กำลังได้รับความนิยมในหมู่บริษัทขนาดเล็กอย่างไร และเพิ่มโอกาสในการทำให้พวกเขาเติบโตและทำให้คู่แข่งได้เปรียบ
เมื่อเร็ว ๆ นี้ Apple เปิดตัว macOS Catalina 10.15.4 การอัปเดตเสริมเพื่อแก้ไขปัญหา แต่ดูเหมือนว่าการอัปเดตทำให้เกิดปัญหามากขึ้นที่นำไปสู่การสร้างเครื่อง Mac อ่านบทความนี้เพื่อเรียนรู้เพิ่มเติม
13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data
คอมพิวเตอร์ของเราจัดเก็บข้อมูลทั้งหมดในลักษณะที่เรียกว่าระบบไฟล์บันทึก เป็นวิธีการที่มีประสิทธิภาพที่ช่วยให้คอมพิวเตอร์สามารถค้นหาและแสดงไฟล์ได้ทันทีที่คุณกดค้นหาhttps://wethegeek.com/?p=94116&preview=true
ในขณะที่วิทยาศาสตร์มีวิวัฒนาการไปอย่างรวดเร็ว โดยรับช่วงต่อความพยายามของเราอย่างมาก ความเสี่ยงในการทำให้ตัวเองตกอยู่ในภาวะภาวะเอกฐานที่อธิบายไม่ได้ก็เพิ่มขึ้นเช่นกัน อ่านว่าภาวะเอกฐานอาจมีความหมายสำหรับเราอย่างไร
ข้อมูลเชิงลึกเกี่ยวกับ 26 เทคนิคการวิเคราะห์ข้อมูลขนาดใหญ่: ตอนที่ 1
AI ในการดูแลสุขภาพได้ก้าวกระโดดอย่างมากจากทศวรรษที่ผ่านมา ดังนั้นอนาคตของ AI ในการดูแลสุขภาพจึงยังคงเติบโตทุกวัน