Linux环境下Kubernetes集群配置完全指南
随着云原生技术的快速发展,Kubernetes已成为容器编排领域的事实标准。本文将详细介绍在Linux系统上从零开始搭建Kubernetes集群的全过程,包含常见问题解决方案和性能优化建议。
一、准备工作
1.1 系统要求
- 操作系统:Ubuntu 18.04+/CentOS 7+
- 内存:每节点至少2GB
- CPU:双核以上
- 网络:节点间互通
1.2 环境配置
# 关闭swap
sudo swapoff -a
sudo sed -i '/ swap / s/^/#/' /etc/fstab
# 设置主机名
sudo hostnamectl set-hostname k8s-master
二、安装Docker容器运行时
Kubernetes 1.24+版本建议使用containerd,以下是安装步骤:
# Ubuntu系统
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
注意:确保修改配置文件中的SystemdCgroup = true以支持systemd
三、安装Kubernetes组件
3.1 添加Kubernetes仓库
sudo apt-get update && sudo apt-get install -y apt-transport-https ca-certificates 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
3.2 安装kubeadm、kubelet和kubectl
sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl
四、初始化Kubernetes集群
sudo kubeadm init --pod-network-cidr=10.244.0.0/16
成功后会显示加入集群的命令,类似:
kubeadm join 192.168.1.100:6443 --token abcdef.0123456789abcdef \
--discovery-token-ca-cert-hash sha256:12345...
4.1 配置kubectl
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
五、安装网络插件
推荐使用Flannel网络插件:
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
六、常见问题解决
6.1 cgroup驱动不一致
编辑/etc/docker/daemon.json添加:
{
"exec-opts": ["native.cgroupdriver=systemd"]
}
6.2 镜像拉取失败
可以设置国内镜像源:
sudo kubeadm config images pull --image-repository=registry.aliyuncs.com/google_containers
七、集群验证
kubectl get nodes
kubectl get pods --all-namespaces
所有节点显示Ready状态,核心组件Pod运行正常即表示安装成功。
通过本文的详细步骤,您已经成功在Linux系统上搭建了Kubernetes集群。后续可以继续探索:
- 使用Helm管理应用部署
- 配置持久化存储
- 设置监控告警系统
