portaldacalheta.pt
  • หลัก
  • การจัดการวิศวกรรม
  • บุคลากรและทีมงานของผลิตภัณฑ์
  • อื่น ๆ
  • นวัตกรรม
ส่วนหลัง

Kubernetes คืออะไร? คำแนะนำเกี่ยวกับ Containerization และ Deployment



เมื่อไม่นานมานี้เราใช้เว็บแอปพลิเคชันเสาหินซึ่งเป็นฐานข้อมูลขนาดใหญ่ที่เติบโตขึ้นในฟังก์ชันและคุณสมบัติใหม่ ๆ จนกลายเป็นยักษ์ใหญ่ที่เคลื่อนไหวช้าและยากต่อการจัดการ ขณะนี้นักพัฒนาสถาปนิกและผู้เชี่ยวชาญด้าน DevOps จำนวนเพิ่มมากขึ้นมีความเห็นว่าควรใช้ไมโครเซอร์วิสมากกว่าเสาหินขนาดยักษ์ โดยปกติแล้วการใช้สถาปัตยกรรมที่ใช้ไมโครเซอร์วิสหมายถึงการแยกเสาหินของคุณออกเป็นอย่างน้อยสองแอปพลิเคชัน ได้แก่ แอปส่วนหน้าและแอปส่วนหลัง (API) หลังจากตัดสินใจใช้ไมโครเซอร์วิสคำถามเกิดขึ้น: การเรียกใช้ไมโครเซอร์วิสในสภาพแวดล้อมใดดีกว่ากัน ฉันควรเลือกอะไรเพื่อให้บริการของฉันมีความเสถียรรวมถึงง่ายต่อการจัดการและปรับใช้ คำตอบสั้น ๆ คือใช้ Docker!

ในบทความนี้ฉันจะแนะนำคุณเกี่ยวกับคอนเทนเนอร์อธิบาย Kubernetes และสอนวิธีจัดคอนเทนเนอร์และทำให้แอปใช้งานได้กับคลัสเตอร์ Kubernetes โดยใช้ CircleCI



นักเทียบท่า? Docker คืออะไร?



Docker เป็นเครื่องมือที่ออกแบบมาเพื่อทำให้ DevOps (และชีวิตของคุณ) ง่ายขึ้น ด้วย Docker นักพัฒนาสามารถสร้างปรับใช้และเรียกใช้แอปพลิเคชันในรูปแบบ ตู้คอนเทนเนอร์ . คอนเทนเนอร์ช่วยให้นักพัฒนาสามารถจัดแพ็กเกจแอปพลิเคชันที่มีทุกส่วนที่ต้องการเช่นไลบรารีและการอ้างอิงอื่น ๆ และจัดส่งทั้งหมดเป็นแพ็กเกจเดียว



การเปรียบเทียบแอพที่ปรับใช้กับโฮสต์กับแอพที่รวมอยู่ในคอนเทนเนอร์

การเปรียบเทียบแอพที่ปรับใช้กับโฮสต์กับแอพที่รวมอยู่ในคอนเทนเนอร์

ด้วยการใช้คอนเทนเนอร์นักพัฒนาสามารถปรับใช้อิมเมจไปยังระบบปฏิบัติการใดก็ได้ เพียงติดตั้ง Docker ดำเนินการคำสั่งแอปพลิเคชันของคุณก็พร้อมใช้งาน อ้อและไม่ต้องกังวลกับความไม่สอดคล้องกับไลบรารีเวอร์ชันใหม่ในระบบปฏิบัติการโฮสต์ นอกจากนี้คุณสามารถเปิดใช้งานคอนเทนเนอร์เพิ่มเติมบนโฮสต์เดียวกันได้ซึ่งจะเป็นแอปเดียวกันหรือไม่ มันไม่สำคัญ



ดูเหมือนว่า Docker จะเป็นเครื่องมือที่ยอดเยี่ยม แต่ฉันควรเปิดคอนเทนเนอร์อย่างไรและที่ไหน?

มีตัวเลือกมากมายสำหรับวิธีเรียกใช้คอนเทนเนอร์: AWS Elastic Container Service (AWS Fargate หรืออินสแตนซ์ที่สงวนไว้พร้อมการปรับขนาดอัตโนมัติในแนวนอนและแนวตั้ง) อินสแตนซ์ระบบคลาวด์ที่มีอิมเมจ Docker ที่กำหนดไว้ล่วงหน้าใน Azure หรือ Google Cloud (พร้อมเทมเพลตกลุ่มอินสแตนซ์และการปรับขนาดอัตโนมัติ) บนเซิร์ฟเวอร์ของคุณเองด้วย Docker; หรือแน่นอน Kubernetes! Kubernetes สร้างขึ้นโดยเฉพาะสำหรับการจำลองเสมือนและคอนเทนเนอร์โดยวิศวกรของ Google ในปี 2014



java rest เฟรมเวิร์กการทดสอบ api

Kubernetes? นั่นคืออะไร?

Kubernetes เป็นระบบโอเพนซอร์สที่ช่วยให้คุณสามารถเรียกใช้คอนเทนเนอร์จัดการคอนเทนเนอร์ใช้งานอัตโนมัติปรับขนาดการปรับใช้สร้างและกำหนดค่าทางเข้าปรับใช้แอปพลิเคชันไร้สถานะหรือสถานะและอื่น ๆ อีกมากมาย โดยพื้นฐานแล้วคุณสามารถเปิดใช้งานอินสแตนซ์ตั้งแต่หนึ่งรายการขึ้นไปและติดตั้ง Kubernetes เพื่อดำเนินการเป็นคลัสเตอร์ Kubernetes จากนั้นรับปลายทาง API ของคลัสเตอร์ Kubernetes กำหนดค่า kubectl (เครื่องมือสำหรับจัดการคลัสเตอร์ Kubernetes) และ Kubernetes พร้อมให้บริการแล้ว



เหตุใดฉันจึงควรใช้?

ด้วย Kubernetes คุณสามารถใช้ทรัพยากรการคำนวณได้สูงสุด ด้วย Kubernetes คุณจะเป็นกัปตันเรือของคุณ (โครงสร้างพื้นฐาน) โดยที่ Kubernetes เติมใบเรือของคุณ ด้วย Kubernetes บริการของคุณจะเป็น HA และที่สำคัญที่สุดเมื่อใช้ Kubernetes คุณจะประหยัดเงินได้มาก



น่าดู! โดยเฉพาะอย่างยิ่งถ้าจะประหยัดเงิน! มาพูดถึงเรื่องนี้กันดีกว่า!

Kubernetes กำลังได้รับความนิยมทุกวัน มาเจาะลึกและตรวจสอบสิ่งที่อยู่ภายใต้ประทุน



Under the Hood: Kubernetes คืออะไร?

Kubernetes คืออะไร? ส่วนประกอบที่ประกอบขึ้นเป็น Kubernetes ใต้ฝากระโปรง

ส่วนประกอบที่ประกอบเป็น Kubernetes

Kubernetes เป็นชื่อของระบบทั้งหมด แต่เช่นเดียวกับรถของคุณมีชิ้นส่วนขนาดเล็กจำนวนมากที่ทำงานร่วมกันอย่างลงตัวเพื่อให้ Kubernetes ทำงานได้ มาเรียนรู้กันว่าพวกเขาคืออะไร

โหนดหลัก - แผงควบคุมสำหรับคลัสเตอร์ Kubernetes ทั้งหมด ส่วนประกอบของต้นแบบสามารถรันบนโหนดใดก็ได้ในคลัสเตอร์ ส่วนประกอบที่สำคัญ ได้แก่ :

  • เซิร์ฟเวอร์ API: จุดเริ่มต้นสำหรับคำสั่ง REST ทั้งหมดซึ่งเป็นส่วนประกอบเดียวของ Master Node ซึ่งผู้ใช้สามารถเข้าถึงได้
  • พื้นที่เก็บข้อมูล: พื้นที่จัดเก็บคีย์ - ค่าที่แข็งแกร่งสม่ำเสมอและพร้อมใช้งานสูงที่คลัสเตอร์ Kubernetes ใช้
  • เครื่องมือจัดกำหนดการ: เฝ้าดูพ็อดที่สร้างขึ้นใหม่และกำหนดให้กับโหนด การปรับใช้พ็อดและบริการบนโหนดเกิดขึ้นเนื่องจากตัวกำหนดตารางเวลา
  • ผู้จัดการควบคุม: รันตัวควบคุมทั้งหมดที่จัดการงานประจำในคลัสเตอร์
  • โหนดคนงาน: โหนดเอเจนต์หลักเรียกอีกอย่างว่าโหนดมินเนียน ฝักจะทำงานที่นี่ โหนดผู้ปฏิบัติงานประกอบด้วยบริการที่จำเป็นทั้งหมดในการจัดการเครือข่ายระหว่างคอนเทนเนอร์สื่อสารกับโหนดหลักและกำหนดทรัพยากรให้กับคอนเทนเนอร์ที่กำหนดเวลาไว้
  • นักเทียบท่า: รันบนโหนดของผู้ปฏิบัติงานแต่ละโหนดและดาวน์โหลดรูปภาพและคอนเทนเนอร์เริ่มต้น
  • คูเบเล็ต: ตรวจสอบสถานะของพ็อดและตรวจสอบว่าคอนเทนเนอร์เปิดใช้งานอยู่ นอกจากนี้ยังสื่อสารกับที่เก็บข้อมูลรับข้อมูลเกี่ยวกับบริการและการเขียนรายละเอียดเกี่ยวกับสิ่งที่สร้างขึ้นใหม่
  • พร็อกซีคิวบา: พร็อกซีเครือข่ายและตัวจัดสรรภาระงานสำหรับบริการบนโหนดผู้ปฏิบัติงานเดียว มีหน้าที่กำหนดเส้นทางการจราจร
  • Kubectl: เครื่องมือ CLI สำหรับผู้ใช้ในการสื่อสารกับเซิร์ฟเวอร์ Kubernetes API

พ็อดและบริการคืออะไร?

พ็อด เป็นหน่วยที่เล็กที่สุดของคลัสเตอร์ Kubernetes เปรียบเสมือนอิฐก้อนเดียวในผนังของอาคารขนาดใหญ่ พ็อดคือชุดของคอนเทนเนอร์ที่ต้องทำงานร่วมกันและสามารถแชร์ทรัพยากรได้ (เนมสเปซ Linux, cgroups, ที่อยู่ IP) ฝักไม่ได้มีไว้เพื่อให้มีอายุยืนยาว

บริการ เป็นนามธรรมที่อยู่ด้านบนของพ็อดจำนวนมากโดยทั่วไปต้องมีพร็อกซีอยู่ด้านบนสำหรับบริการอื่น ๆ เพื่อสื่อสารกับมันผ่านที่อยู่ IP เสมือน

ตัวอย่างการปรับใช้อย่างง่าย

วิธีที่ผู้มีส่วนได้ส่วนเสียโต้ตอบกับแอปที่ขับเคลื่อนด้วย Kubernetes

วิธีที่ผู้มีส่วนได้ส่วนเสียโต้ตอบกับแอปที่ขับเคลื่อนด้วย Kubernetes

ฉันจะใช้แอปพลิเคชัน Ruby on Rails และ GKE เป็นแพลตฟอร์มสำหรับเรียกใช้ Kubernetes จริงๆแล้วคุณสามารถใช้ Kubernetes ใน AWS หรือ Azure หรือแม้แต่สร้างคลัสเตอร์ในฮาร์ดแวร์ของคุณเองหรือเรียกใช้ Kubernetes ภายในเครื่องโดยใช้ minikube - ตัวเลือกทั้งหมดที่คุณจะพบใน นี้ หน้า.

ไฟล์ต้นฉบับสำหรับแอพนี้สามารถพบได้ใน ที่เก็บ GitHub นี้ .

ข้อใดต่อไปนี้ถูกต้องสำหรับความยืดหยุ่นของราคาอุปสงค์

ในการสร้างแอพ Rails ใหม่ให้ดำเนินการ:

rails new blog

ในการกำหนดค่าการเชื่อมต่อ MySQL สำหรับการใช้งานจริงใน config/database.yml file:

production: adapter: mysql2 encoding: utf8 pool: 5 port: 3306 database: host: 127.0.0.1 username: password:

ในการสร้างโมเดลบทความตัวควบคุมมุมมองและการโยกย้ายให้ดำเนินการ:

rails g scaffold Article title:string description:text

ในการเพิ่มอัญมณีใน Gemfile:

gem 'mysql2', '= 0.4.4' gem 'health_check'

ในการสร้างอิมเมจ Docker ให้คว้าไฟล์ Dockerfile และดำเนินการ:

docker build -t REPO_NAME/IMAGE_NAME:TAG . && docker push REPO_NAME/IMAGE_NAME:TAG

ถึงเวลาสร้างคลัสเตอร์ Kubernetes เปิดเพจ GKE และสร้างคลัสเตอร์ Kubernetes เมื่อสร้างคลัสเตอร์แล้วให้คลิก“ ปุ่มเชื่อมต่อ” และคัดลอกคำสั่ง - ต้องแน่ใจว่าคุณมีเครื่องมือ gCloud CLI ( ทำอย่างไร ) และ kubectl ติดตั้งและกำหนดค่า ดำเนินการคำสั่งที่คัดลอกบนพีซีของคุณและตรวจสอบการเชื่อมต่อกับคลัสเตอร์ Kubernetes ดำเนินการ kubectl cluster-info.

แอปพร้อมที่จะปรับใช้กับคลัสเตอร์ k8s มาสร้างฐานข้อมูล MySQL เปิดเพจ SQL ในคอนโซล gCloud และสร้างอินสแตนซ์ MySQL DB สำหรับแอ็พพลิเคชัน เมื่ออินสแตนซ์พร้อมให้สร้างผู้ใช้และฐานข้อมูลและคัดลอกไฟล์ ชื่อการเชื่อมต่ออินสแตนซ์ .

นอกจากนี้เราต้องสร้างรหัสบัญชีบริการในไฟล์ API และบริการ หน้าสำหรับเข้าถึง MySQL DB จากคอนเทนเนอร์ด้านข้าง คุณสามารถค้นหาข้อมูลเพิ่มเติมเกี่ยวกับกระบวนการนั้น ที่นี่ . เปลี่ยนชื่อไฟล์ที่ดาวน์โหลดเป็น service-account.json เราจะกลับมาที่ไฟล์นั้นในภายหลัง

เราพร้อมที่จะใช้งานแอปพลิเคชันของเรากับ Kubernetes แต่ก่อนอื่นเราควรสร้าง ความลับ สำหรับแอปพลิเคชันของเรา - วัตถุลับใน Kubernetes ที่สร้างขึ้นเพื่อจัดเก็บข้อมูลที่ละเอียดอ่อน อัปโหลด service-account.json ที่ดาวน์โหลดมาก่อนหน้านี้ ไฟล์:

kubectl create secret generic mysql-instance-credentials --from-file=credentials.json=service-account.json

สร้างความลับสำหรับแอปพลิเคชัน:

kubectl create secret generic simple-app-secrets --from-literal=username=$MYSQL_PASSWORD --from-literal=password=$MYSQL_PASSWORD --from-literal=database-name=$MYSQL_DB_NAME --from-literal=secretkey=$SECRET_RAILS_KEY

อย่าลืมแทนที่ค่าหรือตั้งค่าตัวแปรสภาพแวดล้อมด้วยค่าของคุณ

ก่อนที่จะสร้างการทำให้ใช้งานได้มาดูที่ ไฟล์การปรับใช้ . ฉันเชื่อมไฟล์สามไฟล์เข้าด้วยกัน ส่วนแรกคือบริการที่จะแสดงพอร์ต 80 และส่งต่อการเชื่อมต่อทั้งหมดที่มาที่พอร์ต 80 ถึง 3000 บริการมีตัวเลือกซึ่งบริการรู้ว่าพ็อดใดที่ควรส่งต่อการเชื่อมต่อ

ส่วนถัดไปของไฟล์คือการปรับใช้ซึ่งอธิบายถึงกลยุทธ์การปรับใช้ - คอนเทนเนอร์ซึ่งจะถูกเรียกใช้ภายในพ็อดตัวแปรสภาพแวดล้อมทรัพยากรโพรบการเมาท์สำหรับแต่ละคอนเทนเนอร์และข้อมูลอื่น ๆ

ส่วนสุดท้ายคือ Horizontal Pod Autoscaler HPA มีการกำหนดค่าที่ค่อนข้างเรียบง่าย โปรดทราบว่าหากคุณไม่ได้ตั้งค่าทรัพยากรสำหรับคอนเทนเนอร์ในส่วนการปรับใช้ HPA จะไม่ทำงาน.

คุณกำหนดค่า Vertical Autoscaler สำหรับคลัสเตอร์ Kubernetes ได้ในหน้าแก้ไข GKE นอกจากนี้ยังมีการกำหนดค่าที่ค่อนข้างเรียบง่าย

ได้เวลาจัดส่งไปยังคลัสเตอร์ GKE! ก่อนอื่นเราควรเรียกใช้การย้ายข้อมูลผ่าน งาน . ดำเนินการ:

kubectl apply -f rake-tasks-job.yaml - งานนี้จะเป็นประโยชน์สำหรับกระบวนการ CI / CD

kubectl apply -f deployment.yaml - เพื่อสร้างบริการการปรับใช้และ HPA

การโจมตีแอปพลิเคชันเว็บเซิร์ฟเวอร์ประเภทใดที่แนะนำการป้อนข้อมูลใหม่เพื่อใช้ประโยชน์จากช่องโหว่

จากนั้นตรวจสอบพ็อดของคุณโดยดำเนินการคำสั่ง: kubectl get pods -w

NAME READY STATUS RESTARTS AGE sample-799bf9fd9c-86cqf 2/2 Running 0 1m sample-799bf9fd9c-887vv 2/2 Running 0 1m sample-799bf9fd9c-pkscp 2/2 Running 0 1m

ตอนนี้เรามาสร้างทางเข้าสำหรับแอปพลิเคชัน:

  1. สร้าง IP แบบคงที่: gcloud compute addresses create sample-ip --global
  2. สร้างทางเข้า ( ไฟล์ ): kubectl apply -f ingress.yaml
  3. ตรวจสอบว่าได้สร้างทางเข้าแล้วและคว้า IP: kubectl get ingress -w
  4. สร้างโดเมน / โดเมนย่อยสำหรับแอปพลิเคชันของคุณ

CI / ซีดี

มาสร้างไปป์ไลน์ CI / CD โดยใช้ CircleCI จริงๆแล้วการสร้างไปป์ไลน์ CI / CD โดยใช้ CircleCI เป็นเรื่องง่าย แต่โปรดทราบว่ากระบวนการปรับใช้อัตโนมัติที่รวดเร็วและสกปรกโดยไม่มีการทดสอบเช่นนี้จะใช้ได้กับโครงการขนาดเล็ก แต่โปรดอย่าทำสิ่งนี้เพื่ออะไรที่ร้ายแรงเพราะ หากรหัสใหม่มีปัญหาในการผลิตคุณจะเสียเงิน นั่นคือเหตุผลที่คุณควรคิดเกี่ยวกับการออกแบบกระบวนการปรับใช้ที่มีประสิทธิภาพเปิดใช้งาน Canary ก่อนเปิดตัวเต็มรูปแบบตรวจสอบข้อผิดพลาดในบันทึกหลังจาก Canary เริ่มต้นและอื่น ๆ

ขณะนี้เรามีโครงการเล็ก ๆ ที่เรียบง่ายดังนั้นเรามาสร้างกระบวนการปรับใช้ CI / CD แบบอัตโนมัติเต็มรูปแบบโดยไม่ต้องทดสอบ ขั้นแรกคุณควรรวม CircleCI เข้ากับที่เก็บของคุณคุณจะพบคำแนะนำทั้งหมด ที่นี่ . จากนั้นเราควรสร้างไฟล์กำหนดค่าพร้อมคำแนะนำสำหรับระบบ CircleCI Config ดูเรียบง่าย ประเด็นหลักคือมีสองสาขาใน repo GitHub: master และ production.

  1. สาขาต้นแบบ มีไว้สำหรับการพัฒนาสำหรับโค้ดใหม่ เมื่อมีคนพุชรหัสใหม่ไปยังสาขาหลัก CircleCI จะเริ่มเวิร์กโฟลว์สำหรับสาขาหลักนั่นคือสร้างและทดสอบโค้ด
  2. สาขาการผลิต มีไว้สำหรับการปรับใช้เวอร์ชันใหม่กับสภาพแวดล้อมการใช้งานจริง เวิร์กโฟลว์สำหรับสาขาการผลิตมีดังนี้: พุชโค้ดใหม่ (หรือดีกว่านั้นเปิด PR จากสาขาหลักไปยังการผลิต) เพื่อทริกเกอร์กระบวนการสร้างและปรับใช้ใหม่ ในระหว่างการสร้าง CircleCI จะสร้างอิมเมจ Docker ใหม่ส่งไปยัง GCR และสร้างการเปิดตัวใหม่สำหรับการปรับใช้ หากการเปิดตัวล้มเหลว CircleCI จะทริกเกอร์กระบวนการย้อนกลับ

ก่อนรันบิลด์ใด ๆ คุณควรกำหนดค่าโปรเจ็กต์ใน CircleCI สร้างบัญชีบริการใหม่ใน API และเพจ Services ใน GCloud ด้วยบทบาทเหล่านี้: เข้าถึง GCR และ GKE โดยสมบูรณ์เปิดไฟล์ JSON ที่ดาวน์โหลดมาและคัดลอกเนื้อหาจากนั้นสร้างตัวแปรสภาพแวดล้อมใหม่ในการตั้งค่าโปรเจ็กต์ใน CircleCI ด้วยชื่อ GCLOUD_SERVICE_KEY และวางเนื้อหาของไฟล์บัญชีบริการเป็นค่า นอกจากนี้คุณต้องสร้าง env vars ถัดไป: GOOGLE_PROJECT_ID (คุณสามารถพบได้ในหน้าแรกของคอนโซล GCloud), GOOGLE_COMPUTE_ZONE (โซนสำหรับคลัสเตอร์ GKE ของคุณ) และ GOOGLE_CLUSTER_NAME (ชื่อคลัสเตอร์ GKE)

ขั้นตอนสุดท้าย (ปรับใช้) ที่ CircleCI จะมีลักษณะดังนี้:

kubectl patch deployment sample -p '{'spec':{'template':{'spec':{'containers':[{'name':'sample','image':'gcr.io/test-d6bf8/simple:''$CIRCLE_SHA1'''}]}}}}' if ! kubectl rollout status deploy/sample; then echo 'DEPLOY FAILED, ROLLING BACK TO PREVIOUS' kubectl rollout undo deploy/sample # Deploy failed -> notify slack else echo 'Deploy succeeded, current version: ${CIRCLE_SHA1}' # Deploy succeeded -> notify slack fi deployment.extensions/sample patched Waiting for deployment 'sample' rollout to finish: 2 out of 3 new replicas have been updated... Waiting for deployment 'sample' rollout to finish: 2 out of 3 new replicas have been updated... Waiting for deployment 'sample' rollout to finish: 2 out of 3 new replicas have been updated... Waiting for deployment 'sample' rollout to finish: 1 old replicas are pending termination... Waiting for deployment 'sample' rollout to finish: 1 old replicas are pending termination... Waiting for deployment 'sample' rollout to finish: 1 old replicas are pending termination... Waiting for deployment 'sample' rollout to finish: 2 of 3 updated replicas are available... Waiting for deployment 'sample' rollout to finish: 2 of 3 updated replicas are available... deployment 'sample' successfully rolled out Deploy succeeded, current version: 512eabb11c463c5431a1af4ed0b9ebd23597edd9

สรุป

ดูเหมือนว่ากระบวนการสร้างคลัสเตอร์ Kubernetes ใหม่จะไม่ยากนัก! และกระบวนการ CI / CD นั้นยอดเยี่ยมมาก!

ใช่ Kubernetes สุดยอดมาก! ด้วย Kubernetes ระบบของคุณจะมีเสถียรภาพมากขึ้นจัดการได้ง่ายขึ้นและจะทำให้คุณเป็นกัปตันของระบบ ไม่ต้องพูดถึง Kubernetes สร้างความตื่นเต้นให้กับระบบเล็กน้อยและจะให้ +100 คะแนนสำหรับการตลาดของคุณ!

เมื่อคุณมีพื้นฐานแล้วคุณสามารถดำเนินการต่อไปและเปลี่ยนเป็นการกำหนดค่าขั้นสูงเพิ่มเติมได้ ฉันกำลังวางแผนที่จะครอบคลุมมากขึ้นในบทความในอนาคต แต่ในระหว่างนี้นี่เป็นความท้าทาย: สร้างคลัสเตอร์ Kubernetes ที่มีประสิทธิภาพสำหรับแอปพลิเคชันของคุณด้วยฐานข้อมูลที่มีสถานะอยู่ภายในคลัสเตอร์ (รวมถึง Sidecar Pod สำหรับการสำรองข้อมูล) ติดตั้ง Jenkins ภายใน คลัสเตอร์ Kubernetes เดียวกันสำหรับไปป์ไลน์ CI / CD และปล่อยให้ Jenkins ใช้พ็อดเป็นทาสสำหรับงานสร้าง ใช้ผู้รับรองเพื่อเพิ่ม / รับใบรับรอง SSL สำหรับทางเข้าของคุณ สร้างระบบตรวจสอบและแจ้งเตือนสำหรับแอปพลิเคชันของคุณโดยใช้ Stackdriver

Kubernetes ดีมากเพราะปรับขนาดได้ง่ายไม่มีการล็อกผู้ขายและเนื่องจากคุณจ่ายเงินสำหรับอินสแตนซ์คุณจึงประหยัดเงิน อย่างไรก็ตามไม่ใช่ทุกคนที่เป็น ผู้เชี่ยวชาญ Kubernetes หรือมีเวลาในการตั้งค่าคลัสเตอร์ใหม่ - สำหรับมุมมองทางเลือกเพื่อน ApeeScapeer Amin Shah Gilani สร้างกรณีนี้เพื่อใช้ Heroku, GitLab CI และระบบอัตโนมัติจำนวนมากที่เขาคิดไว้แล้วเพื่อเขียนโค้ดเพิ่มเติมและทำ งานการดำเนินงานน้อยลงใน วิธีสร้างไปป์ไลน์การปรับใช้เริ่มต้นที่มีประสิทธิภาพ .

ที่เกี่ยวข้อง:
  • ทำคณิตศาสตร์: แอปพลิเคชั่น Microservices ปรับขนาดอัตโนมัติด้วย Orchestrators
  • K8s / Kubernetes: AWS เทียบกับ GCP เทียบกับ Azure

ทำความเข้าใจพื้นฐาน

Docker คืออะไร?

Docker เป็นเครื่องมือสำหรับนักพัฒนา / sysadmins / devops คนในการสร้างจัดส่งและรันแอปพลิเคชันแบบกระจายไม่ว่าจะเป็นบนแล็ปท็อป VM ของศูนย์ข้อมูลหรือระบบคลาวด์

Kubernetes คืออะไร?

Kubernetes เป็นระบบโอเพ่นซอร์สที่ช่วยให้คุณจัดการปริมาณงานและบริการที่มีคอนเทนเนอร์ปรับใช้โดยอัตโนมัติปรับขนาดการปรับใช้สร้างและกำหนดค่าทางเข้าปรับใช้แอปพลิเคชันที่ไม่ระบุสถานะหรือสถานะและอื่น ๆ อีกมากมาย

Kubernetes เขียนด้วย Go หรือไม่

ใช่และ Docker เขียนด้วย Go เช่นกัน

ฝัก / ภาชนะ Kubernetes คืออะไร

พ็อดคือกลุ่มของคอนเทนเนอร์ที่ใช้งานร่วมกันบนโฮสต์เดียวกัน หากพ็อดมีคอนเทนเนอร์เดียวโดยทั่วไปคุณสามารถแทนที่คำว่า 'พ็อด' ด้วย 'คอนเทนเนอร์' และเข้าใจแนวคิดได้อย่างถูกต้อง

Containerization หมายถึงอะไร?

Application containerization เป็นวิธีการจำลองเสมือนระดับ OS ที่ใช้ในการปรับใช้และเรียกใช้แอปพลิเคชันแบบกระจายโดยไม่ต้องเปิดเครื่องเสมือน (VM) ทั้งหมดสำหรับแต่ละแอป

เมื่อไรจะจ้าง cfo

สามารถใช้ Kubernetes ในการผลิตได้หรือไม่

ใช่. เปิดตัวครั้งแรกเมื่อสี่ปีที่แล้ว ตั้งแต่นั้นเป็นต้นมา Kubernetes กลายเป็นแพลตฟอร์มที่ทรงพลังและมีเสถียรภาพ

การจ้าง CFO เริ่มต้น - เมื่อใดควรจ้าง CFO และทำไมคุณถึงต้องการ

กระบวนการทางการเงิน

การจ้าง CFO เริ่มต้น - เมื่อใดควรจ้าง CFO และทำไมคุณถึงต้องการ
การสร้างต้นแบบด้วยข้อมูลจริง - บทช่วยสอนเกี่ยวกับเฟรม

การสร้างต้นแบบด้วยข้อมูลจริง - บทช่วยสอนเกี่ยวกับเฟรม

เครื่องมือและบทช่วยสอน

โพสต์ยอดนิยม
แหล่งข้อมูลสำหรับธุรกิจขนาดเล็กสำหรับ COVID-19: เงินกู้เงินช่วยเหลือและสินเชื่อ
แหล่งข้อมูลสำหรับธุรกิจขนาดเล็กสำหรับ COVID-19: เงินกู้เงินช่วยเหลือและสินเชื่อ
วิธีออกแบบประสบการณ์ที่ยอดเยี่ยมสำหรับอินเทอร์เน็ตในทุกสิ่ง
วิธีออกแบบประสบการณ์ที่ยอดเยี่ยมสำหรับอินเทอร์เน็ตในทุกสิ่ง
กลยุทธ์การสื่อสารที่มีประสิทธิภาพสำหรับนักออกแบบ
กลยุทธ์การสื่อสารที่มีประสิทธิภาพสำหรับนักออกแบบ
เรียนรู้ Markdown: เครื่องมือการเขียนสำหรับนักพัฒนาซอฟต์แวร์
เรียนรู้ Markdown: เครื่องมือการเขียนสำหรับนักพัฒนาซอฟต์แวร์
แนวโน้มต่อไปนี้: การแสดงความเคารพกับการลอกเลียนแบบการออกแบบ
แนวโน้มต่อไปนี้: การแสดงความเคารพกับการลอกเลียนแบบการออกแบบ
 
คู่มือสไตล์ Sass: บทช่วยสอน Sass เกี่ยวกับวิธีการเขียนโค้ด CSS ที่ดีขึ้น
คู่มือสไตล์ Sass: บทช่วยสอน Sass เกี่ยวกับวิธีการเขียนโค้ด CSS ที่ดีขึ้น
ทำลายกระบวนการคิดเชิงออกแบบ
ทำลายกระบวนการคิดเชิงออกแบบ
การออกแบบเว็บไซต์ CMS: คู่มือการใช้งานเนื้อหาแบบไดนามิก
การออกแบบเว็บไซต์ CMS: คู่มือการใช้งานเนื้อหาแบบไดนามิก
ทำคณิตศาสตร์: การปรับขนาดแอปพลิเคชันไมโครเซอร์วิสด้วย Orchestrators
ทำคณิตศาสตร์: การปรับขนาดแอปพลิเคชันไมโครเซอร์วิสด้วย Orchestrators
การปฏิวัติหุ่นยนต์เชิงพาณิชย์ที่กำลังจะเกิดขึ้น
การปฏิวัติหุ่นยนต์เชิงพาณิชย์ที่กำลังจะเกิดขึ้น
โพสต์ยอดนิยม
  • นักออกแบบต้องระวังข้อใดต่อไปนี้เมื่อวางแผนการออกแบบเอกสาร
  • สื่อดิจิทัล vs การออกแบบกราฟิก
  • ลำดับชั้นภาพในการออกแบบเว็บ
  • มีไซต์หาคู่ที่แตกต่างกันกี่แห่ง
  • ไฟล์ต้นฉบับ c++
  • การปรับแต่งประสิทธิภาพ sql คืออะไร
  • หน้าจอ @media และ (ความกว้างสูงสุด:
หมวดหมู่
  • การจัดการวิศวกรรม
  • บุคลากรและทีมงานของผลิตภัณฑ์
  • อื่น ๆ
  • นวัตกรรม
  • © 2022 | สงวนลิขสิทธิ์

    portaldacalheta.pt