0
0
Lập trình
Thaycacac
Thaycacac thaycacac

Hướng Dẫn Cài Đặt Cluster Kubernetes Bằng Kubeadm: Từng Bước Chi Tiết

Đăng vào 1 tháng trước

• 2 phút đọc

Chủ đề:

KubernetesDevOps

Giới Thiệu

Trong bài viết này, chúng ta sẽ cùng nhau khám phá cách cài đặt một cluster Kubernetes sử dụng Kubeadm. Với những bước hướng dẫn chi tiết và dễ hiểu, bài viết này sẽ giúp bạn thiết lập một môi trường Kubernetes dzễ dàng.

Chuẩn Bị

Trước khi bắt đầu, bạn cần chuẩn bị:

  • Một số máy ảo hoặc server với cấu hình tối thiểu:
    • Woker Node: 2 vCPUs, 2GB RAM
    • Master Node: 2 vCPUs, 4GB RAM
  • Tất cả các máy ảo hoặc server phải có thể kết nối mạng với nhau.

I. Cài Đặt Container Runtime

1. Cài Đặt Containerd trên các Node Master và Woker

Bước 1: Cài Đặt Containerd

Cập nhật hệ thống và cài đặt containerd:

bash Copy
sudo apt update
sudo apt install containerd -y

Bước 2: Tạo File Cấu Hình Mặc Định

bash Copy
sudo mkdir -p /etc/containerd
containerd config default | sudo tee /etc/containerd/config.toml

Bước 3: Chỉnh Sửa File Cấu Hình

bash Copy
sudo nano /etc/containerd/config.toml

Tìm và sửa đổi các dòng sau trong file:

toml Copy
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc]
  ...
  [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
    SystemdCgroup = true

Bước 4: Khởi Động Lại Dịch Vụ

bash Copy
sudo systemctl restart containerd

Bước 5: Kiểm Tra Trạng Thái Containerd

bash Copy
sudo systemctl status containerd

Khi trạng thái hiển thị là active (running), bạn đã cài đặt và khởi động thành công containerd.

II. Cài Đặt Kubeadm và Kubelet

Trước khi bắt đầu cài đặt kubeadm và kubelet, bạn cần tắt firewall và swapping:

bash Copy
ufw disable
swapoff -a

1. Cài Đặt Kubeadm và Kubelet trên các Node

Bước 1: Cài Đặt Package apt-transport-https

bash Copy
apt-get update && apt-get install -y apt-transport-https

Bước 2: Tải Public Key

bash Copy
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.28/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg

Bước 3: Bổ Sung Kubernetes Repo

bash Copy
echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.28/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list

Bước 4: Cài Đặt Kubeadm, Kubelet và Kubectl

bash Copy
apt-get update && apt-get install -y kubelet kubeadm kubectl
apt-mark hold kubelet kubeadm kubectl

2. Khởi Tạo Cluster Ở Node Master

Bước 1: Khởi Tạo Cluster

bash Copy
kubeadm init --pod-network-cidr=192.168.0.0/16 --control-plane-endpoint=192.168.1.129 --cri-socket=unix:///run/containerd/containerd.sock

Giải Thích Tham Số:

  • --pod-network-cidr=192.168.0.0/16: Dải IP cho mạng pod.
  • --control-plane-endpoint=192.168.1.129: Địa chỉ IP của node master.
  • --cri-socket=unix:///run/containerd/containerd.sock: Đường dẫn socket của containerd.

Xử Lý Lỗi Thường Gặp

Nếu có lỗi xảy ra trong quá trình khởi tạo cluster, hãy làm theo các bước sau để khắc phục:

  1. Để khắc phục lỗi /proc/sys/net/bridge/bridge-nf-call-iptables does not exist:
bash Copy
sudo modprobe br_netfilter
sudo sysctl net.bridge.bridge-nf-call-iptables=1
  1. Để khắc phục lỗi /proc/sys/net/ipv4/ip_forward contents are not set to 1:
bash Copy
sudo sysctl net.ipv4.ip_forward=1
echo "net.bridge.bridge-nf-call-iptables=1" | sudo tee -a /etc/sysctl.conf
echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

Sau khi khắc phục, chạy lại lệnh khởi tạo cluster trên.

Kết Quả Để Kiểm Tra

bash Copy
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
kubectl get po -A

Thiết Lập Pod Networking

Để cài đặt pod networking, bạn có thể sử dụng Calico:

bash Copy
curl https://raw.githubusercontent.com/projectcalico/calico/v3.26.4/manifests/calico.yaml -O

Mở file calico.yaml và tìm kiếm CALICO_IPV4POOL_CIDR, sau đó uncomment dòng sau:

yaml Copy
# - name: CALICO_IPV4POOL_CIDR
#   value: "192.168.0.0/16"

Chạy lệnh sau để áp dụng cài đặt:

bash Copy
kubectl apply -f calico.yaml

3. Thêm Worker Node vào Cluster

Để thêm worker node vào cluster, chạy lệnh sau trên các node worker:

bash Copy
kubeadm join 192.168.1.129:6443 --token n25frf.tpys1y9a1hpsdrzy --discovery-token-ca-cert-hash sha256:39381c9cb504145058657e81dca874f2d0e378b97bda335ca31a489ffce81a10 --cri-socket=unix:///run/containerd/containerd.sock

Kiểm Tra Kết Quả

Sau vài phút, quay lại node master và kiểm tra các node:

bash Copy
kubectl get nodes

Tài Liệu Tham Khảo

source: viblo

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào