2015-09-30 23 views
8

Vì vậy, Kubernetes có một mô hình mạng khá mới lạ, mà tôi tin là dựa trên những gì nó nhận thấy là thiếu sót với mạng Docker mặc định. Trong khi tôi vẫn đang đấu tranh để hiểu: (1) những gì nó nhận thấy thiếu sót thực sự là gì, và (2) giải pháp chung của Kubernetes là gì, bây giờ tôi đạt đến một điểm mà tôi muốn thực hiện giải pháp và có lẽ điều đó sẽ gợi ý cho tôi tốt hơn một chút.Chạy Kubernetes trên vCenter

Trong khi phần còn lại của tài liệu Kubernetes rất trưởng thành và được viết rõ, hướng dẫn cấu hình mạng rất thưa thớt, phần lớn không mạch lạc và nhiều bài viết khác nhau, thay vì được đặt ở một nơi cụ thể.

Tôi hy vọng một người nào đó đã thiết lập cụm Kubernetes trước đó (từ đầu) có thể giúp hướng dẫn tôi qua các thủ tục cơ bản. Tôi không quan tâm đến việc chạy trên GCE hoặc AWS và hiện tại tôi không quan tâm đến việc sử dụng bất kỳ loại mạng lớp phủ nào như flannel.

My cơ bản hiểu là:

  1. Carve ra một subnet /16 cho tất cả vỏ của bạn. Điều này sẽ giới hạn bạn với một số vỏ 65K, đủ cho hầu hết các ứng dụng thông thường. Tất cả các IP trong mạng con này phải là "công khai" và không nằm trong phạm vi của một số truyền thống (riêng tư).
  2. Tạo một cầu cbr0 ở đâu đó và chắc chắn rằng nó dai dẳng (nhưng vào những gì máy?)
  3. Remove/vô hiệu hóa các quy tắc MASQUERADE cài đặt bởi Docker.
  4. Một số cách định cấu hình các tuyến đường iptables (một lần nữa, ở đâu?) sao cho mỗi nhóm được tách bởi Kubernetes nhận được một trong những IP công cộng đó.
  5. Một số thiết lập khác được yêu cầu để sử dụng cân bằng tải Services và DNS động.
  6. Cung cấp 5 máy ảo: 1 thạc sĩ, 4 tay sai
  7. Cài đặt/cấu hình Docker trên tất cả 5 máy ảo
  8. Cài đặt/cấu hình kubectl, controller-manager, apiserveretcd để làm chủ, và chạy chúng như các dịch vụ/daemon
  9. cài đặt/cấu hình kubeletkube-proxy trên mỗi minion và chạy chúng như các dịch vụ/daemon

Đây là tốt nhất mà tôi có thể thu thập từ 2 ngày đầy đủ của nghiên cứu, và họ có thể sai (hoặc misdir ected), không đúng thứ tự và hoàn toàn không đầy đủ.

Tôi có quyền truy cập không hạn chế để tạo máy ảo trong cụm vCenter tại chỗ. Nếu thay đổi cần phải được thực hiện cho VLAN/Switches/etc. Tôi có thể tham gia vào cơ sở hạ tầng.

Tôi nên thiết lập bao nhiêu máy ảo cho Kubernetes (đối với cụm có kích thước nhỏ đến trung bình) và tại sao? Những điều chỉnh chính xác nào tôi cần phải thực hiện với các chỉ dẫn mơ hồ của tôi ở trên, để có được cấu hình mạng hoàn toàn được cấu hình?

Tôi thích cài đặt/định cấu hình tất cả các tệp nhị phân. Chỉ cần hoàn toàn nghẹt thở ở phía mạng của thiết lập.

Trả lời

3

Để giới thiệu chung về mạng kubernetes, tôi thấy http://www.slideshare.net/enakai/architecture-overview-kubernetes-with-red-hat-enterprise-linux-71 khá hữu ích.

Trên các mặt hàng của bạn (1) và (2): IMHO chúng được mô tả độc đáo theo số https://github.com/kubernetes/kubernetes/blob/master/docs/admin/networking.md#docker-model. Từ kinh nghiệm của tôi: Vấn đề với cách tiếp cận NAT Docker là gì? Đôi khi bạn cần định cấu hình ví dụ: vào phần mềm tất cả các điểm cuối của tất cả các nút (172.168.10.1:8080, 172.168.10.2:8080, v.v.). trong kubernetes bạn có thể chỉ cần cấu hình IP của các pod vào mỗi pod khác, Docker làm phức tạp nó bằng cách sử dụng NAT indirection. Xem thêm Setting up the network for Kubernetes để có câu trả lời hay.

Bình luận về điểm khác của bạn: 1.

Tất cả IP trong subnet này phải là "công cộng" và không phải bên trong của một số truyền thống-tin phạm vi (classful).

"Mạng nội bộ" của kubernetes thường sử dụng IP riêng tư, cũng xem các trang trình bày ở trên, sử dụng 10.x.x.x làm ví dụ. Tôi đoán nhầm lẫn xuất phát từ một số văn bản kubernetes đề cập đến "công khai" là "có thể nhìn thấy bên ngoài nút", nhưng chúng không có nghĩa là "Phạm vi địa chỉ IP công cộng Internet".

+0

Cảm ơn @Stefan Vailant (+1), tôi đánh giá cao các liên kết và giải thích. Tuy nhiên, tôi nghĩ bạn đã bỏ lỡ trọng tâm chính của câu hỏi của tôi, đó là câu ** được in đậm ở trên bắt đầu "* Tôi nên thiết lập bao nhiêu máy ảo cho Kubernetes ... *". Trọng tâm chính của câu hỏi (và tiền thưởng!) Là tập hợp các bước cụ thể để thiết lập Kubernetes trên vCenter. Có suy nghĩ gì không? – smeeb

+0

Xin chào smeeb, tôi đồng ý với bình luận của bạn. Xin lỗi, không có ý kiến ​​từ phía tôi, tôi chủ yếu muốn bắt đầu cuộc thảo luận, vì câu hỏi của bạn chưa được trả lời trong 2 ngày. –

0

Đối với bất kỳ ai quan tâm đến việc làm như vậy, đây là gói hiện tại của tôi.

Tôi đã tìm thấy tập lệnh kube-up.sh cài đặt cụm Kubernetes chất lượng sản xuất trên tài khoản AWS của bạn. Về cơ bản nó tạo ra 1 cá thể chủ EC2 của Kubernetes và 4 trường hợp minion.

Trên máy chủ, cài đặt v.v, apiserver, trình quản lý bộ điều khiển và trình lên lịch. Trên tay sai, nó cài đặt kubelet và kube-proxy. Nó cũng tạo ra một nhóm tự động mở rộng quy mô cho các tay sai (tốt đẹp), và tạo ra một loạt toàn bộ các thứ an ninh và mạng trung tâm trên AWS cho bạn. Nếu bạn chạy tập lệnh và không tạo được nhóm AWS S3, hãy tạo một nhóm có cùng tên chính xác theo cách thủ công và sau đó chạy lại tập lệnh.

Khi kịch bản kết thúc, bạn sẽ có Kubernetes và chạy và sẵn sàng để sử dụng gần (sản xuất - ish "vì tôi quá mới để Kubernetes biết những gì thực sự cấu thành một cụm sản xuất thực sự). Bạn sẽ cần cài đặt và cấu hình AWS CLI với người dùng có quyền truy cập quản trị viên đầy đủ vào tài khoản AWS của bạn (nó tiếp tục và tạo vai trò IAM, v.v.).

kế hoạch trò chơi của tôi sẽ là:

  1. Nhận thấy thoải mái làm việc với Kubernetes trên AWS
  2. Giữ hounding đội Kubernetes trên Slack để giúp tôi hiểu làm thế nào Kubernetes làm việc dưới mui xe
  3. kỹ sư Xếp các kube-up.sh tập lệnh để tôi có thể nhận Kubernetes chạy trên tiền đề (vCenter)
  4. Blog về quy trình này
  5. Cập nhật câu trả lời này với một liên kết đến blog đã nói.

Hãy cho tôi một chút thời gian và tôi sẽ theo dõi.

Các vấn đề liên quan