117.info
人生若只如初见

k8s在centos上如何监控集群状态

在CentOS上监控Kubernetes(k8s)集群状态,可以使用多种工具和方法。以下是一些常用的方法和工具:

使用 kubectl 命令行工具

kubectl 是 Kubernetes 的默认命令行工具,可以用来查看集群的状态。

  • 查看集群信息

    kubectl cluster-info
    
  • 获取所有节点

    kubectl get nodes
    
  • 检查 K8s 组件状态

    kubectl get componentstatuses
    

使用 Metrics Server

Metrics Server 是一个聚合器,用于收集 Kubernetes 集群中资源使用情况的数据,如 Pod 和节点的 CPU 和内存使用情况。

  • 安装 Metrics Server

    1. 创建角色和权限:

      kubectl create clusterrolebinding kube-proxy-cluster-admin --clusterrole cluster-admin --user system:kube-proxy
      
    2. 准备 metrics-server.yaml 文件:

      apiVersion: v1
      kind: ServiceAccount
      metadata:
        labels:
          k8s-app: metrics-server
        name: metrics-server
        namespace: kube-system
      
      apiVersion: rbac.authorization.k8s.io/v1
      kind: ClusterRole
      metadata:
        labels:
          k8s-app: metrics-server
        name: system: aggregated-metrics-reader
      rules:
      - apiGroups:
        - metrics.k8s.io
        resources:
          - pods
          - nodes
        verbs:
          - get
          - list
          - watch
      
      apiVersion: rbac.authorization.k8s.io/v1
      kind: ClusterRoleBinding
      metadata:
        labels:
          k8s-app: metrics-server
        name: system: metrics-server
      roleRef:
        apiGroup: rbac.authorization.k8s.io
        kind: ClusterRole
        name: system: metrics-server
      
      apiVersion: v1
      kind: Service
      metadata:
        labels:
          k8s-app: metrics-server
        name: metrics-server
        namespace: kube-system
      spec:
        ports:
        - name: https
          port: 443
          protocol: TCP
          targetPort: https
        selector:
          k8s-app: metrics-server
      
    3. 应用配置:

      kubectl apply -f metrics-server.yaml
      

使用 Prometheus 和 Grafana

Prometheus 是一个开源的监控系统和时间序列数据库,而 Grafana 是一个开源的分析和监测平台。结合使用它们可以提供强大的监控和可视化功能。

  • 部署 Prometheus Operator

    kubectl apply -f https://raw.githubusercontent.com/coreos/prometheus-operator/master/bundle.yaml
    
  • 配置 Prometheus

    创建 prometheus.yaml 文件:

    apiVersion: monitoring.coreos.com/v1
    kind: Prometheus
    metadata:
      name: my-prometheus
    spec:
      replicas: 2
      serviceAccountName: prometheus-k8s
      serviceMonitorSelector: {}
      resources:
        requests:
          memory: "400Mi"
      ruleSelector:
        matchLabels:
          prometheus: k8s
      alerting:
        alertmanagers:
        - namespace: monitoring
          name: alertmanager-main
          port: web
        storage:
          storageClassName: default
          volumeClaimTemplate:
            spec:
              resources:
                requests:
                  storage: "10Gi"
    

    应用配置:

    kubectl apply -f prometheus.yaml
    
  • 部署 Grafana

    kubectl apply -f https://raw.githubusercontent.com/coreos/kube-prometheus/master/manifests/grafana/grafana.yaml
    
  • 配置 Grafana 连接 Prometheus

    在 Grafana 界面中添加 Prometheus 数据源,填入 Prometheus 的服务地址。

使用 kube-state-metrics

kube-state-metrics 收集 Kubernetes 集群内资源对象的数据,如 Deployment、StatefulSet 和 DaemonSet 的状态。

  • 安装 kube-state-metrics

    1. 创建角色和权限:

      kubectl create clusterrolebinding kube-state-metrics-cluster-admin --clusterrole cluster-admin --user system:kube-proxy
      
    2. 准备 kube-state-metrics.yaml 文件:

      apiVersion: apps/v1
      kind: Deployment
      metadata:
        labels:
          k8s-app: kube-state-metrics
        name: kube-state-metrics
        namespace: kube-system
      spec:
        replicas: 1
        selector:
          matchLabels:
            app: kube-state-metrics
        template:
          metadata:
            labels:
              app: kube-state-metrics
          spec:
            containers:
            - name: kube-state-metrics
              image: k8s.gcr.io/kube-state-metrics:1.10.1
              ports:
              - name: http
                port: 8080
                targetPort: 8080
              resources:
                requests:
                  memory: "256Mi"
                  cpu: "250m"
                limits:
                  memory: "512Mi"
                  cpu: "500m"
      
    3. 应用配置:

      kubectl apply -f kube-state-metrics.yaml
      

通过这些工具和方法,你可以在 CentOS 上有效地监控 Kubernetes 集群的状态和性能。根据具体需求选择合适的工具,可以更好地满足你的监控需求。

未经允许不得转载 » 本文链接:https://www.117.info/ask/fe079AzsNAgBSAV0.html

推荐文章

  • CentOS Apache2如何部署网站

    在CentOS上部署Apache2服务器以托管网站涉及几个基本步骤。以下是一个详细的指南:
    1. 安装Apache2
    首先,确保你的CentOS系统已经更新到最新版本,然后...

  • Node.js在CentOS上如何优化性能

    在CentOS上优化Node.js性能涉及多个方面,包括硬件资源管理、系统配置优化、代码层面优化以及利用第三方工具进行性能监控和分析。以下是一些具体的优化策略:

  • centos ftpserver怎样防止DDoS攻击

    在CentOS上运行FTPS服务器时,防止DDoS攻击是一个重要的安全考虑。以下是一些有效的策略和步骤,可以帮助你增强FTPS服务器的安全性,减少DDoS攻击的影响:
    ...

  • centos k8s网络如何配置

    在CentOS上配置Kubernetes(k8s)网络通常涉及以下几个步骤: 关闭防火墙: systemctl stop firewalld
    systemctl disable firewalld 关闭SELinux: setenfo...

  • centos系统清理有哪些实用方法

    在CentOS系统中进行清理可以采用多种方法,以下是一些实用的清理方法:
    1. 查看磁盘使用情况 使用 df -h 命令查看磁盘空间使用情况,以了解哪些目录占用了大...

  • centos sftp配置有哪些要点

    配置CentOS上的SFTP(安全文件传输协议)时,有几个关键要点需要注意,以确保服务器的安全性和稳定性。以下是详细的配置步骤和要点:
    1. 安装OpenSSH服务器...

  • centos cpustat命令参数有哪些

    cpustat 是一个用于显示 CPU 使用情况的工具,它是 sysstat 包的一部分。cpustat 命令提供了丰富的参数来定制输出的信息和格式。以下是一些常用的 cpustat 参数:...

  • Debian MongoDB的数据压缩与存储优化

    在Debian上使用MongoDB时,数据压缩和存储优化是提高数据库性能和降低成本的重要手段。以下是一些有效的策略和步骤:
    数据压缩 启用WiredTiger压缩:MongoD...