一、查看系统指标
cpu
w
uptime
sar 查看历史记录,加选项可查看内存、IO和堆栈情况
top
htop 交互式、图形式的进程管理工具
#M 内存排序 P CPU排序 T 时间排序
#uptime 当前时间 系统运行时间 负载/平均负载(uptime、top或w)1 、5、15
内存
vmstat cpu、内存、虚拟使用率和磁盘IO
free
#-b/(bytes)字节 -k/(kilos) kb -m/(megas) mb -h/(human) 常见单位
#内存已用和空闲数量
磁盘IO
ifstat 网络IO
iostat 磁盘IO
sar 2 3
(system activity reporter)系统运行状态统计
#2秒 3次
#运行状态统计工具
进程
ps
pstree
pidstat
jobs
服务端口
net-tools工具包中,显示网络连接、路由表、网络接口统计、无效连接、组播成员的命令
netstat -antp
#-a/(all) 列出所有网络状态 -n(mumeric)数字方式显示IP和端口,不进行域名反向解析速度更快 -t/(tcp) 端口 -u/(udp) 端口 -p/(pid) 进程号和进程名 -r/(route) 路由表等同于route -l(listening) 监听状态的连接
磁盘空间
df -ah
#-a/(all) 文件系统信息 -h/(human-readable) 以常见格式显示
LVM扩容
- 添加硬盘
- 添加PV
pvcreate
pvscan/pvs/pvdisplay
- VG扩容
vgextend
vgscan/vgdisplay
- LV扩容
lvresize
lvscan/lvdisplay
- 修改文件系统大小
xfs_growfs
常见问题
一、虚拟化的概念
- 虚拟化的特色
一台计算机虚拟为多台逻辑计算机,运行不同的操作系统,应用程序在相互独立
的空间内运行互不影响
,从而提高计算机的工作效率
全
虚拟化
VMware完全虚拟化软件
Xen同时支持虚拟化和半虚拟化,不支持VT技术的CPU也能使用以半虚拟化模式
运行
KVM是Linux内核的一部分,内核内部部署控制虚拟化的过程,技术不如Xen成熟,缺少关键特性:动态迁移和泛虚拟化支持
半
虚拟化对虚拟机内核进行改造
大幅提高性能,Denali、Xen。半虚拟化的高后效率:续的Linux和Windows系统都对特殊指令进行修改- 硬件
辅助
虚拟化
Intel退出硬件解决虚拟化的方案VMX架构
- 常用虚拟化架构
寄居
架构
宿主安装和运行虚拟化程序,依赖于宿主操作系统对设备的支持和物理资源的管理:Vmware Workstation、VMware Server和GSX Server
优:简单便于实现
缺:依赖宿主操作系统,指令需要经过宿主操作系统、效率缓慢裸金属
架构
硬件上面安装虚拟化软件,依赖虚拟层内核和服务器控制台进行管理:VMWare ESXI Server
优:不需操作系统,支持多操作系统,速度快,效率高,更加灵活
缺:虚拟层内核开发难度大
- 目前的虚拟化方案
都是使用硬件支持的虚拟化解决方案,最新的操作系统一般都是支持一些半虚拟化
特性。企业服务器虚拟化,如果不采用Docker的方式,则一般使用裸金属架构
docker的概念
- 网络模式
Bridge 桥接–默认网络模式
Host 共享宿主机网络
Container 和容器共享网络
None 不为容器配置网络----测试用
- 访问方式
回环接口 访问自身
DNAT 外部访问
SNAT 访问外部
网桥 容器间访问
- docker运行状态CRPSD
Created 创建未运行
Running 正在运行
Paused 都暂停(非停止)
Stopped 停止(占用的资源和沙盒环境仍然存在)
Deleted 已删除(资源及管理信息已释放和移除)
- 镜像下载策略
Always 出错重新下载(默认)
Nerve 仅本地
IfNotPresent 有使用本地,没有则下载
- 镜像优化
基础镜像小
层级尽量少
去除不必要
复用镜像层
分阶段构建
- Commit和Dockerfile
Commit
优:简单,所见所得
缺:功能缺失(元数据级别)
Dockerfile
优:功能性完整,重用性高(存储空间、过程【考虑重用是否错误】)
缺:类似于脚本
- 内存资源限制
Docker限制可以从Memory、CPU、Block I/O
OOME: Out Of Memory Exception
- 一旦发生OOME,任何进程都有可能被杀死
- Docker调整了docker daemon的OOME优先级,以免被内核关闭
- docker排查思路
望容器:docker ps -a
看容器:docker inspect 容器名
闻日志: docker logs
问进程:docker top 容器名
切容器:docker exec -it 容器名
kubernetes
- Docker创建容器的工具,应用容器的引擎。K8S基于容器的管理平台
- Pod访问方式
lo回环接口:pod内–容器间
docker0网桥转发:pod间–同物理节点–同广播域
Flannel:pod间–不同物理节点
- SVC类型
ClusterIP: 自动分配集群内部访问的虚拟IP
NodePort:绑定端口来访问pod中的服务(外部访问)
LoadBalancer:LAAS(负载均衡即服务)创建外部负载均衡器转发至NodePort
ExternalName:pod定义私有域名,外部域名引入集群内部私有域名,形成稳定域名
- etcd与Flannel
管理存储Flannel分配的IP地址段资源
监控etcd中pod的地址,建立维护节点路由表
- flannel模式:UDP、VXLAN和host-gw
- K8S排错思路
node:
kubectl get node ----ready
Y:kubectl describe 节点 ----资源使用率
N:kubectl get node -o wide ---- 节点信息
组件–healthy
N:kubectl get node -o wide -----节点信息
pod — running
N: kubectl describe pod pod名称 —详细信息