在Linux系统上安装Kubernete(K8S)需要以下关键准备工作,分为系统环境、软件依赖和配置调整三部分:
/etc/hosts
或DNS)。bash
sudo apt-get install docker.io -y # Ubuntu
sudo yum install docker -y # CentOS
sudo systemctl enable --now docker
bash
sudo apt-get install containerd -y # Ubuntu
sudo yum install containerd -y # CentOS
sudo systemctl enable --now containerd
安装kubeadm
、kubelet
、kubectl
:
# 添加K8S仓库(以Ubuntu为例)
sudo apt-get update && sudo apt-get install -y apt-transport-https curl
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-get update
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl # 防止自动升级
sudo swapoff -a # 临时关闭
sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab # 永久禁用
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
overlay
br_netfilter
EOF
# 加载模块
sudo modprobe overlay
sudo modprobe br_netfilter
# 设置网络参数
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward = 1
EOF
sudo sysctl --system
systemd
:
bash
sudo mkdir /etc/docker
cat <<EOF | sudo tee /etc/docker/daemon.json
{
"exec-opts": ["native.cgroupdriver=systemd"]
}
EOF
sudo systemctl restart docker
sudo kubeadm init \
--pod-network-cidr=10.244.0.0/16 \ # 按需修改CNI网段
--apiserver-advertise-address=<Master节点IP>
# 配置kubectl
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
kubectl apply -f https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel.yml
# 或Calico、Weave等
在Worker节点执行kubeadm join
命令(输出在Master初始化时显示):
sudo kubeadm join <Master-IP>:6443 --token <token> --discovery-token-ca-cert-hash <hash>
kubeadm config images pull
预拉镜像。systemd
。通过以上步骤,即可完成一个基础的K8S集群部署。生产环境还需考虑高可用、存储、安全加固等额外配置。