我正在尝试启用“审核”。 https://kubernetes.io/docs/tasks/debug-application-cluster/audit/提到:



我已经使用kubeadm来配置集群(总共在3个VM中运行)。

但是,使用kubeadm时在哪里设置呢?我看不到它与kube-apiserver交互的地方。

最佳答案

Kubelet和kube-apiserver是Kubernetes堆栈的完全不同的组件。

apiserverKubernetes Controlplane的一部分。 Kubelet本身实际上连接到API服务器。令您感到困惑的是,通常,API Server作为docker容器运行,并且该docker容器可以由kubelet管理。

kubelet可以通过两种方式运行容器:

  • 由控制平面决定(调度程序发送的请求)
  • 作为目录下yaml或JSON形式的静态 list (默认/etc/kubernetes/manifests

  • 如果您使用的是kubeadm,请在此目录下查看。您会看到一个带有API服务器 list 的yaml文件。您可以将apiserver标志添加到此 list 中,并使用新标志重新启动API服务器。

    但是,如评论中所述,您正在使用kubeadm。有正确的方法可以执行此操作,升级后该方法将继续存在。如果您查看kubeadm init的文档页面,则会看到“使用kubeadm init和配置文件”选项

    因此,您需要为kubeadm编写一个yaml配置文件,该文件在config.yaml中看起来像这样:
    apiVersion: kubeadm.k8s.io/v1alpha2
    auditPolicy:
      logDir: /var/log/kubernetes/audit
      logMaxAge: 2
      path: ""
    

    然后运行kubeadm init --config config.yaml

    关于kubernetes - 使用kubeadm时,如何在kubeapi-server上设置与审核相关的标志?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51602458/

    10-11 06:44