试题答案有

1:

  • IaC它涉及使用代码来管理和配置基础设施,而不是手动配置服务器和资源。是DevOps中的一个基本实践,提供了许多优势,如自动化、一致性、可扩展性和成本效益,最终帮助团队更快、更可靠地交付高质量的软件。

2:

  • grep,awk和sed命令的目的是强大的文本处理工具,可以用他们在文件中搜索固定关键字信息。
  • 查找error.log文件"error"关键字前后20行内容: 
    
  • #grep -C 20 'error' 20 error.log
  • 查找error.log中带"error"关键字的一行:
    # awk '/verb/ {print }' error.log ; awk还可常用于统计nginx-log中固定时间的pv等。
  • sed是流编辑器,更常用的是批量更新文件:# sed -i 's/xx/mm/g' text.txt

3:

  • rsync命令主要用于远程同步文件和文件夹,可以是相同的主机也可以是不同的主机通过ssh同步。
  • 同步本地目录:# rsync -avz /root/data /data
  • 同步本地目录到远程主机并在删除时级联删除:
    #rsync -av --delete 远程主机用户@远程主机:/data /data

4:

  • iptables是过滤和记录网络数据包,主要用来做防火墙,透明代理。
  • 防火墙过滤掉tun0网卡下目标地址为10.8.0.0的访问:# iptables -I FORWARD -i tun0 -s 10.8.0.0/16 -d 172.18.0.0/16 -j DROP

5:

  • K8s 是一款容器编排工具,方便管理调度容器。其他的有Swarm,dockercompose等。
  • 主要核心组件有:
    api:处理客户端和和组件调度,结果存储到etcd中。 controllermanager: 运行控制器进程,逻辑上是一个单独的进程;
    scheduler: 监听新建未指定运行节点的Pods,并为Pod选择运行节点
    etcd: 键值数据库,作为保存K8S数据的后台库
    node: 工作节点,应用pod就分布在此节点上。
  • 主要资源对像有:
    namespace,隔离不同生产环境pod;
    pod: k8s的最小任务调度单元。一般一个pod运行一个容器。
    volume: 据据卷,用于容器的挂载
    deployment:pod控制器,扩容缩容,监控pod删除自动重启。

6:

  • k8s 中pod是运行应用服务的,但是pod不能直接被访问,为了解决这个问题,于是就有了k8s service的应用场景
  • 主要类型有:
    ClusterIP(集群IP):只能集群内使用
    NodePort:手动设置的静态端口,业务繁多不建议。
    LoadBalancer:常用的服务类型。是一个负载均衡器服务,
    在每个 pod 上运行并建立与外部世界的连接。

7:

  • Ingress是Kubernetes中的一种资源对象,它充当着应用程序的入口点,负责将外部流量路由到集群中的服务。只需一个或者少量的公网IP和LB,即可同时将多个HTTP服务暴露到外网,七层反向代理。ingress需要通过Ingress Controller来实现具体功能。将以Pod的形式运行,监控API Server的/ingress接口后端的backend services,如果Service发生变化,则Ingress Controller应自动更新其转发规则。

8:

  • Kubernetes Autoscaling 是根据应用程序的资源使用情况自动调整副本数,以保证应用程序的高可用性和性能的功能。它通过监控指标(例如 CPU 使用率或内存使用率)来评估应用程序的负载情况,并根据预定义的规则进行自动伸缩操作。在 Kubernetes 中,有两种类型的 Autoscaling:水平和垂直。水平Autoscaling是增加或减少正在运行的副本数量,而垂直Autoscaling则是增加或减少每个副本的资源量。

9:

  • Jenkins Pipeline是一套运行于Jenkins上的工作流框架,能将原本独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂流程编排与可视化。
  • Jenkins Pipeline的优点主要有以下几点:
    可持续性:即使Jenkins重启或者中断后,Pipeline的工作流程也不会受到影响。
    提供了可视化界面:方便管理人员进行项目进度的监控。
    提高效率:可以自动化管理项目的构建、测试和发布流程,可以大幅提高工作效率,减少人工干预和错误。
    增强可扩展性:Jenkins Pipeline支持使用各种插件进行功能扩展,可以根据项目的实际需求定制和扩展相应的功能。

10:

  • Jenkinsfile是Jenkins Pipeline的核心组成部分,它以代码的形式保存了持续集成中的流水线构成,并能结合源代码管理系统(如Git)进行保存。Jenkinsfile定义了一系列任务(或步骤),这些任务在Jenkins服务器上按照特定的顺序执行,以实现持续集成和持续交付。
    Jenkinsfile的用途是驱动整个CI/CD流程。在Jenkins中,用户可以编写自己的Jenkinsfile来定制化流水线,包括从代码检查、构建、测试、发布到部署的整个过程。

11:

  • Jenkins环境变量在构建过程中扮演着重要的角色,它们可以被视为Jenkins和pipeline交互的媒介。这些环境变量可以暴露Jenkins内置环境变量,也可以使用自定义变量,它们为构建任务提供了便利和效率。
    Jenkins环境变量是一种强大的工具,它可以提高构建过程的效率和透明度,同时也可以简化配置和优化工作效率。

12:

  • 生产环境部署失败后处理:
    1:查看发布时间,标记错误日志记录。
    2:回滚,保证正常对外服务。
    3:查看监控记录,初步判断失败原因。
    4:如果是代码问题下载相关应用错误日志并交与开发,如果是硬件问题,则根据运维经验去判断。

13:

  • 以下是Kubernetes YAML、Helm Chart和Kustomize在不同方面的比较描述:
  1. 模板化:
    - Kubernetes YAML: 使用原生Kubernetes对象定义。使用Kustomize等工具的模板能力有限。
    - Helm Chart: 提供强大的Go模板语言,允许动态生成Kubernetes清单。
    - Kustomize: 提供内置的强大模板功能,支持自定义Kubernetes清单,包括叠加和补丁。
    1. 可重用性:
      - Kubernetes YAML: 清单可以被重用,但常常存在重复和手动管理的问题。
      - Helm Chart: 通过包(charts)促进模块化和可重用性,更容易共享和管理应用程序。
      - Kustomize: 通过基本配置和叠加,实现清单的重用,减少重复,提高可维护性。
    1. 依赖管理:
      - Kubernetes YAML: 没有内置的依赖管理。依赖关系需要手动处理。
      - Helm Chart: 支持依赖管理,允许图表依赖其他图表,简化复杂应用程序的设置。
      - Kustomize: 没有原生的依赖管理,但如果需要可以与Helm结合处理依赖关系。
    1. 配置:
      - Kubernetes YAML: 配置通常硬编码在YAML文件中,难以管理动态或特定于环境的设置。
      - Helm Chart: 提供值文件和模板,灵活配置。在部署期间可以覆盖值,便于管理配置。
      - Kustomize: 允许通过补丁自定义配置,适用于管理不同环境和场景。
    1. 更新/回滚:
      - Kubernetes YAML: 更新通常需要手动修改YAML文件。回滚可能需要手动还原先前的状态。
      - Helm Chart: 支持更新和回滚,可以轻松地管理应用程序的版本和状态。
      - Kustomize: 具有灵活的更新和回滚功能,可以通过不同的补丁版本管理应用程序的状态。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值