uname -a
— 显示内核版本和操作系统信息hostnamectl
— 查看和设置主机名uptime
— 查看系统运行时间top
— 实时查看系统进程htop
— 更友好的系统进程查看器dpkg -l
— 列出已安装的软件包(Debian/Ubuntu)rpm -qa
— 列出已安装的软件包(RHEL/CentOS/Fedora)sudo apt update
— 更新软件源sudo apt upgrade
— 升级已安装的软件包sudo apt install <package>
— 安装软件包sudo apt remove <package>
— 移除软件包sudo apt search <package>
— 搜索软件包sudo dnf update
— 更新软件包(Fedora 22 以后,RHEL
8/CentOS 8)sudo dnf install <package>
— 安装软件包sudo dnf remove <package>
— 移除软件包sudo dnf search <package>
— 搜索软件包sudo dnf upgrade
— 升级软件包sudo yum update
— 更新软件包sudo yum install <package>
— 安装软件包sudo yum remove <package>
— 移除软件包sudo yum search <package>
— 搜索软件包journalctl
— 查看系统日志dmesg
— 查看内核日志/var/log/
— 查看其他日志文件,如 syslog、auth.logdf -h
— 查看磁盘空间使用情况du -sh /path/to/dir
— 查看目录的总大小lsblk
— 列出所有块设备fdisk -l
— 列出所有磁盘分区sudo mkfs.ext4 /dev/sdX1
— 创建 ext4 文件系统sudo mkfs.xfs /dev/sdX1
— 创建 xfs 文件系统sudo mkfs.btrfs /dev/sdX1
— 创建 btrfs 文件系统sudo mount /dev/sdX1 /mnt
— 临时挂载磁盘sudo umount /mnt
— 卸载挂载的磁盘/etc/fstab
配置sudo nano /etc/fstab
— 编辑 fstab
文件,设置开机自动挂载,示例配置: /dev/sda1 /mnt/data ext4 defaults 0
0sudo cryptsetup luksFormat /dev/sdX1
—
创建加密分区sudo cryptsetup luksOpen /dev/sdX1 my_encrypted_disk
—
打开加密分区ip addr show
— 显示网络接口的 IP 地址信息ifconfig
— 旧版命令,显示网络接口信息/etc/network/interfaces
文件 ```bash iface eth0 inet static
address 192.168.1.100 netmask 255.255.255.0 gateway 192.168.1.1
RHEL/CentOS/Fedora:使用 nmcli 命令sudo nmcli con mod “System eth0” ipv4.addresses 192.168.1.100/24 sudo
nmcli con mod “System eth0” ipv4.gateway 192.168.1.1 sudo nmcli con mod
“System eth0” ipv4.method manual sudo nmcli con up “System eth0” 3.2
网络诊断 ping
sudo systemctl start
防火墙(Firewall)
RHEL/CentOS依赖包:firewalld(默认使用 firewalld) 关闭 firewalld:
sudo systemctl stop firewalld # 停止 firewalld 服务 sudo systemctl
disable firewalld # 禁用 firewalld 服务开机启动 关闭
iptables(如果系统未使用 firewalld): - sudo systemctl stop iptables #
停止 iptables 服务 sudo systemctl disable iptables # 禁用 iptables
服务开机启动 SELinux RHEL/CentOS 默认启用了 SELinux,关闭 SELinux
操作如下: - 临时禁用 SELinux: - sudo setenforce 0 - 永久禁用 SELinux:
编辑 /etc/selinux/config 文件,将 SELINUX=enforcing 修改为
SELINUX=disabled,然后重启系统。 LVM 操作 RHEL/CentOS常用操作 - 安装 LVM
工具:sudo yum install lvm2 - 列出卷组(VG):sudo vgs -
列出逻辑卷(LV):sudo lvs - 创建卷组(VG):sudo vgcreate
DEVICE=eth0 # 网络接口名称 BOOTPROTO=static # 配置静态 IP ONBOOT=yes # 启动时启用该接口 IPADDR=192.168.1.100 # 静态 IP 地址 NETMASK=255.255.255.0 # 子网掩码 GATEWAY=192.168.1.1 # 默认网关 DNS1=8.8.8.8 # DNS 服务器 DNS2=8.8.4.4 # DNS 服务器 DEFROUTE=yes 配置示例解释: - DEVICE=eth0:指定接口名称为 eth0。 - BOOTPROTO=static:使用静态 IP 配置。 - ONBOOT=yes:表示接口在启动时启用。 - IPADDR=192.168.1.100:配置静态 IP 地址。 - NETMASK=255.255.255.0:配置子网掩码。 - GATEWAY=192.168.1.1:指定默认网关。 - DEFROUTE=yes:将该接口设置为默认路由接口。 应用配置:sudo systemctl restart network
RHEL/CentOS 8 之后的网卡配置 从 RHEL/CentOS 8 开始,网络管理工具变得更加现代化,开始默认使用 NetworkManager 或 nmcli 工具来管理网络,并且仍然兼容原有网络配置文件/etc/sysconfig/network-scripts/ifcfg-eth0 文件,可以通过以下命令重新加载修改后的网络配置: - 使用 nmcli 重新加载接口:sudo nmcli connection reload - 或重启网络接口:sudo nmcli connection down eth0 && sudo nmcli connection up eth0 验证网络配置 使用以下命令查看网络接口的状态,确保 NetworkManager 正确应用了 ifcfg-eth0 配置文件中的设置:nmcli connection show eth0 或者:ip a show eth0
防火墙(Firewall) Debian/Ubuntu: - 依赖包:ufw(Uncomplicated
Firewall)或 iptables - 关闭 UFW 防火墙(默认使用 UFW): - sudo ufw
disable # 禁用 UFW 防火墙 sudo systemctl disable ufw # 禁用 UFW
服务开机启动 - 关闭 iptables: - sudo systemctl stop iptables # 停止
iptables 服务 sudo systemctl disable iptables # 禁用 iptables
服务开机启动 AppArmor Debian/Ubuntu 默认没有启用 SELinux,而是使用
AppArmor 进行访问控制。如果你需要使用 SELinux,可以通过安装 selinux
包来启用: - 安装 SELinux: sudo apt update sudo apt install
selinux-basics selinux-policy-default - 临时禁用 SELinux: sudo
setenforce 0 - 永久禁用 SElinux: 编辑 /etc/selinux/config,将
SELINUX=enforcing 修改为 SELINUX=disabled,然后重启系统。 LVM 操作
Debian/Ubuntu: - LVM 工具依赖包:lvm2 sudo apt update sudo apt install
lvm2 LVM常用操作 - 列出卷组(VG): sudo vgs - 列出逻辑卷(LV):sudo
lvs - 创建卷组(VG): sudo vgcreate
Wired interface (eth0) with static IP auto eth0 iface eth0 inet static address 192.168.1.100 设置静态 IP netmask 255.255.255.0 设置子网掩码 gateway 192.168.1.1 设置默认网关 dns-nameservers 8.8.8.8 8.8.4.4 设置 DNS 服务器Wired interface (eth0) with DHCP
auto eth0 iface eth0 inet dhcp 使用 DHCP 获取 IP 地址Wireless interface (wlan0) with static IP auto wlan0 iface wlan0 inet static address 192.168.1.101 netmask 255.255.255.0 gateway 192.168.1.1 wpa-ssid “YourNetworkName” Wi-Fi 网络名称 wpa-psk “YourNetworkPassword” Wi-Fi 密码 - auto eth0:表示接口 eth0 会在启动时自动启用。 - iface eth0 inet static:设置静态 IP。 - iface eth0 inet dhcp:使用 DHCP 自动获取 IP 地址。 - dns-nameservers:配置 DNS 服务器。
Ubuntu 20.04+ 使用 netplan 配置模板 从 Ubuntu 20.04 开始,netplan 成为了默认的网络配置工具,配置文件通常位于 /etc/netplan/ 目录下。以下是一个典型的 50-cloud-init.yaml 配置模板: # /etc/netplan/50-cloud-init.yaml
network: version: 2 renderer: networkd # 使用 systemd-networkd 作为渲染器 ethernets: eth0: # 网卡名称 dhcp4: false # 禁用 DHCP 获取 IPv4 地址 addresses: - 192.168.1.100/24 # 设置静态 IP 和子网掩码 gateway4: 192.168.1.1 # 设置默认网关 nameservers: addresses: - 8.8.8.8 # 设置 DNS 服务器 - 8.8.4.4 配置示例解释: - version: 2:指定 netplan 配置的版本。 - renderer: networkd:指定使用 systemd-networkd 渲染器(也可以使用 NetworkManager,取决于系统配置)。 - eth0:网卡名称,可能根据你的系统不同而不同。 - dhcp4: false:禁用 DHCP。 - addresses:设置静态 IP 地址。 - gateway4:设置默认网关。 - nameservers:设置 DNS 服务器。 在编辑完配置文件后,应用新的网络配置:sudo netplan apply
etcd问题汇总 1. etcd存储空间占用问题 1.1 问题背景 -
登录K8S集群,执行kubectl操作,响应特别慢 - 单节点K8S集群运行不稳定 -
查看系统负载 top - 13:49:55 up 61 days, 2:30, 2 users, load average:
26.59, 37.72, 30.98 Tasks: 741 total, 1 running, 740 sleeping, 0
stopped, 0 zombie %Cpu(s): 1.8 us, 1.6 sy, 0.0 ni, 94.2 id, 2.5 wa, 0.0
hi, 0.0 si, 0.0 st - 检查etcd存储 cd /opt/lib/etcd/ # du -hs 517M
member [root@etcd]# cd member/ [root@k8s-master-node member]# du -hs
90M snap 428M wal [root@k8s-master-node member]# cd wal/
[root@k8s-master-node wal]# du -hs * 62M
0000000000000067-00000000005f06a4.wal.broken 62M
00000000000009ad-0000000008b4afe0.wal 62M
00000000000009ae-0000000008b591d9.wal 62M
00000000000009af-0000000008b66cb4.wal 62M
00000000000009b0-0000000008b74d95.wal 62M
00000000000009b1-0000000008b830cb.wal 62M 1.tmp [root@k8s-master-node
wal]# du -hs 428M . 1.2 异常结论 - 存储占用过高:总的 wal 文件占用了
428MB,这对于单节点系统来说是相对较大的数据量,尤其是当这些文件持续增长时,可能会导致存储压力增大,进而影响系统性能。
.wal.broken 文件的存在:文件中出现 .wal.broken
文件,表示系统在写入日志时发生了错误。此时需要排查系统磁盘、I/O
性能或其他异常。 -
缺乏清理机制:没有看到自动归档或删除旧日志的机制,可能导致 wal
文件和临时文件不断堆积,造成磁盘空间不足。 2 问题处理过程 2.1
查看etcd集群存储的状态 etcdctl
–endpoints=https://10.237.239.23:2379
–cacert=/etc/ssl/etcd/ssl/ca.pem
–cert=/etc/ssl/etcd/ssl/node-k8s-master-node.pem
–key=/etc/ssl/etcd/ssl/node-k8s-master-node-key.pem
endpoint status –write-out=table [图片] 每列的含义:
暂时无法在飞书文档外展示此内容 2.2 查看当前版本号(非上表中版本)
etcdctl –endpoints=https://10.237.239.23:2379
–cacert=/etc/ssl/etcd/ssl/ca.pem
–cert=/etc/ssl/etcd/ssl/node-k8s-master-node.pem
–key=/etc/ssl/etcd/ssl/node-k8s-master-node-key.pem
endpoint status –write-out=“json” | egrep -o ‘“revision”:[0-9]’ |
egrep -o ’[0-9].’ 会出现一串数字比如 1234567 此为版本号 3.3
执行空间压缩 etcdctl –endpoints=https://10.237.239.23:2379
–cacert=/etc/ssl/etcd/ssl/ca.pem
–cert=/etc/ssl/etcd/ssl/node-k8s-master-node.pem
–key=/etc/ssl/etcd/ssl/node-k8s-master-node-key.pem
compact 1234567 (替换成节点的版本号) 4.1 重新检查etcd集群存储的状态
etcdctl –endpoints=https://10.237.239.23:2379
–cacert=/etc/ssl/etcd/ssl/ca.pem
–cert=/etc/ssl/etcd/ssl/node-k8s-master-node.pem
–key=/etc/ssl/etcd/ssl/node-k8s-master-node-key.pem endpoint status
–write-out=table [图片] 清理完成后,DB SIZE从原来的94M -> 8.9M 4.2
检查系统状态 系统IO负载 立刻明显降低 top - 15:05:39 up 61 days, 3:46, 1
user, load average: 6.97, 7.47, 7.83 Tasks: 728 total, 3 running, 725
sleeping, 0 stopped, 0 zombie %Cpu(s): 20.3 us, 2.1 sy, 0.0 ni, 77.3 id,
0.2 wa, 0.0 hi, 0.0 si, 0.0 st
重启 etcd 服务(具体服务名和路径可能不同) systemctl restart etcd
输出恢复完成信息echo “Restore completed from $BACKUP_FILE” 说明: - etcdctl snapshot restore 命令用于恢复 etcd 数据。 - 恢复后的数据会被存放到 /opt/lib/etcd 目录,服务会在恢复后重启。