Zadig 文档
Zadig
关于
Zadig
关于
v1.10.0
Loading...
      编辑文档
      反馈问题
      Slack 上联系我们

    本页导航

    产品使用 FAQ

    # 如何查询服务日志

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

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

    提示

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

    # 页面查询

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

    容器异常

    # 查询实时日志

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

    实时日志

    # 查询文件日志

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

    pod debug

    # kubectl 工具查询 (安装方式 (opens new window))

    # 获取 kubectl 配置

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

    mv ./config $HOME/.kube
    
    1

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

    # kubectl 查询服务日志

    # 查看服务容器列表

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

    kubectl get po -n <命名空间>
    
    1

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

    命名空间

    命令执行结果如下所示

    查看服务容器列表

    # 查询标准输出日志

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

    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
    
    1
    2
    3
    4

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

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

    更多 Kubectl 的命令行操作,详见 kubectl 官方文档 (opens new window)

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

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

    # 系统创建出来的 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) 时触发工作流的运行,实现从提交到构建自动化的流程,具体可以参考代码变更触发工作流。

    ← 工作流 部署运维 FAQ→

    资源
    文档
    博客
    公司
    关于我们
    加入我们
    联系我们
    微信扫一扫
    hello@koderover.com
    上海市浦东软件园

    © 2022 筑栈(上海)信息技术有限公司 沪 ICP 备 19000177 号 - 1

    •  跟随系统
    •  浅色模式
    •  深色模式
    •  阅读模式