▲ 点击上方"DevOps和k8s全栈技术"关注公众号
1. 服务器管理
1.1 操作系统和内核
进程管理:调度进程、管理进程状态和资源分配。 内存管理:分配和释放内存、管理虚拟内存和物理内存。 文件系统管理:提供对文件和目录的访问控制和管理。 设备管理:提供对硬件设备的抽象和控制,如磁盘、网络设备等。 系统调用接口:提供应用程序与内核之间的接口。
1.2 系统监控与性能调优
top:显示系统的实时性能信息,包括CPU、内存、进程等。 htop:增强版的top,提供更友好的界面和更多功能。 vmstat:报告系统虚拟内存、进程、CPU活动等统计信息。 iostat:显示磁盘I/O性能统计信息。 netstat:显示网络连接、路由表、接口状态等网络信息。 sar:收集、报告和保存系统活动信息。 dstat:结合了vmstat、iostat、netstat等多个工具的功能,提供全面的性能监控。
1.3 系统备份与恢复
备份:可以使用 rsync
、tar
、dd
等工具进行系统备份。常见的备份策略包括完全备份、增量备份和差异备份。恢复:恢复过程取决于备份方式。使用 tar
或rsync
恢复文件,使用dd
恢复整个磁盘或分区。确保备份的数据一致性和完整性,并定期测试备份的可恢复性。
2. 网络管理
2.1 网络基础
物理层:传输原始比特流,如电缆、光纤等物理介质。 数据链路层:负责节点间的可靠数据传输,提供帧的传输和错误检测,如以太网。 网络层:负责数据包在网络中的路由选择和转发,如IP协议。 传输层:提供端到端的通信服务,确保数据完整性和可靠传输,如TCP和UDP协议。 会话层:管理会话,建立、维护和终止会话连接。 表示层:处理数据格式转换,如加密解密、数据压缩等。 应用层:提供应用服务接口,如HTTP、FTP、SMTP等协议。
2.2 网络配置与故障排除
ifconfig:用于配置网络接口,显示或修改IP地址、子网掩码等信息(已被 ip
命令替代)。ip: ip addr
用于查看和设置IP地址,ip link
用于管理网络接口,ip route
用于配置路由。nmcli:NetworkManager命令行工具,用于配置和管理网络连接。 systemctl:用于启动、停止和管理网络服务。
2.3 网络安全
防火墙:配置iptables或firewalld,控制入站和出站流量。 SSH安全:禁用root远程登录、使用公钥认证、修改默认端口。 更新和补丁:定期更新系统和应用程序,修补已知漏洞。 日志监控:配置和查看系统日志(如syslog、journald),监控异常活动。 用户权限管理:最小权限原则,限制用户和应用的权限。
3. Docker
3.1 容器基础
镜像(Image):Docker镜像是一个只读模板,用于创建Docker容器。包含应用程序及其所有依赖项。 容器(Container):容器是镜像的运行实例,包含应用程序和其运行时环境。 Dockerfile:用于构建镜像的文件,包含一系列指令和依赖。 Docker Hub:公共的Docker镜像仓库,可以上传和下载镜像。
3.2 容器管理
docker run:启动一个新的容器。 docker ps:显示运行中的容器。 docker stop/start/restart:停止、启动或重启容器。 docker rm:删除一个容器。 docker exec:在运行的容器中执行命令。 docker logs:查看容器的日志。
3.3 镜像管理
docker build:从Dockerfile构建镜像。 docker images:列出本地存储的镜像。 docker rmi:删除一个或多个镜像。 docker pull/push:从Docker Hub拉取或推送镜像。
4. Kubernetes(K8s)
4.1 基本概念
Master节点:控制平面,负责管理和调度集群。主要组件有API Server、Controller Manager、Scheduler等。 Worker节点:运行容器的节点,每个节点上有Kubelet和Kube-proxy。 Pod:Kubernetes的最小部署单元,包含一个或多个容器。 Service:定义一组Pod的访问策略和负载均衡。 Namespace:用于逻辑隔离资源的虚拟集群。 ConfigMap和Secret:用于管理配置信息和敏感数据。
4.2 部署与管理
编写YAML配置文件:定义Pod、Deployment、Service等资源的配置。 使用kubectl应用配置:运行 kubectl apply -f <配置文件>
,创建和管理资源。监控和管理:使用 kubectl get
、kubectl describe
和kubectl logs
等命令监控和管理应用。
4.3 高可用与扩展
高可用:通过Deployment和ReplicaSet保证Pod的副本数,使用Service实现负载均衡,使用PersistentVolume和PersistentVolumeClaim管理持久化存储。 自动扩展:使用Horizontal Pod Autoscaler根据资源使用情况自动调整Pod数量,通过Cluster Autoscaler动态调整节点数。
5. DevOps
5.1 持续集成与持续部署(CI/CD)
持续集成(CI):频繁地将代码集成到主干,并通过自动化测试验证,每次集成都进行构建和测试。 持续部署(CD):将代码自动部署到生产环境,使新代码能快速交付到用户手中。
代码存储库:使用版本控制系统(如Git)。 CI工具:配置Jenkins、GitLab CI、Travis CI等工具,自动构建和测试代码。 CD工具:配置Spinnaker、Argo CD等工具,自动部署和发布代码。 监控和反馈:使用Prometheus、Grafana等工具监控系统和应用性能,收集反馈。
5.2 配置管理
Terraform:支持多种云平台,通过代码定义和管理基础设施。 Ansible:基于声明性的配置管理工具,使用YAML编写剧本,支持多平台。 Chef和Puppet:基于编程和声明性的配置管理工具,通过代码定义和管理系统配置。
5.3 容器编排
安装和配置:安装Kubernetes或Docker Swarm,配置集群节点和网络。 定义资源:编写YAML或JSON文件,定义Pod、Service、Ingress等资源。 部署和管理:使用kubectl或docker命令,部署和管理集群中的应用和服务。 监控和日志:使用Prometheus、Grafana、ELK Stack等工具,监控集群性能,收集和分析日志。
本月精彩文章推荐
云计算架构师韩先超亲身经历 | 记录从大学到现在历程 对合肥电信进行线下Kubernetes技术培训 Linux常用命令大全 Kubernetes 1.29 发布:新增特性一览 简单易学的Kubernetes(k8s):架构和源码解读 K8S管理神器-Rancher一键式部署k8s资源 Kubernetes 安全指南:从审计到备份的全面防护 弹性潮汐:基于Kubernetes HPA的智能Pod自动扩缩容 很多docker镜像站被封了?哪些能用,抓紧收藏 国产操作系统崛起!揭开未来科技的神秘面纱 Centos停更了,基于业务场景选择合适的操作系统替代Centos。 干掉99%传统运维:基于Jenkins和K8S构建DevOps流水线 点赞收藏和关注,服务器10年不宕机