运维-初见

Linux

命令

基础的命令操作有哪些:

三剑客:sed、awk、grep

shell

写过哪些脚本

写过最复杂的脚本

存储

磁盘分区有哪两种方式:MBR、GPT

文件系统有哪些:ext2/3/4、XFS、proc、sysfs、tmpfs

如何查看文件系统类型:df -T、lsblk-f、blkid

  • df -T 命令侧重于展示已挂载文件系统的类型和使用情况。
  • lsblk -f 命令主要用于查看块设备及其对应的文件系统类型。
  • blkid 命令则专注于识别块设备的文件系统类型和 UUID 等详细信息。你可以根据具体需求选择合适的命令来查看文件系统类型。

创建lvm流程

raid 0 1 5 10:

RAID 级别工作原理性能特点可靠性适用场景
RAID 0将数据分散存储在多个磁盘上,无数据冗余处理,数据分块存于不同磁盘读写速度快,理论读写性能是单个磁盘的 N 倍(N 为磁盘数量)较低,一块磁盘故障,数据全丢失对数据读写速度要求高,对数据安全性要求不高,如视频编辑、大型游戏
RAID 1将数据完全相同地复制到多个磁盘,实现数据冗余,如两块磁盘,一块存数据,另一块实时镜像读性能较好,可从多个磁盘读取数据;写性能相对差,数据需同时写入多盘高,只要有一块磁盘正常,数据不丢失对数据安全性要求高,如金融、医疗等关键数据存储
RAID 5数据和校验信息分布在阵列磁盘上,通过其他磁盘数据和校验信息恢复损坏磁盘数据,如三块磁盘,两块存数据,一块存校验信息读写性能较好,读取时多盘可同时工作,写入虽需计算校验信息但性能损失小较高,允许一块磁盘故障不丢失数据对数据安全性和读写性能有一定要求,如企业数据库服务器
RAID 10先将磁盘两两组成 RAID 1 阵列,再将这些 RAID 1 阵列组成 RAID 0 阵列,如四块磁盘,先两两组成 RAID 1,再将两个 RAID 1 组成 RAID 0兼具 RAID 0 的高速读写和 RAID 1 的高可靠性,读写和可靠性都出色高,允许同时损坏多个磁盘,只要每个 RAID 1 子阵列至少一块磁盘正常,数据不丢失对数据读写速度和可靠性要求极高,如大型企业核心业务系统、高性能计算

性能监控工具

cpu性能监控分析工具:top、vmstat

磁盘IO:iostat、iotop

网络IO:sar、iftop

prometheus采集指标过多的优化

降采样频率:对于长时间存储的指标进行降采样

聚合:将多个实例的指标聚合成一个全局指标

配置过滤目标:如果某些目标的指标不重要,可以通过在scrape_configs中配置relabel_config过滤掉不需要的指标

Prometheus

serviceMonitor:是prometheus Operator提供的一种CRD,用于定义如何监控服务

prometheus的架构是什么

Operator

定义

Operator 是由 CoreOS 公司提出的一种基于 Kubernetes API 扩展机制,用于管理复杂的有状态应用。它借助自定义资源定义(Custom Resource Definitions,CRDs)和控制器(Controllers),将运维人员对应用的操作经验编码成自动化的流程,从而实现应用的自动化部署、配置、扩展和升级等操作

示例

以 MySQL Operator 为例,它可以通过 CRD 定义 MySQL 集群的规格和配置,然后通过控制器自动创建和管理 MySQL 实例、处理备份和恢复等操作。

Exporter

定义

Exporter 是一种用于收集和暴露系统或应用指标的工具。在 Kubernetes 中,Exporter 通常以容器的形式运行,将各种系统或应用的指标转换为 Prometheus 能够识别的格式,以便 Prometheus 进行采集和监控。

工作原理
  • 指标收集:Exporter 会定期从系统或应用中收集各种指标,如 CPU 使用率、内存使用率、网络流量等。
  • 指标暴露:将收集到的指标以 HTTP 服务的形式暴露出来,Prometheus 可以通过 HTTP 请求来获取这些指标。
应用场景
  • 系统监控:例如 Node Exporter 用于收集 Kubernetes 节点的系统指标,如 CPU、内存、磁盘等使用情况。
  • 应用监控:对于特定的应用,如 MySQL Exporter 可以收集 MySQL 数据库的性能指标,如查询响应时间、连接数等。

prometheus存储满了怎么办

如何监控k8s集群外的指标

docker

docker常用命令、

docker数据卷

1、docker volume create myvolume;docker -v myvolume:/etc/nginx/nginx.conf

2、直接挂载宿主机目录或文件

docker清理命令

镜像清理:docker image prune 清理悬空镜像,也就是那些没有被任何标签引用的镜像

docker image prune -a  删除所有未被任何容器引用的镜像

容器清理:docker container prune

docker system prune:一次性清理所有未使用的资源,包括停止的容器、悬空镜像、未使用的网络和数据卷;-a参数和docker image prune -a参数作用一致

镜像分层的好处

节省存储空间,相同的基础镜像层可以被复用

加速镜像构建和传输,在镜像传输时,只需传输发生变化的镜像层

dockerfile编写:几个命令的区分RUN CMD entrypoint from 

COPY和ADD:COPY可以添加当前目录下的文件到镜像中;ADD除了拥有COPY的功能外,还附加一些额外功能:自动解压被复制的压缩文件,可以从远程URL复制文件到镜像中

RUN、CMD和ENTRYPOINT:

RUN

  • 构建镜像时执行命令,用于安装软件包、创建目录、下载文件等构建阶段的临时操作

  • 每一条 RUN 指令都会在镜像中创建一个新的层(Layer)。

  • 仅在 docker build 时运行。

  • 用于准备镜像环境(如安装依赖)。

CMD

  • 在 docker run 时生效。多个CMD只有最后一个生效

  • 如果 docker run 指定了其他命令,CMD 会被覆盖。

ENTRYPOINT

  • 定义容器启动时的主进程(不可被 docker run 直接覆盖)。

  • 通常用于将容器配置为可执行程序(如 nginxpython)。

  • 在 docker run 时追加的参数会传递给 ENTRYPOINT

  • 可通过 --entrypoint 覆盖:

docker五种网络模式:

bridge

bridge模式是docker的默认网络模式,不用–net参数,就是bridge模式。

相当于Vmware中的 nat 模式,容器使用独立network Namespace,并连接到docker0虚拟网卡。通过docker0网桥以及iptables nat表配置与宿主机通信,此模式会为每一个容器分配Network Namespace、设置IP等,并将一个主机上的 Docker 容器连接到一个虚拟网桥

host

相当于Vmware中的桥接模式,与宿主机在同一个网络中,但没有独立IP地址。
Docker使用了Linux的Namespaces技术来进行资源隔离,如PID Namespace隔离进程,Mount Namespace隔离文件系统,Network Namespace隔离网络等。
一个Network Namespace提供了一份独立的网络环境,包括网卡、路由、iptable规则等都与其他的Network Namespace隔离。 一个Docker容器一般会分配一个独立的Network Namespace。 但如果启动容器的时候使用host模式,那么这个容器将不会获得一个独立的Network Namespace, 而是和宿主机共用一个Network Namespace。容器将不会虚拟出自己的网卡、配置自己的IP等,而是使用宿主机的IP和端口。

container

none

自定义

模式名称简介备注
bridge容器拥有独属于自己的虚拟网卡和虚拟IP等网络资源,通过docker0虚拟网卡与宿主机的eth0网卡交互,进而与外界网络交互。默认模式
host容器不拥有任何独立网络资源,与宿主机共享网络空间。弊端:同一端口只能被一个容器服务绑定
none关闭容器网络功能,仅有独立网络空间但无任何网络资源分配(如虚拟网卡、路由、IP等)。极少使用,适用于需隔离网络环境的场景
container首个容器以bridge模式启动,后续容器共享首个容器的网络资源,保持其他资源隔离。若首容器停止,依赖其网络的容器也将失去网络连接
自定义通过-d指定网络模式类型,支持bridge或overlay(支持多subnet子网配置)。支持容器间使用别名通信,提高了网络配置的灵活性和便利性

K8s

1、基础概念

2、资源管理

deployment:管理无状态应用,应用部署、滚动更新和回滚、状态管理

statefulset:管理有状态应用,为每个pod提供了稳定的、唯一的标识符和持久化存储

3、网络

流量是怎么进来的,怎么负载的

用户 → (DNS) →  → Apisix ingress controller通过daemonset部署,通过hostNetwork: true,controller的pod直接使用主机的网络接口,即直接使用主机网路接口暴露controller pod → APISIX Ingress Pod →test-clusterip0:8023

ingress的作用是什么

暴露服务,负载均衡,定义路由规则,SSL/TLS

ingress controller的架构是什么

4、安全

5、监控与日志

GO

学习一门语言go或python,学go吧

ELK

logstash的format是干什么的

cuda

conda

Nginx

nginx手动部署以及配置信息,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值