4.1.3 Cài đặt môi trường sản phẩm
4.1.3.1 Cài đặt nền tảng điều phối container
Một kubernetes cluster cần có ít nhất các thành phần sau:
• Một master node: chứa các thành phần api-server (giúp kiểm tra và cấu hình dữ liệu cho các đối tượng api như service, pod; cung cấp các REST api cho các thành phần khác để truy cập tới các dữ liệu trạng thái của cluster), controller-
manager (một daemon luôn chạy, lắng nghe trạng thái của cluster để đưa ra
các các thay đổi cần thiết giúp cluster đạt được trạng thái yêu cầu; một số
controller được đóng gói sẵn như replication controller, namespace controller), bộ lập lịch và thành phần setup (giúp phân bố các Cluster IP cho
Kubernetes). Tất các các thành phần này đều được cài đặt bằng ảnh Docker
hypercube được cung cấp bởi Google, nhưng với mỗi chức năng thì các tham
số được sử dụng trong ảnh là khác nhau (hybercube image URL:
gcr.io/google_containers/hyperkube-amd64)
• Các worker node: chứa ít nhất 2 thành phần kubelet, kube-proxy. Các thành phần này cũng được cài đặt bằng ảnh hypercube với các tham số phù hợp.
• Etcd: cung cấp chức năng lưu trữ phân tán các giá trị dạng key-value. Kubernetes được cấu hình để kết nối và lưu trữ các dữ liệu trạng thái trong etcd cluster. Etcd trong bài được cài đặt như các dịch vụ hệ thống dạng systemd.
• Cách thức kết nối mạng multihost: luận văn sử dụng dịch vụ flannel để đảm
bảo kết nối mạng multihost cho các máy khác nhau. Các agent flanneld sẽ
được cài đặt trên tất cả các worker node, chịu trách nhiệm phân bố các dải
subnet con (10.254.0.0/24) lên tất cả các node dựa trên dải subnet cha (10.254.0.0/16) được cung cấp. Các thông tin ánh xạ giữa các IP ảo được cấp
thường tất các các docker container có liên kết với thiết bị mạng bridge mặc
định docker0 sẽ được cấp phát IP nằm trong cùng dải với docker0. Do vậy, để đảm bảo container trong mỗi worker node nhận được các IP nằm trong dải
quản lý của flanneld, docker0 sẽ được tùy biến với bridge IP chính là dải IP
của flanneld. Kết nối mạng chi tiết được thể hiện trong Hình 4.11.