Kubernetes (K8s) là một nền tảng mạnh mẽ để quản lý container, giúp tự động hoá việc triển khai, mở rộng và vận hành ứng dụng. Bài viết này sẽ hướng dẫn bạn cài đặt Kubernetes trên Ubuntu 20.04 bằng kubeadm
.
Yêu Cầu Hệ Thống
- 2 hoặc nhiều máy chủ chạy Ubuntu 20.04
- Ít nhất 2 CPU, 2GB RAM mỗi node
- Quyền truy cập
sudo
- Kết nối Internet ổn định
1. Cập Nhật Hệ Thống Và Tắt Swap
Trước tiên, hãy cập nhật hệ thống và tắt swap (Kubernetes yêu cầu tắt swap để hoạt động ổn định).
sudo apt update && sudo apt upgrade -y
sudo swapoff -a
sudo sed -i '/ swap / s/^/#/' /etc/fstab
2. Cài Đặt Docker
Kubernetes sử dụng Docker làm runtime container. Cài đặt Docker bằng lệnh:
sudo apt install -y docker.io
sudo systemctl enable --now docker
3. Cài Đặt kubeadm, kubelet Và kubectl
Thêm kho lưu trữ Kubernetes và cài đặt các thành phần chính:
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
sudo apt update
sudo apt install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl
4. Khởi Tạo Cluster Kubernetes
Chỉ thực hiện bước này trên Master Node:
sudo kubeadm init --pod-network-cidr=10.244.0.0/16
Sau khi hoàn tất, chạy các lệnh sau để cấu hình kubectl
:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
5. Triển Khai Mạng Cho Pod
Kubernetes yêu cầu một CNI (Container Network Interface) để quản lý mạng giữa các pod. Dùng Flannel:
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
6. Thêm Worker Node Vào Cluster
Trên Worker Node, chạy lệnh được cung cấp sau khi kubeadm init
, có dạng:
sudo kubeadm join <master-ip>:6443 --token <token> --discovery-token-ca-cert-hash sha256:<hash>
Kiểm tra các node trong cluster:
kubectl get nodes
Kết Luận
Bạn đã hoàn tất cài đặt Kubernetes trên Ubuntu 20.04. Bây giờ bạn có thể triển khai ứng dụng container một cách linh hoạt và hiệu quả với Kubernetes.