Zadig v1.18.0 文档
  • 快速入门

    • 什么是 Zadig
    • 核心概念
    • 快速安装
    • 第一个项目
    • 接入准备
  • 安装与配置

    • 安装简介
    • All in One 模式
    • 使用 Sealos 一键安装
    • 基于 Helm 命令安装
    • 基于现有 Kubernetes 安装
    • 本地安装
    • 兼容性列表
  • 最佳实践
  • 项目

    • 项目

      • 项目介绍
      • K8s YAML 项目
      • K8s Helm Chart 项目
      • K8s 托管项目
      • 主机项目
      • 权限管理
    • 工作流

      • 简介
      • 产品工作流
      • 自定义工作流
      • 工作流任务
      • 工作流审批
      • 工作流通知
      • 工作流触发器
    • 环境

      • K8s YAML 环境
      • K8s Helm Chart 环境
      • K8s 托管环境
      • 主机环境
      • 服务详情
    • 服务

      • 简介
      • K8s YAML 测试服务
      • K8s Helm Chart 服务
      • K8s 托管服务
      • 服务组件
      • 服务变量
      • 主机服务
    • 构建
    • 测试
    • 代码扫描
  • 模板库

    • K8s YAML 模板
    • Helm Chart 模板
    • Dockerfile 模板
    • 构建模板
  • 工作流

    • 工作流的触发
    • 工作流的构建缓存
    • 工作流任务的并发运行
    • 工作流的镜像版本回退
    • 工作流的变量传递
  • 环境

    • 环境的负载均衡
    • 配置多套环境
    • 自测联调环境
  • 测试中心

    • 测试中心
    • 测试工具实践
    • Apipost 测试平台接入
    • Apifox 测试平台接入
  • 交付中心

    • 交付物追踪
  • 数据视图

    • 数据概览
    • 效能洞察
  • 仪表盘

    • 仪表盘
  • 集成管理

    • 账号系统

      • LDAP
      • OAuth 2.0
      • GitHub
    • 项目管理
    • 代码源

      • 简介
      • GitLab 集成
      • GitHub 集成
      • Gerrit 集成
      • Gitee 公有云集成
      • 其他代码源集成
    • CI/CD 工具
    • 代码扫描
    • 镜像仓库
    • 对象存储
    • Helm 仓库
    • Kubernetes 集群
    • 主机管理
    • 其他系统
    • 软件包管理
    • 自定义镜像管理
  • 系统设置

    • 系统配置
    • 用户管理
    • 公告管理
    • 操作日志
    • 通知设置
  • 账号设置

    • 偏好设置
  • 开发者中心

    • OpenAPI 开发文档

      • API 调用方式
      • 交付中心
      • 工作流
      • 效能洞察
    • 外部系统接入开发文档

      • 自定义账号系统
      • 自定义工作流任务
    • VS Code Toolkit 插件

      • 使用指南
  • 常见问题

    • 产品使用 FAQ
    • 部署运维 FAQ
    • 集群故障 FAQ
    • 认证鉴权 FAQ
    • 诊断手册
  • 版本发布历史

    • Zadig Roadmap
    • v1.18.0 Release Notes
    • v1.17.0 Release Notes
    • v1.16.0 Release Notes
    • v1.15.0 Release Notes
    • v1.14.0 Release Notes
    • v1.13.0 Release Notes
    • v1.12.0 Release Notes
    • v1.11.0 Release Notes
    • v1.10.0 Release Notes
    • v1.9.0 Release Notes
    • v1.8.0 Release Notes
    • v1.7.1 Release Notes
    • v1.7.0 Release Notes
    • v1.6.0 Release Notes
    • v1.5.0 Release Notes
    • v1.4.0 Release Notes
    • v1.3.1 Release Notes
    • v1.3.0 Release Notes
    • v1.2.0 Release Notes
    • v1.1.0 Release Notes
    • v1.0.0 Release Notes
    • v1.0.0-rc.1 Release Notes
  • 术语表

    • 术语表

如何查询服务日志

目前,产品支持两种方式查询服务日志:页面查询和原生 kubectl 工具查询。 两种不同方式的主要适用场景如下:

  • Zadig 页面查询:可以支持查询日志在标准输出 Stdout或重定向到 日志文件 中的情况。
  • kubectl 工具:既可以通过命令查询 Stdout 中的输出,也可直接登入容器进行操作。

提示

Zadig 提供两种方式,用户可自行选择,对于高级用户,推荐使用 kubectl 工具

页面查询

首先,检查服务是否处于 running 状态。如果服务容器非正常 running,那么可进入服务详情页面查看 错误信息 或者通过 查看事件 来排查服务未能正常启动的原因,如下图所示。

容器异常

查询实时日志

如果服务运行正常且服务的日志输出在 Stdout 中,那么可以在服务详情页面中,点击 实时日志 来查看服务的日志,如下所示。

实时日志

查询文件日志

如果服务运行正常且服务的日志输出在日志文件中,那么可以在服务详情页面中,点击 调试 登入容器查看日志存放的文件,如下所示。

pod debug

kubectl 工具查询 (安装方式)

获取 kubectl 配置

进入用户设置 页面,下载自己的私钥配置。将获得的 config 文件移动到 kubectl 的默认文件夹下。

mv ./config $HOME/.kube

配置完成后,即可使用 kubectl 访问集群。

kubectl 查询服务日志

查看服务容器列表

执行以下命令,获得对应服务的pod信息

kubectl get po -n <命名空间>

命名空间可在下图位置找到:

命名空间

命令执行结果如下所示

查看服务容器列表

查询标准输出日志

执行以下命令,获取标准输出日志

kubectl logs  <podname> -n <命名空间>
#查看历史 log,例:kubectl logs vote-rc-origin-f569f57d7-v445j -n voting-env-dev
kubectl logs -f <podname> -n <命名空间>
#类似 tail -f,例:kubectl logs  -f vote-rc-origin-f569f57d7-v445j -n voting-env-dev

更多 logs 用法,详见 kubectl logs -h

登入服务容器,查看日志文件里的内容
kubectl exec -it <podname> bash -n <命名空间>
#登入容器,可对容器内的文件进行操作

更多 Kubectl 的命令行操作,详见 kubectl 官方文档

如何把 Pod 多个副本调度到不同区域的节点上

可以在写 YAML 的时候增加 Pod 的反亲和性调度策略利用 Kubernetes 本身的一些特性来解决。详见Kubernetes 文档

系统创建出来的 Ingress 可以正常工作,本地用 kubectl apply 为什么不可以?

因为 Zadig 创建的 Ingress 的时候会自动添加 kubernetes.io/ingress.class 描述使用的 Ingress class,所以手动 kubectl apply 使用的 YAML 也需要加上这项。

如何访问环境中的数据库服务

4 种方式:

  1. 给这个数据库服务单独配置一个 Ingress,通过 Ingress 方式访问数据库,不过可能存在安全问题,因为等于将你的数据库服务暴露在公网上。
  2. 数据库服务的 Service 改成 LoadBalancer 类型,集群自动分配公网 IP 给这个数据库服务,同样可能存在安全问题。
  3. 本地通过 kubectl port-forward 来转发。
  4. 使用 kubectl 或者系统「调试」功能进入容器访问。

Jenkins 构建是否可以在不添加构建参数的情况下,直接使用构建出来的镜像版本替换服务镜像版本?

不可以。由于 Jenkins 对外接口的局限性,导致无法直接从 Jenkins Job 中获取镜像信息。所以目前必须在 Jenkins Build Parameters 中声明 "IMAGE" 变量,Zadig 工作流的部署步骤才可以识别使用哪个镜像去部署。

项目下有很多服务,为服务一个一个的添加构建配置太繁琐,如何优化?

可以在一个构建配置中支持多个服务的构建,举例说明如下:

  1. 在构建服务中按需选择多个服务
  2. 在依赖的软件包中为多个服务配置构建所需的软件包
  3. 在代码信息中为多个服务配置构建所需的代码库
  4. 在构建脚本中,巧用 $SERVICE 变量,自由组织不同服务的构建实现

构建配置支持多个服务

Webhook 在系统中有哪些使用场景?

  1. 从代码库同步创建 K8s YAML 服务/K8s Helm Chart 服务,当代码库中服务配置变更后,通过 Webhook 可以实现在代码仓库中托管的服务配置变更实时同步到 Zadig 系统上。
  2. 通过配置工作流 Webhook 可以实现代码 Push 到代码库以及提交 Pull Request(Merge Request) 时触发工作流的运行,实现从提交到构建自动化的流程,具体可以参考代码变更触发工作流。
Next
部署运维 FAQ