Môi trường máy của tôi:
- 10.2.22.103: k8s-master
- 10.2.22.104: k8s-node1
- 10.2.22.105: k8s-node2
Cấu hình mỗi máy Ubuntu: 2 CPU, 8GB RAM
Phiên bản hệ điều hành: 20.04
Điều kiện tiên quyết: Tắt swap
sed -ri 's/.*swap.*/#&/' /etc/fstab
Cấu hình nguồn mirror Alibaba:
sudo apt-get update
sudo apt-get install -y curl gnupg2 software-properties-common apt-transport-https ca-certificates
Thêm khóa GPG và repository Docker từ mirror Alibaba:
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
Thêm repository Kubernetes từ mirror Alibaba:
echo "deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add -
Cập nhật danh sách gói và cài đặt Docker, kubelet, kubeadm, và kubectl:
sudo apt-get update
sudo apt-get install -y docker-ce=5:19.03.15~3-0~ubuntu-focal kubelet=1.22.1-00 kubeadm=1.22.1-00 kubectl=1.22.1-00
Khóa các phiên bản hiện tại để ngăn cập nhật tự động:
sudo apt-mark hold docker-ce kubelet kubeadm kubectl
Thay đổi cgroup driver cho Docker:
Tạo hoặc chỉnh sửa file /etc/docker/daemon.json và thêm nội dung sau:
{
"exec-opts": ["native.cgroupdriver=systemd"]
}
Khởi động lại dịch vụ Docker và kubelet:
sudo systemctl daemon-reload
sudo systemctl restart docker
sudo systemctl restart kubelet
Trên máy chủ master (10.2.22.103), khởi tạo cụm Kubernetes:
sudo kubeadm init --pod-network-cidr=10.2.22.0/24 --apiserver-advertise-address=10.2.22.103 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version=v1.22.17
Sao chép cấu hình Kubernetes đến thư mục người dùng hiện tại và thiết lập quyền:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
Triển khai plugin mạng Flannel:
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
Nếu không tải được, hãy thử thay đổi tên miền thành địa chỉ IP hoặc tải tệp cấu hình lên máy chủ và áp dụng:
kubectl apply -f kube-flannel.yaml
Thêm node vào cụm trên máy 10.2.22.104 và 10.2.22.105:
kubeadm join 10.2.22.103:6443 --token mghrpj.dyh0ssr1f7uusk --discovery-token-ca-cert-hash sha256:d29ec34194da72fa95ab49964606e8e23e43fa09dc44f5c0f04652a0437f
Kiểm tra trạng thái cụm:
kubectl get nodes