我在GKE上有一些cron职位。
其中一个吊舱确实终止了,现在我正在尝试访问日志。
➣ $ kubectl get events
LAST SEEN TYPE REASON KIND MESSAGE
23m Normal SuccessfulCreate Job Created pod: virulent-angelfish-cronjob-netsuite-proservices-15622200008gc42
22m Normal SuccessfulDelete Job Deleted pod: virulent-angelfish-cronjob-netsuite-proservices-15622200008gc42
22m Warning DeadlineExceeded Job Job was active longer than specified deadline
23m Normal Scheduled Pod Successfully assigned default/virulent-angelfish-cronjob-netsuite-proservices-15622200008gc42 to staging-cluster-default-pool-4b4827bf-rpnl
23m Normal Pulling Pod pulling image "gcr.io/my-repo/myimage:v8"
23m Normal Pulled Pod Successfully pulled image "gcr.io/my-repo/my-image:v8"
23m Normal Created Pod Created container
23m Normal Started Pod Started container
22m Normal Killing Pod Killing container with id docker://virulent-angelfish-cronjob:Need to kill Pod
23m Normal SuccessfulCreate CronJob Created job virulent-angelfish-cronjob-netsuite-proservices-1562220000
22m Normal SawCompletedJob CronJob Saw completed job: virulent-angelfish-cronjob-netsuite-proservices-1562220000
所以至少要进行一次CJ奔跑。
我想看豆荚的日志,但是那里什么也没有
➣ $ kubectl get pods
No resources found.
鉴于在我的cj定义中,我有:
failedJobsHistoryLimit: 1
successfulJobsHistoryLimit: 3
我不应该至少有一个吊舱供我进行取证吗?
答案 0 :(得分:0)
您可以使用--previous
标志获取上一个容器的日志。
因此,您可以使用:
kubectl logs --previous virulent-angelfish-cronjob-netsuite-proservices-15622200008gc42
获取该容器之前的容器的日志。
答案 1 :(得分:0)
您的广告连拍崩溃或不健康
首先,查看当前容器的日志:
kubectl logs ${POD_NAME} ${CONTAINER_NAME}
如果您的容器以前曾崩溃过,则可以通过以下方式访问先前容器的崩溃日志:
kubectl logs --previous ${POD_NAME} ${CONTAINER_NAME}
或者,您可以使用exec在该容器内运行命令:
kubectl exec ${POD_NAME} -c ${CONTAINER_NAME} -- ${CMD} ${ARG1} ${ARG2} ... ${ARGN}
注意:-c ${CONTAINER_NAME}
是可选的。您可以为仅包含一个容器的Pod忽略它。
例如,要查看正在运行的Cassandra窗格中的日志,可以运行:
kubectl exec cassandra -- cat /var/log/cassandra/system.log
如果这些方法都不起作用,则可以找到运行Pod的主机并通过SSH进入该主机。
最后,选中“登录Google StackDriver”。
调试豆荚
调试Pod的第一步就是看一下它。使用以下命令检查窗格的当前状态和最近的事件:
kubectl describe pods ${POD_NAME}
查看容器中容器的状态。他们都在跑步吗?最近有重启吗?
根据Pod的状态继续调试。
调试ReplicationControllers
ReplicationControllers非常简单。他们可以创建广告连播,也可以不创建。如果他们无法创建Pod,请参考上面的说明调试Pod。
您还可以使用kubectl describe rc ${CONTROLLER_NAME}
检查与复制控制器有关的事件。
希望它可以帮助您找到确切的问题。