zoukankan      html  css  js  c++  java
  • Kubernetes 监控和日志

    1       查看集群资源状态

    1.1   查看mster集群状态

    kubectl  get  cs

     

    1.2   查看node状态

    kubectl  get  node

     

    1.3   查看Apiserver代理的URL

    kubectl  cluster-info

     

    1.4   查看集群线下信息

    kubectl  cluster-info dump

    1.5   查看资源信息

    kubectl  describe  <资源>   <资源名称>

     

    1.6   列出k8s支持的资源

    kubectl api-resources

     

    1.7   实时查看资源信息

    kubectl  get  pod(或是pod名称)  -w(或是--watch)

     

    2       监控集群资源利用率

    2.1   metrics server

             Metrics server 是一个集群范围的资源使用情况的数据聚合器,作为一个应用部署在集群中,metrics server 从每一个节点上kubelet api收集指标,通过kubernetes聚合器注册在master apiserver中。

     

    Metrics-server+cAdvisor监控集群资源消耗

    2.2   部署

    项目地址:https://github.com/kubernetes-sigs/metrics-server

    wget  https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.4.1/components.yaml

    修改vim components.yaml

     

    2.3   查看node资源消耗

    kubectl  top  node 

     

    2.3.1  查看pod资源的消耗

    kubectl  top  pod 

     

    3       管理k8s组件日志

    Systemd守护进程管理的组件:

    jurnalctl -u kubelet

    Pod部署的组件:

    Kubectl  logs  kube-proxy-btxd4  -n kube-system

    系统日志:

    /var/log/messages

    4       管理k8s应用日志

    K8s cluster里面部署的应用程序日志

             -标准输出

                       查看容器标准输出的日志

                       kubectl logs podname

                       kubectl log -f  podname

                       kubect logs –f podname  -c  containername

                       标准输出在宿主机的路径

                       /var/log/docker/containers/<container-id>/<container-id>-json.log

    -日志文件

                       容器中应用日志可以使用emptyDir数据卷将日志文件持久化到宿主机上,

                       宿主机的路径:

                                /var/lib/kubelet/pods/<pod-id>/volumes/kubernetes,io~empty-dir/logs/*.log

    4.1   日志收集方案

    方案一:将容器应用程序日志共享到宿主机通过挂载空目录emptyDir

    实例:

    apiVersion: v1

    kind: Pod

    metadata:

      labels:

        run: nginx-php-1

      name: my-nginx-pod

    spec:

      containers:

      - image: lizhenliang/nginx-php

        name: nginx-php-1

        volumeMounts:

        - name: logs

          mountPath: /usr/local/nginx/logs

      volumes:

      - name: logs

    emptyDir: {}

    参考文档:

    https://kubernetes,io/docs/concepts/cluster-administration/logging

    方案二:pod 创建一个边车容器读取业务容器日志

    [root@k8s-master ~]# cat nginx-logs.yaml

    apiVersion: v1

    kind: Pod

    metadata:

      labels:

      name: nginx-pods-logs

    spec:

      containers:

      - image: lizhenliang/nginx-php

        name: nginx-pods

        volumeMounts:

        - name: logs

          mountPath: /usr/local/nginx/logs

      - name: nginx-pods-longs

        image: busybox

        args: [/bin/sh, -c,'tail -f /opt/access.log']

        volumeMounts:

        - name: logs

          mountPath: /opt

      volumes:

      - name: logs

        emptyDir: {}

  • 相关阅读:
    【设计模式(17)】行为型模式之中介者模式
    服务器迁移--MySQL数据库迁移
    巧妙解决element-ui下拉框选项过多的问题
    关于后台返回的文件流下载方法
    关于input框只让输入数字的写法
    关于element ui 全局配置某些组件的属性方法
    关于echarts的南丁格尔玫瑰图 极值导致展示效果不好的解决方案
    mock数据的使用方法
    配置 git账号和邮箱
    vite 发布了正式版版了 用起来
  • 原文地址:https://www.cnblogs.com/houchaoying/p/14365601.html
Copyright © 2011-2022 走看看