首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >跟踪失败的Kubernetes作业日志

跟踪失败的Kubernetes作业日志
EN

Stack Overflow用户
提问于 2021-09-16 09:08:55
回答 2查看 454关注 0票数 0

我有以下项目:

代码语言:javascript
复制
database-migration/
    migration.yml
    kustomization.yml

其中kustomization.yml看起来像:

代码语言:javascript
复制
resources:
  - migration.yml
images:
  - name: enterprise-server
    newTag: 2020.12-6243
    newName: example/enterprise-server
configMapGenerator:
  - name: database-config
    literals:
      - ADMIN_REPOSITORY_URL=jdbc:postgresql://10.1.0.34:5432/app_db
      - AGENT_REPOSITORY_URL=jdbc:postgresql://10.1.0.34:5432/app_db
      - DB_CONNECTION_IDLE_TIMEOUT=60000
      - DB_CONNECTION_MAX_LIFETIME_TIMEOUT=120000
secretGenerator:
  - name: database-credentials
    literals:
      - ADMIN_REPOSITORY_USERNAME=app_admin
      - ADMIN_REPOSITORY_CONNECTION_USERNAME=app_admin@10.1.0.34
      - ADMIN_REPOSITORY_PASSWORD=12345
      - AGENT_REPOSITORY_USERNAME=app_agent
      - AGENT_REPOSITORY_CONNECTION_USERNAME=app_agent@10.1.0.34
      - AGENT_REPOSITORY_PASSWORD=23456
commonLabels:
  app.kubernetes.io/version: 2020.12-6243
  app.kubernetes.io/part-of: myapp

migration.yml看起来是这样的:

代码语言:javascript
复制
apiVersion: batch/v1
kind: Job
metadata:
  name: database-migration
  labels:
    app.kubernetes.io/name: database-migration
    app.kubernetes.io/component: database-migration
spec:
  template:
    metadata:
      labels:
        app.kubernetes.io/name: database-migration
        app.kubernetes.io/component: database-migration
    spec:
      containers:
        - name: database-migration
          image: enterprise-server
          env:
            - name: CLOUD_ENVIRONMENT
              value: KUBERNETES
          envFrom:
            - configMapRef:
                name: database-config
            - secretRef:
                name: database-credentials
          command: ['sh', '-c', '/usr/local/app_enterprise/bin/databaseMigration || [ $? -eq 15 ]; exit $?']
      restartPolicy: Never

当我跑步时:

代码语言:javascript
复制
kubectl create ns appdb
kubectl -n appdb apply -k database-migration
kubectl -n appdb wait --for=condition=complete --timeout=10m job/database-migration

它只挂了10分钟,然后就失败了:

代码语言:javascript
复制
error: timed out waiting for the condition on jobs/database-migration

我想要跟踪日志,或者只是查看日志(即使是事后),但不确定如何为已失败的作业获取日志,也不确定如何跟踪正在进行的作业的日志。有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-09-16 13:29:44

作业创建用于执行的吊舱。您只需检查豆荚(或所有元素)。

kubectl -n appdb get all

然后请求豆荚的日志,例如

kubectl -n appdb logs -f database-migration-xyz123

票数 2
EN

Stack Overflow用户

发布于 2021-09-16 13:32:29

关于Kustomization的几点注记

如果您正在使用

  • ,那么显然也可以将其用于创建Namesapce

,我想跟踪日志,或者只看日志

为了查看或跟踪日志:

代码语言:javascript
复制
# get the name of your Job Pod and get the logs
kubectl logs -n <namespace> jox-xxxxx

# To tail your logs (follow)
kubectl logs -n <namespace> -f jox-xxxxx

如何获得“崩溃”作业的日志?

  • 添加--previous标志

代码语言:javascript
复制
# Add the `--previous` flag to your logs command
kubectl logs -n <namespace> jox-xxxxx --previous

日志输出示例

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69205527

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档