温馨提示×

Linux下Kubernetes安装要注意啥

小樊
57
2025-11-08 19:23:36
栏目: 智能运维

一、前期准备:系统环境配置

  • 硬件要求:确保Linux节点满足最低资源需求(通常建议2核CPU、4GB以上内存、30GB以上存储),且使用SSD提升IO性能,避免因资源不足导致集群运行不稳定。
  • 操作系统兼容性:选择Kubernetes官方支持的Linux发行版(如Ubuntu 18.04+、CentOS 7.x+、RHEL 7.x+),并确认系统内核版本≥3.10(可通过uname -r验证),避免因版本不兼容引发安装错误。
  • 网络与时间同步:所有节点需处于同一局域网且能访问外网(用于下载镜像和组件);配置稳定的DNS解析(如8.8.8.8),确保节点间通过主机名通信;安装NTP服务(如chronyntpd)并启用时间同步,时间偏差超过1分钟可能导致集群组件异常。
  • 关键服务调整:临时关闭Swap分区(swapoff -a),并永久注释/etc/fstab中的Swap条目(Kubernetes 1.8+版本要求);根据需求调整SELinux(建议测试环境临时设为permissive模式,生产环境配置正确策略)、防火墙规则(开放kube-apiserver的6443端口、kubelet的10250/10255端口等,允许节点间通信)。

二、安装过程:关键步骤注意事项

  • 选择合适工具:推荐使用kubeadm(官方标准化工具,适合大多数场景)进行安装;若需快速搭建单节点测试集群,可选择Minikube;大规模集群建议使用Kubespray(基于Ansible,支持自动化部署)。
  • 初始化Master节点:执行kubeadm init命令时,需指定关键参数(如--apiserver-advertise-address设置为Master节点IP、--pod-network-cidr预留Pod网络地址段,如10.244.0.0/16),避免后续网络配置冲突;初始化完成后,务必保存输出的kubeadm join命令(包含Token和CA证书哈希),用于Worker节点加入集群。
  • 部署网络插件:Kubernetes需要网络插件实现Pod间通信,推荐选择成熟方案(如Calico、Flannel);部署前需确认插件与Kubernetes版本的兼容性(如Calico v3.24+支持Kubernetes 1.25+),避免因版本不匹配导致网络异常;执行kubectl apply -f <plugin-yaml>部署插件后,需等待所有Pod处于Running状态(通过kubectl get pods -n kube-system验证)。
  • 配置kubectl客户端:初始化Master节点后,将集群配置文件复制到当前用户的.kube目录(mkdir -p $HOME/.kube; sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config; sudo chown $(id -u):$(id -g) $HOME/.kube/config),确保当前用户有权限访问集群;可通过kubectl get nodes验证配置是否正确。

三、安全与后续维护:保障集群稳定

  • 安全加固:避免使用默认配置(如修改默认Service CIDR10.96.0.0/12、Pod CIDR10.244.0.0/16,防止IP冲突);启用RBAC(基于角色的访问控制),限制用户/服务账户的权限(如通过kubectl create role创建角色并绑定);配置TLS证书(kubeadm会自动生成集群证书,建议定期轮换,如每年一次);定期更新Kubernetes及相关组件(如Docker、kubelet),修复已知安全漏洞(可通过apt-mark unhold kubelet kubeadm kubectl取消锁定,然后执行apt upgrade升级)。
  • 备份与恢复:定期备份etcd数据库(集群核心数据存储,如etcdctl snapshot save /opt/etcd-backup.db),建议每日增量备份、每周全量备份;测试备份恢复流程(如停止etcd服务,恢复快照后重启),确保数据可恢复。
  • 监控与日志:部署监控系统(如Prometheus+Granfana),收集集群节点、Pod、组件的性能指标(如CPU、内存、网络流量),及时发现资源瓶颈;配置日志收集(如EFK Stack:Elasticsearch+Fluentd+Kibana),集中存储和分析Pod日志,便于故障排查。

0