插件窝 干货文章 Linux上K8S安装需要哪些准备

Linux上K8S安装需要哪些准备

sudo Docker apt 节点 854    来源:    2025-05-09

在Linux系统上安装Kubernete(K8S)需要以下关键准备工作,分为系统环境软件依赖配置调整三部分:


1. 系统环境要求

  • 操作系统:主流Linux发行版(推荐Ubuntu 20.04+/CentOS 7+/RHEL 8+等)。
  • 硬件资源
    • 至少2核CPU(生产环境建议4核+)。
    • 最小2GB内存(建议4GB+)。
    • 20GB+磁盘空间(建议SSD)。
  • 网络
    • 节点间网络互通(禁用防火墙或放行K8S端口)。
    • 确保主机名解析(/etc/hosts或DNS)。

2. 软件依赖安装

(1)容器运行时(二选一)

  • Docker(旧版K8S常用): bash sudo apt-get install docker.io -y # Ubuntu sudo yum install docker -y # CentOS sudo systemctl enable --now docker
  • containerd(新版K8S默认): bash sudo apt-get install containerd -y # Ubuntu sudo yum install containerd -y # CentOS sudo systemctl enable --now containerd

(2)Kubernetes组件

安装kubeadmkubeletkubectl

# 添加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  # 防止自动升级

3. 系统配置调整

(1)禁用Swap

sudo swapoff -a           # 临时关闭
sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab  # 永久禁用

(2)配置内核参数

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

(3)配置容器运行时

  • Docker:需配置Cgroup驱动为systemdbash sudo mkdir /etc/docker cat <<EOF | sudo tee /etc/docker/daemon.json { "exec-opts": ["native.cgroupdriver=systemd"] } EOF sudo systemctl restart docker

4. 初始化集群(Master节点)

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

5. 安装网络插件(CNI)

kubectl apply -f https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel.yml
# 或Calico、Weave等

6. 加入Worker节点

在Worker节点执行kubeadm join命令(输出在Master初始化时显示):

sudo kubeadm join <Master-IP>:6443 --token <token> --discovery-token-ca-cert-hash <hash>

常见问题排查

  • 端口冲突:确保6443、10250等端口未被占用。
  • 镜像拉取失败:使用kubeadm config images pull预拉镜像。
  • Cgroup驱动不一致:确保容器运行时和K8S均使用systemd

通过以上步骤,即可完成一个基础的K8S集群部署。生产环境还需考虑高可用、存储、安全加固等额外配置。