原力注入

当我们谈论 Linux 主机/集群管理时,我们需要关注哪些工作呢?

集群管理功能表 v0.2

在运行 Kubernetes 集群时,我们实际上依赖于底层的主机集群。本文讨论的集群特指主机集群,即从操作系统(OS)的视角来管理的资源集合。本文仅涵盖与 Linux 操作系统相关的操作。

对于技术,我们应始终保持敬畏之心,深入理解集群管理的各个方面,构建完整的知识体系。只有这样,才能在集群管理中游刃有余,从容应对各种挑战。

Image

以下表格是一个大纲,内容会逐步优化:

一级功能二级功能三级功能功能说明参考命令
主机管理模块硬件信息查看CPU 信息查看查看节点的 CPU 型号、核心数、频率等信息。lscpu, cat /proc/cpuinfo


内存信息查看查看节点的内存总量、使用情况等信息。free -h, cat /proc/meminfo


磁盘信息查看查看节点的磁盘容量、使用情况、分区信息等。df -h, lsblk, fdisk -l


网络信息查看查看节点的网络接口、IP 地址、带宽等信息。ifconfig, ip addr, ethtool

软件配置管理时间同步服务配置和管理时间同步服务(如 chronyd、systemd-timesyncd)。chronyc tracking, timedatectl


时区配置配置和管理系统的时区设置。timedatectl set-timezone, date


网络配置配置和管理网络接口、IP 地址、DNS、路由等。nmcli, nmtui, ip route


日志配置配置系统日志的收集和存储策略(如 rsyslog、journald)。journalctl, rsyslogd, logrotate

软件包管理软件仓库管理根据不同类型操作系统准备对应的软件包。yumdownloader


软件包安装安装操作系统上的软件包(如 yum/dnf、apt)。yum install, apt install


软件包更新更新操作系统上的软件包。yum update, apt update


软件包删除删除操作系统上的软件包。yum remove, apt remove

基础服务管理SSH 服务管理配置和管理 SSH 服务(如 sshd)。systemctl restart sshd, ssh-keygen


防火墙管理配置和管理防火墙规则(如 firewalld、ufw)。firewall-cmd, ufw enable


定时任务管理配置和管理定时任务(如 cron)。crontab -e, systemctl restart cron

进程管理进程查看查看系统中运行的进程及其资源占用情况。ps aux, top, htop


进程启停启动、停止或重启指定进程。systemctl start, systemctl stop, kill


进程优先级调整调整进程的优先级(如使用 nice 或 renice)。nice, renice

内核参数管理内核参数查看查看当前内核参数的配置。sysctl -a, cat /etc/sysctl.conf


内核参数修改修改内核参数(如通过 sysctl 或 /etc/sysctl.conf)。sysctl -w, echo "value" > /proc/sys/...


内核参数优化根据系统负载和需求优化内核参数。sysctl -p, tuned-adm
监控与告警模块硬件监控CPU 监控监控 CPU 使用率、负载等信息。mpstat, sar, top


内存监控监控内存使用率、交换分区等信息。free -h, vmstat, sar -r


磁盘监控监控磁盘使用率、IO 性能等信息。iostat, iotop, df -h


网络监控监控网络带宽、连接数等信息。iftop, nload, netstat

服务监控Docker 服务监控监控 Docker 服务的运行状态。docker ps, docker stats


Kubelet 服务监控监控 Kubelet 服务的运行状态。systemctl status kubelet, journalctl -u kubelet

日志监控系统日志监控收集和分析系统日志,识别潜在问题。journalctl, tail -f /var/log/syslog


应用日志监控收集和分析应用日志,识别潜在问题。tail -f, grep, awk

告警系统告警规则配置配置告警规则,如 CPU 使用率超过阈值时触发告警。prometheus, alertmanager


告警通知通过邮件、短信、Slack 等方式发送告警通知。sendmail, curl, slack-cli
运维管理模块节点扩缩容节点扩容增加新节点,安装 docker/kubelet 等必要组件。kubeadm join, docker install


节点缩容删除节点,卸载 docker/kubelet 等组件。kubectl drain, docker uninstall

节点迁移服务迁移将节点上的服务迁移到其他节点,确保服务无缝切换。kubectl cordon, kubectl drain

日志管理日志清理自动清理旧的日志文件,避免磁盘空间不足。logrotate, find /var/log -type f -delete


日志轮转配置日志轮转策略(如 logrotate)。logrotate -f /etc/logrotate.conf

备份与恢复数据备份定期备份关键数据(如配置文件、数据库等)。tar, rsync, mysqldump


数据恢复在需要时恢复备份的数据。tar -xvf, rsync, mysql

自动化任务定时任务支持定时任务,如定期更新软件包、清理临时文件等。crontab -e, at


事件触发任务支持事件触发的自动化任务,如磁盘空间不足时自动清理日志。inotifywait, systemd.path

网络管理网络配置配置和管理节点的网络设置(如 IP 地址、DNS、路由等)。nmcli, ip addr, route


网络策略配置和管理网络策略,控制节点之间的通信。iptables, nftables, calicoctl

存储管理磁盘管理管理磁盘的容量、分区、挂载等。fdisk, mkfs, mount


文件系统管理管理文件系统的检查、修复、扩容等。fsck, resize2fs, xfs_growfs
安全管理模块身份认证与授权用户管理管理用户和组的创建、修改、删除(如 useradd、usermod)。useradd, usermod, passwd


SSH 密钥认证配置和管理 SSH 密钥认证。ssh-keygen, ssh-copy-id


sudo 权限管理配置和管理 sudo 权限(如 /etc/sudoers)。visudo, sudo -l

审计日志审计规则配置配置审计规则,记录关键操作(如文件访问、用户登录等)。auditctl, ausearch


审计日志分析分析审计日志,识别潜在安全问题。aureport, ausearch

漏洞管理系统漏洞扫描使用工具(如 OpenSCAP、Lynis)扫描系统漏洞。lynis audit system, oscap


漏洞修复修复扫描到的系统漏洞。yum update, apt upgrade

防火墙管理防火墙规则配置配置和管理防火墙规则(如 firewalld、ufw)。firewall-cmd, ufw allow

文件权限管理文件权限配置配置文件和目录的权限(如 chmod、chown)。chmod, chown, chgrp


敏感文件检查检查敏感文件的权限(如 /etc/passwd、/etc/shadow)。ls -l, stat

SELinux/AppArmorSELinux 配置配置和管理 SELinux(CentOS)。sestatus, setenforce, semanage


AppArmor 配置配置和管理 AppArmor(Ubuntu)。aa-status, aa-enforce
故障排查与恢复模块故障检测硬件故障检测检测硬件故障(如磁盘坏块、内存错误等)。smartctl, memtest86+


网络故障检测检测网络的连通性、延迟、丢包率和带宽使用情况,识别网络瓶颈和故障。ping, traceroute, mtr, iperf


服务故障检测检测服务故障(如 docker、kubelet 服务崩溃等)。systemctl status, journalctl -u

故障恢复自动恢复提供自动恢复流程(如重启服务、迁移 Pod 等)。systemctl restart, kubectl rollout restart


手动恢复提供手动恢复流程(如修复配置文件、重启节点等)。vi, nano, reboot

故障分析日志分析分析系统日志和应用日志,定位故障原因。grep, awk, sed


性能分析分析系统性能数据,定位性能瓶颈。perf, strace, vmstat