在Debian上安装Kubernetes(K8s)集群时,遵循最佳实践是非常重要的,以确保系统的稳定性、安全性和可维护性。以下是一些关键步骤和最佳实践:
1. 硬件和系统要求
- 硬件条件:至少2GB RAM(推荐4GB或更多),2核以上CPU,20GB硬盘空间。
- 系统版本:建议使用Debian 12(Bookworm)。
2. 基础配置
-
设置主机名及更新hosts文件:
- 登录每个节点,使用
hostnamectl
命令设置主机名。 - 在所有节点的
/etc/hosts
文件中添加节点IP和主机名的映射。
- 登录每个节点,使用
-
关闭swap分区:
- 禁用swap分区以确保kubelet顺利运行。
- 运行
sudo swapoff -a
并注释掉/etc/fstab
中的swap条目。
-
配置网络:
- 启用IP转发:
echo "net.ipv4.ip_forward=1" | sudo tee /etc/sysctl.conf sudo sysctl -p
- 配置Calico网络插件(或其他网络插件):
kubectl apply -f https://docs.projectcalico.org/manifests/tigera-operator.yaml kubectl apply -f https://docs.projectcalico.org/manifests/custom-resources.yaml
- 启用IP转发:
3. 安装必要的软件包
-
安装Docker:
- 添加Docker官方GPG密钥:
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
- 设置稳定版Docker仓库:
echo "deb [archamd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list
- 安装Docker Engine和CLI:
sudo apt update sudo apt install docker-ce docker-ce-cli containerd.io
- 启动并开启Docker服务:
sudo systemctl start docker sudo systemctl enable docker
- 添加Docker官方GPG密钥:
-
安装containerd:
- 安装containerd依赖:
sudo apt install -y apt-transport-https ca-certificates curl
- 添加containerd的GPG密钥:
curl -s https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add -
- 设置containerd仓库:
echo "deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
- 安装containerd:
sudo apt update sudo apt install -y containerd
- 配置containerd:
sudo mkdir -p /etc/containerd sudo containerd config default | sudo tee /etc/containerd/config.toml
- 启用并启动containerd:
sudo systemctl restart containerd sudo systemctl enable containerd
- 安装containerd依赖:
4. 初始化Kubernetes集群
- 初始化Master节点:
sudo kubeadm init --pod-network-cidr=192.168.0.0/16 --service-cidr=10.96.0.0/12
- 配置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. 验证安装
- 检查集群状态:
kubectl cluster-info kubectl get nodes
6. 安全加固
- 关闭不必要的服务:
- 禁用swap、关闭不必要的网络接口等。
- 配置防火墙:
- 允许必要的端口,如Kubernetes API服务器(6443)、etcd(2379/tcp、2380/tcp)等。
- 使用网络策略:
- 限制Pod之间的通信,确保只有必要的流量可以通过。
7. 升级和维护
- 定期更新:
- 定期检查并应用Kubernetes的最新安全补丁和功能更新。
- 监控和日志:
- 使用工具如Prometheus和Grafana监控集群状态,定期检查日志以发现潜在问题。
通过遵循这些最佳实践,您可以在Debian上成功安装和配置一个稳定、安全的Kubernetes集群。