云效DevOps中的Kubernetes发布失败[阿里云]

一、问题描述

今天是我第一次接触云效DevOps,学习过程很坎坷,主要原因还是我本身不太懂Kubernetes操作。

Kubernetes发布失败,日志打印:


[executionStep begins at 2023-11-26 08:00:37]
[INFO] PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
  [92m[08:00:37] [SUCCESS] 获取 Credential 成功
  [1m[08:00:37] [INFO] 使用工作路径/root/workspace/wyg-cloud_docker
  [1m[08:00:37] [INFO] 执行步骤
[08:00:37] [INFO] PIPELINE_ID=2739453
[08:00:37] [INFO] PIPELINE_NAME=wyg-cloud-dev
[08:00:37] [INFO] BUILD_NUMBER=20
[08:00:37] [INFO] EMPLOYEE_ID=6561dba7654eaaddc60b1816
[08:00:37] [INFO] WORK_SPACE=/root/workspace
[08:00:37] [INFO] PROJECT_DIR=/root/workspace/wyg-cloud_docker
[08:00:37] [INFO] PLUGIN_DIR=/root/plugins
[08:00:37] [INFO] BUILD_JOB_ID=169481356
[08:00:37] [INFO] DEBUG=false
[08:00:37] [INFO] USE_REPLACE=true
[08:00:37] [INFO] SKIP_UNDEFINE_VARIABLE=true
[08:00:37] [INFO] ENABLE_APPSTACK_RELEASE_ORDER=false
[08:00:37] [INFO] SYSTEM_STEPS_STANDALONE_MODE=true
[08:00:37] 
[08:00:37] ====================================
[08:00:37]     CLUSTER TYPE ack    
[08:00:37] ====================================
[08:00:37] 
[08:00:37] 
[08:00:37] [USER] KUBECTL_VERSION=v1.23.6
[08:00:37] [USER] CLUSTER_TYPE=ack
[08:00:37] [USER] NAMESPACE=default
[08:00:37] [USER] PATH_TO_YAML=/root/workspace/wyg-cloud_docker/
[08:00:37] [USER] INSECURE_SKIP_TLS_VERIFY=true
[08:00:37] 
[08:00:37] [INFO] Kubernetes集群基本信息
[08:00:37] Client Version: v1.23.6
[08:00:37] Server Version: v1.26.3-aliyun.1
[08:00:37] WARNING: version difference between client (1.23) and server (1.26) exceeds the supported minor version skew of +/-1
[08:00:37] 
[08:00:37] [INFO] 准备应用Manifests定义文件
[08:00:37] [INFO] 创建发布资源缓存目录.manifest
[08:00:37] {}
[08:00:37] [INFO] YAML模板处理成功 /root/workspace/wyg-cloud_docker/ -> .manifest
[08:00:37] [INFO] 所有部署资源:
[08:00:37] /root/workspace/wyg-cloud_docker/.manifest:
[08:00:37] total 0
  [91m[08:00:37] [ERROR] 没有找到发布的资源,请检查YAML路径配置
  [91m[08:00:37] [ERROR] BUILD ERROR
  [91m[08:00:37] [ERROR] 169481356
  [91m[08:00:37] [ERROR] 步骤运行失败,返回码: 1

日志中所提的YAML文件确实不懂,隐约有印象,但是不知道在哪里

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
=====这是一个广告位,招租中,联系qq 78315851====
3 条回复 A 作者 M 管理员
  1. 从你提供的日志来看,这个问题出现在Kubernetes的部署步骤中,具体是找不到需要应用的YAML文件。在Kubernetes中,YAML文件用于描述你想要部署的资源,例如Pods、Services、Deployments等。

    这里有几个步骤可以帮助你解决这个问题:

    1. 确认YAML文件的存在

      • 确保你有一个或多个YAML文件定义了你想要部署的Kubernetes资源。
      • 检查这些文件是否已经放在了正确的路径下。根据日志,系统期望在/root/workspace/wyg-cloud_docker/路径下找到这些文件。
    2. 检查YAML路径配置

      • 在CI/CD的配置中,检查是否正确设置了YAML文件的路径。
      • 如果你的YAML文件不在/root/workspace/wyg-cloud_docker/,需要更新CI/CD配置以指向正确的路径。
    3. 检查YAML文件的内容

      • 如果YAML文件确实存在,打开它们确认内容是否正确,没有语法错误。
      • 可以在本地使用kubectl apply -f .yaml --dry-run=client来检查YAML文件的有效性,这个命令会在不实际部署的情况下进行检查。
    4. 版本兼容性问题

      • 日志中提到了客户端版本和服务器版本之间的不兼容问题。尽管这可能不是造成当前问题的直接原因,但建议确保你使用的kubectl客户端版本与Kubernetes集群的版本兼容。
    5. 检查权限问题

      • 确保你在CI/CD流水线中的执行环境有足够的权限去访问YAML文件所在的目录。
    6. 查看更详细的日志

      • 如果以上步骤都确认无误,但问题仍然存在,尝试查看更详细的日志或开启调试模式来获取更多信息。
  2. 如果您的云效 DevOps 中 Kubernetes 发布失败,可能是由多种原因导致的。以下是可能导致 Kubernetes 发布失败的一些常见原因:

    配置错误:确保所有必要的环境变量都已经正确地设置,并且它们具有正确的值。
    网络问题:确认网络连接正常,并且没有任何防火墙阻止与 Kubernetes 集群的通信。
    存储限制:检查是否有足够的存储空间可用于容器映像和持久卷。
    节点问题:检查节点的状态,以确保它们正在运行并且能够接受新任务。
    兼容性问题:确认应用程序和 Kubernetes 版本之间的兼容性。
    权限问题:确认使用的角色有足够的权限来执行操作。

  3. 它可以帮助你自动化部署、扩展和管理容器化应用程序。在Kubernetes中,YAML文件是用于定义应用程序的部署方式的一种方式。这些文件通常包含有关应用程序的容器、服务、卷和其他组件的信息。
    如果你在云效DevOps中遇到了Kubernetes发布失败的问题,那么可能的原因有很多。以下是一些可能的原因和解决方法:

    1. YAML文件错误:这可能是最常见的问题。YAML文件可能没有正确地定义应用程序的部署方式,或者可能包含语法错误。你可以检查你的YAML文件,确保它正确地定义了你的应用程序,并且没有语法错误。
    2. 缺少配置文件:如果你的应用程序需要配置文件,那么可能需要在你的Kubernetes部署中包含这些文件。你可以检查你的应用程序的文档,确保你包含了所有需要的配置文件。
    3. 网络问题:如果你的应用程序需要访问外部资源,那么可能需要确保你的Kubernetes部署中的网络设置正确。你可以检查你的Kubernetes网络配置,确保它正确地定义了你的应用程序的网络需求。
    4. 权限问题:如果你的应用程序需要访问受保护的资源,那么可能需要确保你的Kubernetes部署中的权限设置正确。你可以检查你的Kubernetes权限配置,确保它正确地定义了你的应用程序的权限需求。
    5. 资源不足:如果你的应用程序需要大量的资源,那么可能需要确保你的Kubernetes部署中有足够的资源可用。你可以检查你的Kubernetes资源配置,
  4. 云效DevOps中的Kubernetes发布失败可能是由于多种原因导致的。以下是一些可能的原因和解决方案:

    集群资源不足:如果Kubernetes集群的资源不足,例如CPU、内存等,会导致发布失败。在这种情况下,可以尝试减少发布的服务数量或降低服务配置的资源需求。
    网络问题:网络问题可能会导致Kubernetes发布失败。检查集群的网络设置,确保集群内的节点可以相互通信。
    配置错误:错误的配置可能导致Kubernetes发布失败。检查Kubernetes配置文件,确保配置正确。
    依赖项问题:如果发布的镜像、配置文件或其他依赖项存在问题,会导致发布失败。检查依赖项是否正确,并确保它们可访问。
    权限问题:如果Kubernetes管理员没有足够的权限来执行发布操作,会导致发布失败。检查Kubernetes管理员的权限设置,确保他们具有执行发布所需的权限。
    版本不兼容:如果Kubernetes集群的版本与要发布的镜像不兼容,会导致发布失败。检查Kubernetes集群的版本和要发布的镜像的版本,确保它们兼容。
    持久化存储问题:如果Kubernetes持久化存储存在问题,例如存储类不正确或存储空间不足,会导致发布失败。检查持久化存储的设置和可用性,确保它们正确且足够可用。
    集群自动伸缩问题:如果Kubernetes集群没有正确配置自动伸缩功能,可能会导致发布失败。检查集群自动伸缩的配置,确保它正确地根据需求自动伸缩集群。
    以上是一些可能导致云效DevOps中Kubernetes发布失败的原因和解决方案。根据实际情况进行排查和处理,可以帮助解决问题。

    相关文档 请点击此处