插件窝 干货文章 如何优化Linux上的K8S安装

如何优化Linux上的K8S安装

sudo containerd 优化 Kubernetes 77    来源:    2025-05-10

Kubernetes (K8S) 在 Linux 上的优化安装指南

1. 准备工作优化

系统要求检查

  • 操作系统:推荐使用 Ubuntu 20.04/22.04 LTS、CentOS 7/8 或 RHEL 8/9
  • 硬件
    • 至少 2GB RAM (生产环境建议 4GB+)
    • 2核CPU (生产环境建议4核+)
    • 20GB 磁盘空间

系统配置优化

# 禁用交换空间 (K8S 1.8+要求)
sudo swapoff -a
sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab

# 调整内核参数
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF
sudo sysctl --system

# 设置正确的时区
sudo timedatectl set-timezone Your_Timezone

2. 容器运行时优化

推荐使用 containerd

# 安装 containerd
sudo apt-get update && sudo apt-get install -y containerd

# 配置 containerd
sudo mkdir -p /etc/containerd
containerd config default | sudo tee /etc/containerd/config.toml

# 修改配置以使用 systemd cgroup 驱动
sudo sed -i 's/SystemdCgroup = false/SystemdCgroup = true/' /etc/containerd/config.toml

# 重启 containerd
sudo systemctl restart containerd
sudo systemctl enable containerd

3. K8S 组件安装优化

使用国内镜像源加速

# 添加阿里云K8S源
curl -s https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add -
echo "deb https://mirrors.aliyun.com/kubernetes/apt/ 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

4. 集群初始化优化

使用优化的初始化命令

sudo kubeadm init \
  --pod-network-cidr=10.244.0.0/16 \
  --apiserver-advertise-address=<your-node-ip> \
  --image-repository registry.aliyuncs.com/google_containers \
  --kubernetes-version v1.28.0 \
  --service-cidr=10.96.0.0/12 \
  --control-plane-endpoint=<load-balancer-ip-or-dns> \
  --upload-certs

网络插件选择

推荐使用 Calico 或 Cilium 以获得更好的性能和网络策略支持:

# 安装 Calico
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml

# 或安装 Cilium
helm repo add cilium https://helm.cilium.io/
helm install cilium cilium/cilium --version 1.14.0 --namespace kube-system

5. 节点优化配置

kubelet 配置优化

# 编辑 /etc/default/kubelet 添加
KUBELET_EXTRA_ARGS="--max-pods=110 --kube-reserved=cpu=500m,memory=500Mi --system-reserved=cpu=500m,memory=500Mi"

日志和存储优化

# 配置日志轮转
sudo cat <<EOF | sudo tee /etc/logrotate.d/kubernetes
/var/log/kubelet.log
/var/log/kube-proxy.log {
    rotate 7
    daily
    compress
    missingok
    notifempty
    copytruncate
}
EOF

6. 后续优化建议

  1. 启用 metrics-server 用于资源监控

    kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
    
  2. 配置集群自动扩展 (CA) 用于生产环境

  3. 设置资源配额和限制 防止资源耗尽

  4. 定期备份 etcd 数据

  5. 启用 RBAC 进行细粒度访问控制

7. 验证安装

kubectl get nodes -o wide
kubectl get pods --all-namespaces
kubectl cluster-info

通过以上优化步骤,您将获得一个性能更好、更稳定的 Kubernetes 集群。根据您的具体环境和需求,可能还需要进行额外的调优。