- Cài đặt Kubernetes Cluster trên Ubuntu
- Lab 1: Pod
- Lab 2: Replicate
- Lab 3: Deployment
- Lab 4: Service – NodePort
- Lab 5: Project WordPress và Mysql
1. Chuẩn bị
Máy chủ | IP | Công việc cần thực hiện |
Master-node-0 | 10.10.10.211 | – Cấu hình IPv4 Forwarding – Disable swap – Cài đặt container runtime (containerd) – Cấu hình container runtime sử dụng system Cgroups – Cài đặt kubeadm, kubelet, kubectl – Khởi tạo Control Plan – Tạo cluster – Cài đặt Pod Network Add-on |
Worker-1 | 10.10.10.212 | – Cấu hình IPv4 Forwarding – Disable swap – Cài đặt container runtime (containerd) – Cấu hình container runtime sử dụng system Cgroups – Cài đặt kubeadm, kubelet, kubectl – Join vào cluster đã cài đặt trên |
Worker-2 | 10.10.10.213 | – Cấu hình IPv4 Forwarding – Disable swap – Cài đặt container runtime (containerd) – Cấu hình container runtime sử dụng system Cgroups – Cài đặt kubeadm, kubelet, kubectl – Join vào cluster đã cài đặt trên |
2. Kubeadm
Kubeadm là một công cụ để tạo Kubernetes clusters.
Bạn cần truy cập vào link hướng dẫn sau đây để có rõ thông tin: https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/
3. Cài đặt cho máy Master-node-0
3.1. Cấu hình Swap
Cơ chế mặc định của kubelet thì sẽ cần tắt cấu hình swap trên các máy chủ. Vì vậy cần cấu hình tắt swap

B1: sudo swapoff -a

B2: Chỉnh sửa file /etc/fstab thêm # trước dòng swap

B3: Để đảm bảo bạn có thể reboot lại.
3.2. Cài đặt Container runtimes
Để chạy containers trong pods, thì Kubernetes sử dụng container runtime. Mặc định Kubernetes sẽ sử dụng Container Runtime Interface (CRI) để giao tiếp với container. Có một số container runtimes phổ biến, nhưng trong bài viết này mình sẽ sử dụng conternerd

Xem thêm tài liệu hướng dẫn tại link:
- https://kubernetes.io/docs/setup/production-environment/container-runtimes/
- https://kubernetes.io/docs/setup/production-environment/container-runtimes/#containerd
3.2.1. Cấu hình IPv4 Packet forwarding
B1: Cấu hình IPv4 packet forwarding bằng cách copy và paste câu lệnh trong hướng dẫn link trên



3.2.2. Cài đặt containerd
Tham khảo link này để cài đặt containerd: https://docs.docker.com/engine/install/ubuntu/ (mình sẽ sử dụng apt repository để cài đặt)
B1: Copy các lệnh sau vào để chạy


B2: Cài đặt containerd

3.2.3. Cấu hình cgroup drivers
Trong bài viết này mình sử dụng ubuntu làm máy chủ, vì ubuntu sử dụng systemd để khởi tạo hệ thống nên mình cần cấu hình cgroup sử dụng systemd.
B1: Reset lại cấu hình container bằng câu lệnh sau đây


B2: Cần thay đổi nội dung file config.toml với nội dung tương ứng sau


B3: restart lại dịch vụ containerd

3.3. Cài đặt kubeadm, kubelet và kubeclt
Trong bài viết từ link trên mô tả rất chi tiết việc cài đặt các công cụ này, mình chỉ cần copy và paste là sẽ thực hiện xong

3.4. Tạo cluster với kubeadm
B1: Sử dụng câu lệnh sau để để khởi cluster với kubeadm

Với thông tin các tham số như sau:
- –apiserver-advertise-address: địa chỉ IP của master-node0
- –pod-network-cidr: thông tin network sử dụng trong các pods, các container. Phần này thì phần sau mình sẽ cài đặt network add-on sau
- –cri-socket: option này do mình đang sử dụng container runtime là containerd

B2: Sử dụng các câu lệnh trên từ user thông thường để start cluster

B3: Kiểm tra master-node đã cài đặt thành công và đóng vai trò là control-plan

B4: Kiểm tra các Pods trong cluster hiện tại

3.5. Cài đặt Pod Network add-on
Bạn cần phải triển khai Container Network Interface (CNI) dựa trên Pod Network add-on, việc này giúp cho các Pods trong cluster có thể gia tiếp được lẫn nhau. Cluster DNS (CoreDNS) sẽ không được start nếu không cài đặt thành phần Network này.
Truy cập vào link này để rõ thêm thông tin về Network Add-on:
- https://kubernetes.io/docs/concepts/extend-kubernetes/compute-storage-net/network-plugins/
- https://kubernetes.io/docs/concepts/cluster-administration/addons/#networking-and-network-policy
Trong bài viết này mình sẽ sử dụng Flannel

B1: Sử dụng câu lệnh theo hướng dẫn trong link để cài đặt

B2: Kiểm tra Pod cho phần CoreDNS đã READY chưa

4. Cài đặt cho Worker-1 và Worker-2
Tương tự như hướng dẫn cài đặt của Master-node sẽ cài đặt cho phần Worker, chỉ có 3 công việc sau đây sẽ không thực hiện trên Worker:
- Khởi tạo Control Plan
- Tạo Cluster
- Cài đặt Pod Network Add-on
Sau khi thực hiện các bước cài đặt trên mình sẽ làm bước tiếp theo để join vào cluster
B1: Thực hiện lệnh sau trên Master-node để biết được thông tin từ các máy Worker có thể join vào cluster

B2: Thực hiện lệnh trên 2 máy Worker để join


B3: Kiểm tra các node trên cluster
