温馨提示×

centos k8s部署日志在哪查看

小樊
58
2025-07-15 00:09:59
栏目: 智能运维

在CentOS上部署Kubernetes(K8s)后,查看服务日志是非常重要的操作,可以帮助您及时排查和解决问题。以下是几种常见的方法来查看K8s部署的日志:

使用 kubectl 命令查看日志

kubectl 是Kubernetes的官方命令行工具,可以用来查看Pod的日志。以下是具体步骤:

  1. 登录到K8S集群

    kubectl config use-context my-k8s-cluster
    
  2. 获取Pod名称

    kubectl get pods
    
  3. 查看特定Pod的日志

    kubectl logs <pod-name>
    

    如果您的服务有多个容器,可以通过 -c 参数指定容器名称:

    kubectl logs -c <container-name> <pod-name>
    
  4. 实时查看服务日志信息,通过 -f 参数实现:

    kubectl logs -f <pod-name>
    
  5. 查看最新日志行,可以使用 --tail 参数:

    kubectl logs --tail 100 <pod-name>
    

使用 journalctl 命令查看系统日志

journalctl 是Linux系统日志的工具,可以用来查看K8s组件的日志:

  • 查看 kube-scheduler 的日志:

    journalctl -u kube-scheduler
    
  • 查看 kubelet 的日志:

    journalctl -u kubelet
    

使用第三方工具查看日志

Kubetail

Kubetail 是一个简单的Shell脚本,可以将多个Pod中的日志信息聚合到一起进行展示,并支持彩色输出和条件过滤。

  • 安装Kubetail

    brew tap johanhaleby/kubetail && brew install kubetail
    
  • 使用Kubetail查看日志

    kubetail <pod-name>
    

    您可以使用各种参数来定制输出,例如:

    kubetail <pod-name> -c <container-name> -n <namespace> --regex "<regex>"
    

Stern

Stern 是一个用Go语言开发的多容器和容器日志查看工具,开箱即用。

  • 安装Stern

    brew install stern
    
  • 使用Stern查看日志

    stern <pod-name>
    

    您可以指定命名空间、容器名称、使用正则表达式等。

ELK(Elasticsearch, Logstash, Kibana)堆栈

ELK堆栈是日志管理和分析的强大工具组合。

  • 部署ELK堆栈

    • Elasticsearch
      apiVersion: v1
      kind: Service
      metadata:
        name: elasticsearch
      spec:
        selector:
          app: elasticsearch
        ports:
          - protocol: TCP
            port: 9200
            targetPort: 9200
      ---
      apiVersion: apps/v1
      kind: StatefulSet
      metadata:
        name: elasticsearch
      spec:
        replicas: 1
        selector:
          matchLabels:
            app: elasticsearch
        template:
          metadata:
            labels:
              app: elasticsearch
          spec:
            containers:
              - name: elasticsearch
                image: docker.elastic.co/elasticsearch/elasticsearch:7.10.1
                ports:
                  - containerPort: 9200
      
  • 查看日志:使用Kibana来查看存储在Elasticsearch中的日志。

    kubectl logs <pod-name> -n <namespace>
    

0