【问题标题】:How to get logs of deployment from Kubernetes?如何从 Kubernetes 获取部署日志?
【发布时间】:2020-06-16 12:12:44
【问题描述】:

我正在 Kubernetes 集群 (v1.15.2) 中创建 InfluxDB 部署,这是我的 yaml 文件:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: monitoring-influxdb
  namespace: kube-system
spec:
  replicas: 1
  template:
    metadata:
      labels:
        task: monitoring
        k8s-app: influxdb
    spec:
      containers:
      - name: influxdb
        image: registry.cn-hangzhou.aliyuncs.com/google_containers/heapster-influxdb-amd64:v1.5.2
        volumeMounts:
        - mountPath: /data
          name: influxdb-storage
      volumes:
      - name: influxdb-storage
        emptyDir: {}
---
apiVersion: v1
kind: Service
metadata:
  labels:
    task: monitoring
    # For use as a Cluster add-on (https://github.com/kubernetes/kubernetes/tree/master/cluster/addons)
    # If you are NOT using this as an addon, you should comment out this line.
    kubernetes.io/cluster-service: 'true'
    kubernetes.io/name: monitoring-influxdb
  name: monitoring-influxdb
  namespace: kube-system
spec:
  ports:
  - port: 8086
    targetPort: 8086
  selector:
    k8s-app: influxdb

这是 pod 状态:

$ kubectl get deployment -n kube-system
NAME                   READY   UP-TO-DATE   AVAILABLE   AGE
coredns                1/1     1            1           163d
kubernetes-dashboard   1/1     1            1           164d
monitoring-grafana     0/1     0            0           12m
monitoring-influxdb    0/1     0            0           11m

现在,我已经等了 30 分钟,但仍然没有可用的 pod,如何从命令行查看部署日志?我现在无法访问 Kubernetes 仪表板。我正在搜索命令以获取 pod 日志,但现在没有可用的 pod。我已经尝试在节点中添加标签:

kubectl label nodes azshara-k8s03 k8s-app=influxdb

这是我的部署描述内容:

$ kubectl describe deployments monitoring-influxdb -n kube-system
Name:                   monitoring-influxdb
Namespace:              kube-system
CreationTimestamp:      Wed, 04 Mar 2020 11:15:52 +0800
Labels:                 k8s-app=influxdb
                        task=monitoring
Annotations:            kubectl.kubernetes.io/last-applied-configuration:
                          {"apiVersion":"extensions/v1beta1","kind":"Deployment","metadata":{"annotations":{},"name":"monitoring-influxdb","namespace":"kube-system"...
Selector:               k8s-app=influxdb,task=monitoring
Replicas:               1 desired | 0 updated | 0 total | 0 available | 0 unavailable
StrategyType:           RollingUpdate
MinReadySeconds:        0
RollingUpdateStrategy:  1 max unavailable, 1 max surge
Pod Template:
  Labels:  k8s-app=influxdb
           task=monitoring
  Containers:
   influxdb:
    Image:        registry.cn-hangzhou.aliyuncs.com/google_containers/heapster-influxdb-amd64:v1.5.2
    Port:         <none>
    Host Port:    <none>
    Environment:  <none>
    Mounts:
      /data from influxdb-storage (rw)
  Volumes:
   influxdb-storage:
    Type:        EmptyDir (a temporary directory that shares a pod's lifetime)
    Medium:
    SizeLimit:   <unset>
OldReplicaSets:  <none>
NewReplicaSet:   <none>
Events:          <none>

这是获取日志的另一种方式:

$ kubectl -n kube-system logs -f deployment/monitoring-influxdb
error: timed out waiting for the condition

此命令没有输出:

kubectl logs --selector k8s-app=influxdb

kube-system 命名空间中有我所有的 pod:

~/Library/Mobile Documents/com~apple~CloudDocs/Document/k8s/work/heapster/heapster-deployment ⌚ 11:57:40
$ kubectl get pods -n kube-system
NAME                                  READY   STATUS    RESTARTS   AGE
coredns-569fd64d84-5q5pj              1/1     Running   0          46h
kubernetes-dashboard-6466b68b-z6z78   1/1     Running   0          11h
traefik-ingress-controller-hx4xd      1/1     Running   0          11h

【问题讨论】:

  • kubectl logs 不给你所有的细节?
  • 如何使用 kubectl 日志获取部署信息?@KhanhLeTran
  • kubectl logs --selector app=yourappname 试试这个以获得更多信息
  • 你可以试试这个,kubectl describe pod -n kube-system &lt;influxdb-podName&gt; 吗?

标签: kubernetes


【解决方案1】:
kubectl logs deployment/<name-of-deployment> # logs of deployment
kubectl logs -f deployment/<name-of-deployment> # follow logs

【讨论】:

  • 这应该是公认的答案
【解决方案2】:

您可以尝试kubectl describe deploy monitoring-influxdb 以获取有关部署的一些高级视图,也许这里有一些信息。

如需更详细的日志,请先获取 pod:kubectl get po 然后,请求 pod 日志:kubectl logs &lt;pod-name&gt;

【讨论】:

  • 您能告诉我如何查看具有其凭据的 kubernetes 用户已完成部署
【解决方案3】:

添加两个可以帮助您查看集群日志的优秀工具的参考:

  1. 如果您希望在不使用“繁重”的第 3 方日志记录解决方案的情况下从终端查看日志,我会考虑使用 K9S,这是一个出色的 CLI 工具,可帮助您控制集群。

  2. 如果您不仅绑定到 CLI 并且仍想在本地运行,我建议您使用 Lens

【讨论】:

    猜你喜欢
    • 2019-05-20
    • 2018-09-09
    • 2017-12-24
    • 1970-01-01
    • 1970-01-01
    • 2019-06-04
    • 2023-02-05
    • 1970-01-01
    • 2019-07-21
    相关资源
    最近更新 更多