代码之家  ›  专栏  ›  技术社区  ›  guettli

kube apiserver:持续5%到10%的CPU:尽管没有单个请求

  •  0
  • guettli  · 技术社区  · 4 年前

    我安装了 kind 玩Kubernetes。

    如果我使用 top 并按CPU使用情况排序(键 C ),然后我看到了 kube-apiserver 持续消耗5%到10%的CPU。

    为什么?

    到目前为止,我还没有安装任何东西:

    guettli@p15:~$ kubectl get pods --all-namespaces
    NAMESPACE            NAME                                         READY   STATUS    RESTARTS   AGE
    kube-system          coredns-558bd4d5db-ntg7c                     1/1     Running   0          40h
    kube-system          coredns-558bd4d5db-sx8w9                     1/1     Running   0          40h
    kube-system          etcd-kind-control-plane                      1/1     Running   0          40h
    kube-system          kindnet-9zkkg                                1/1     Running   0          40h
    kube-system          kube-apiserver-kind-control-plane            1/1     Running   0          40h
    kube-system          kube-controller-manager-kind-control-plane   1/1     Running   0          40h
    kube-system          kube-proxy-dthwl                             1/1     Running   0          40h
    kube-system          kube-scheduler-kind-control-plane            1/1     Running   0          40h
    local-path-storage   local-path-provisioner-547f784dff-xntql      1/1     Running   0          40h
    
    
    guettli@p15:~$ kubectl get services --all-namespaces
    NAMESPACE     NAME         TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)                  AGE
    default       kubernetes   ClusterIP   10.96.0.1    <none>        443/TCP                  40h
    kube-system   kube-dns     ClusterIP   10.96.0.10   <none>        53/UDP,53/TCP,9153/TCP   40h
    
    
    guettli@p15:~$ kubectl get nodes
    NAME                 STATUS   ROLES                  AGE   VERSION
    
    kind-control-plane   Ready    control-plane,master   40h   v1.21.1
    guettli@p15:~$ kubectl get nodes --all-namespaces
    NAME                 STATUS   ROLES                  AGE   VERSION
    kind-control-plane   Ready    control-plane,master   40h   v1.21.1
    
    

    我很好奇。CPU使用量来自哪里?我该如何调查?

    0 回复  |  直到 4 年前
        1
  •  5
  •   whites11    4 年前

    即使在只有一个主节点的空集群中,也至少有5个组件定期访问API服务器:

    • 主节点的kubelet
    • 控制器管理器
    • 计划程序
    • 核心DNS
    • Kube代理

    这是因为API服务器作为Kubernetes中所有组件的唯一入口点,可以知道集群状态应该是什么,并在需要时采取行动。

    如果您对细节感兴趣,您可以在API服务器中启用审核日志,并获得一个非常详细的文件,其中包含所有正在发出的请求。 如何做到这一点不是这个答案的目标,但你可以从 apiserver documentation

    推荐文章