Hướng dẫn cài đặt Kubernetes (K8s)

Bài viết này cung cấp các bước chi tiết để thiết lập một cụm Kubernetes.

I. Yêu cầu hệ thống

  1. CPU: Tối thiểu 2 nhân.
  2. RAM: Tối thiểu 2GB.
  3. Đảm bảo phiên bản Docker và Kubernetes tương thích.

II. Cấu hình trước khi cài đặt

  1. Thiết lập tên máy chủ (Hostname) Thực hiện lệnh sau trên từng máy chủ:
hostnamectl set-hostname --static master
hostnamectl set-hostname --static worker1
hostnamectl set-hostname --static worker2
  1. Cấu hình tệp hosts Chỉnh sửa tệp /etc/hosts trên mỗi máy chủ:
vim /etc/hosts
# Thêm các dòng sau (thay đổi IP cho phù hợp với mạng của bạn)
192.168.137.20 master
192.168.137.21 worker1
192.168.137.22 worker2
  1. Cấu hình địa chỉ IP tĩnh Truy cập thư mục cấu hình mạng và chỉnh sửa tệp card mạng tương ứng (ví dụ: ifcfg-enp0s3):
cd /etc/sysconfig/network-scripts
vim ifcfg-enp0s3
# Cấu hình IP tĩnh tại đây
  1. Cài đặt các gói phụ thuộc
yum install -y conntrack ntpdate ntp ipvsadm ipset jq iptables curl sysstat libseccomp wget vim net-tools git iproute lrzsz bash-completion tree bridge-utils unzip bind-utils gcc
  1. Vô hiệu hóa Firewall, Swap và SELinux
systemctl stop firewalld
systemctl disable firewalld
swapoff -a
setenforce 0
# Ghi chú dòng swap trong /etc/fstab để vô hiệu hóa khi khởi động lại
sed -i '/swap/s/^\(.*\)$/#\1/g' /etc/fstab
# Đặt SELINUX=disabled trong /etc/selinux/config
sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
# Kiểm tra trạng thái SELinux
getenforce
  1. Điều chỉnh tham số Kernel Tạo tệp cấu hình và áp dụng các tham số cần thiết cho Kubernetes.
cat > kubernetes.conf <<EOF
net.bridge.bridge-nf-call-iptables=1
net.bridge.bridge-nf-call-ip6tables=1
net.ipv4.ip_forward=1
net.ipv4.tcp_tw_recycle=0
vm.swappiness=8
vm.overcommit_memory=1
vm.panic_on_oom=0
fs.inotify.max_user_instances=8192
fs.inotify.max_user_watches=1048576
fs.file-max=52706963
fs.nr_open=52786963
net.ipv6.conf.all.disable_ipv6=1
net.netfilter.nf_conntrack_max=2310728
EOF

cp kubernetes.conf /etc/sysctl.d/kubernetes.conf
sysctl -p /etc/sysctl.d/kubernetes.conf
  1. Tăng giới hạn số lượng file mở Điều chỉnh tệp cấu hình để tăng giới hạn file descriptor.
echo "* soft nofile 65536" >> /etc/security/limits.conf
echo "* hard nofile 65536" >> /etc/security/limits.conf
  1. Kích hoạt điều kiện tiên quyết cho IPVS Tải các module cần thiết cho chế độ IPVS của Kubernetes.
cat > /etc/sysconfig/modules/ipvs.modules <<EOF
#!/bin/bash
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack_ipv4
EOF

chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep -e ip_vs -e nf_conntrack_ipv4
  1. Cấu hình Docker Tạo tệp cấu hình daemon.json cho Docker, bao gồm các mirror và tùy chọn cgroupdriver.
cat > /etc/docker/daemon.json <<EOF
{
    "registry-mirrors": [
        "https://lebkn7ykm.mirror.aliyuncs.com",
        "https://docker.mirrors.ustc.edu.cn",
        "http://f1361db2.m.daocloud.io",
        "https://registry.docker-cn.com"
    ],
    "exec-opts": ["native.cgroupdriver=systemd"],
    "log-driver": "json-file",
    "log-opts": {
        "max-size": "100m"
    },
    "storage-driver": "overlay2"
}
EOF
# Khởi động lại Docker để áp dụng cấu hình
systemctl restart docker

III. Cài đặt các thành phần Kubernetes

  1. Thiết lập kho lưu trữ (Repository) cho K8s Tạo tệp kubernetes.repo để chỉ định nguồn tải gói cài đặt.
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
  1. Cài đặt Kubeadm, Kubelet, Kubectl Cài đặt các công cụ quản lý Kubernetes.
# Thay thế phiên bản 1.20.5 bằng phiên bản bạn muốn cài đặt
yum install -y kubelet-1.20.5 kubeadm-1.20.5 kubectl-1.20.5 --disableexcludes=kubernetes
# Khởi động và kích hoạt dịch vụ Kubelet
systemctl start kubelet
systemctl enable kubelet

IV. Cấu hình Master Node

  1. Tạo tệp cấu hình khởi tạo Kubeadm Tạo tệp kubeadm-init.yaml từ các cài đặt mặc định.
kubeadm config print init-defaults > kubeadm-init.yaml
# Chỉnh sửa kubeadm-init.yaml nếu cần thiết, ví dụ:
# vim kubeadm-init.yaml
  1. Khởi tạo cụm Kubernetes Sử dụng kubeadm init để khởi tạo master node.
kubeadm init --config kubeadm-init.yaml
  1. Cấu hình mạng Pod (Calico) Tải xuống tệp cấu hình Calico và áp dụng nó.
# Thay thế URL nếu cần phiên bản Calico khác
wget https://docs.projectcalico.org/v3.20/manifests/calico.yaml -O calico.yaml
kubectl apply -f calico.yaml

V. Thêm Worker Node vào Cụm Sau khi master node được khởi tạo thành công, bạn sẽ nhận được một lệnh kubeadm join. Thực thi lệnh này trên từng worker node để chúng tham gia vào cụm.

VI. Kiểm tra sau cài đặt Sử dụng kubectl get nodes để xem trạng thái của các node trong cụm.

Thẻ: Kubernetes K8s kubeadm calico docker

Đăng vào ngày 14 tháng 10 lúc 22:05