欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 家装 > Kubernetes 集群部署

Kubernetes 集群部署

2025/2/24 10:39:28 来源:https://blog.csdn.net/qq_33807380/article/details/145812159  浏览:    关键词:Kubernetes 集群部署

一、准备环境

  1. 硬件要求:至少 2 台机器(1 主节点,1 工作节点),建议最小硬件配置:2核CPU、2G内存、20G硬盘。
  2. 操作系统:CentOS 7/8,确保所有节点的操作系统版本一致。
  3. 网络配置:确保节点间网络互通,关闭防火墙或开放必要端口。

二、初始化配置

2.1 设置主机名和 hosts 文件
  • 为每个节点设置唯一的主机名:

    sudo hostnamectl set-hostname <主机名>  # 例如 master-node 或 worker-node
    
  • 编辑 /etc/hosts 文件,添加所有节点的 IP 和主机名映射:

    <主节点IP> master-node
    <工作节点IP> worker-node
    
2.2 关闭防火墙

关闭防火墙可以避免阻碍节点之间的网络通信,确保集群的正常运行。

# 关闭防火墙
systemctl stop firewalld# 禁止防火墙开机自启
systemctl disable firewalld
2.3 关闭 SELinux

关闭 SELinux 可以简化 Kubernetes 集群的配置和维护,避免潜在的权限问题。

# 临时关闭 SELinux
setenforce 0# 永久关闭 SELinux
sed -i 's/enforcing/disabled/' /etc/selinux/config# 重启系统使更改生效
reboot
2.4 禁用交换分区(swap)

Kubernetes 官方建议在所有集群节点上禁用 swap 分区,以确保容器可以充分利用主机的物理内存,并避免因为交换空间导致的性能问题。

# 临时关闭 Swap
swapoff -a# 永久关闭 Swap
sed -ri 's/.*swap.*/#&/' /etc/fstab# 验证 Swap 是否已关闭
free -h

三、安装依赖工具

在所有节点上安装以下工具:

3.1 安装 Docker(容器运行时)
# 更新包索引
sudo apt-get update# 安装 Docker
sudo apt-get install -y docker.io# 启动并启用 Docker
sudo systemctl enable docker
sudo systemctl start docker# 验证 Docker 是否安装成功
docker --version
3.2 安装 kubeadm、kubelet 和 kubectl
# 添加 Kubernetes 源
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl
curl -fsSL https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-archive-keyring.gpg
echo "deb [signed-by=/etc/apt/keyrings/kubernetes-archive-keyring.gpg] 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  # 防止自动更新# 验证安装
kubeadm version
kubectl version --client

四、初始化Master节点

在主节点上执行以下命令初始化集群:

sudo kubeadm init --pod-network-cidr=10.244.0.0/16
  • –pod-network-cidr:指定 Pod 网络的 CIDR,Flannel 插件需要此参数。
  • 初始化完成后,会输出 kubeadm join 命令,我们需要保存好这个命令,用于后续将工作节点加入集群。
4.1 配置 kubectl

在主节点上配置 kubectl:

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
4.2 检查主节点状态
kubectl get nodes
  • 此时主节点状态应为 NotReady,因为尚未安装网络插件。
4.3 部署网络插件

选择并安装网络插件(如 Flannel):

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

等待几分钟后,检查主节点状态:

kubectl get nodes
  • 此时主节点状态应变为 Ready

五、加入工作节点

在每个工作节点上运行初始化时输出的 kubeadm join 命令:

sudo kubeadm join <主节点IP>:6443 --token <token> --discovery-token-ca-cert-hash sha256:<hash>
  • <主节点IP>:主节点的 IP 地址。
  • 和 :初始化主节点时输出的值。
5.1 检查节点状态

在主节点上运行以下命令,查看节点是否成功加入:

kubectl get nodes
  • 所有节点状态应为 Ready。

六、验证集群

6.1 部署测试应用
kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --port=80 --type=NodePort
6.2 查看服务信息
kubectl get svc nginx

输出示例:

NAME    TYPE       CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE
nginx   NodePort   10.96.123.123   <none>        80:30001/TCP   10s
6.3 访问应用

通过工作节点的 IP 和 NodePort 访问应用:

http://<工作节点IP>:30001

七、管理和维护

7.1 升级集群
# 升级 kubeadm
sudo apt-get update
sudo apt-get install -y kubeadm# 升级主节点
sudo kubeadm upgrade apply v1.28.0  # 替换为目标版本# 升级 kubelet 和 kubectl
sudo apt-get install -y kubelet kubectl
sudo systemctl restart kubelet
7.2 备份和恢复
  • 备份 etcd 数据:

    kubectl exec -n kube-system etcd-master-node -- etcdctl snapshot save /tmp/etcd-backup.db
    
  • 恢复 etcd 数据:

    kubectl exec -n kube-system etcd-master-node -- etcdctl snapshot restore /tmp/etcd-backup.db
    
7.3 监控和日志
  • 使用 Prometheus 和 Grafana 监控集群。
  • 使用 kubectl logs 查看 Pod 日志。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词