我正在尝试启用“审核”。 https://kubernetes.io/docs/tasks/debug-application-cluster/audit/提到:
我已经使用kubeadm来配置集群(总共在3个VM中运行)。
但是,使用kubeadm时在哪里设置呢?我看不到它与kube-apiserver交互的地方。
最佳答案
Kubelet和kube-apiserver是Kubernetes堆栈的完全不同的组件。
apiserver是Kubernetes Controlplane的一部分。 Kubelet本身实际上连接到API服务器。令您感到困惑的是,通常,API Server作为docker容器运行,并且该docker容器可以由kubelet管理。
kubelet可以通过两种方式运行容器:
/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/