产品使用 FAQ
如何查询服务日志
目前,产品支持两种方式查询服务日志:页面查询和原生 kubectl 工具查询。 两种不同方式的主要适用场景如下:
- ZadigX 页面查询:可以支持查询日志在标准输出
Stdout
或重定向到日志文件
中的情况。 - kubectl 工具:既可以通过命令查询
Stdout
中的输出,也可直接登入容器进行操作。
提示
ZadigX 提供两种方式,用户可自行选择,对于熟悉 K8s 的用户,推荐使用 kubectl 工具
页面查询
首先,检查服务是否处于 running
状态。如果服务容器非正常 running
,那么可进入服务详情页面查看 错误信息
或者通过 查看事件
来排查服务未能正常启动的原因,如下图所示。
查询实时日志
如果服务运行正常且服务的日志输出在 Stdout
中,那么可以在服务详情页面中,点击 实时日志
来查看服务的日志,如下所示。
查询文件日志
如果服务运行正常且服务的日志输出在日志文件
中,那么可以在服务详情页面中,点击 调试
登入容器查看日志存放的文件,如下所示。
kubectl 工具查询 (安装方式 (opens new window))
获取 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 官方文档 (opens new window)
如何访问环境中的数据库服务
4 种方式:
- 给这个数据库服务单独配置一个 Ingress,通过 Ingress 方式访问数据库,不过可能存在安全问题,因为等于将你的数据库服务暴露在公网上。
- 数据库服务的 Service 改成 LoadBalancer 类型,集群自动分配公网 IP 给这个数据库服务,同样可能存在安全问题。
- 本地通过 kubectl port-forward 来转发。
- 使用 kubectl 或者系统「调试」功能进入容器访问。
Jenkins 构建是否可以在不添加构建参数的情况下,直接使用构建出来的镜像版本替换服务镜像版本?
不可以。由于 Jenkins 对外接口的局限性,导致无法直接从 Jenkins Job 中获取镜像信息。所以目前必须在 Jenkins Build Parameters 中声明 “IMAGE” 变量,ZadigX 工作流的部署步骤才可以识别使用哪个镜像去部署。
项目下有很多服务,为服务一个一个的添加构建配置太繁琐,如何优化?
可以在一个构建配置中支持多个服务的构建,举例说明如下:
- 在
构建服务
中按需选择多个服务 - 在
依赖的软件包
中为多个服务配置构建所需的软件包 - 在
代码信息
中为多个服务配置构建所需的代码库 - 在
构建脚本
中,巧用$SERVICE
变量,自由组织不同服务的构建实现
Webhook 在系统中有哪些使用场景?
- 从代码库同步创建 K8s YAML 服务/K8s Helm Chart 服务,当代码库中服务配置变更后,通过 Webhook 可以实现在代码仓库中托管的服务配置变更实时同步到 ZadigX 系统上。
- 通过配置工作流 Webhook 可以实现代码 Push 到代码库以及提交 Pull Request(Merge Request) 时触发工作流的运行,实现从提交到构建自动化的流程,具体可以参考代码变更触发工作流。