Filebeat配置部署指南

在本文中,我們將瞭解如何配置Filebeat作爲DaemonSet在我們的Kubernetes集羣中運行,以便將日誌運送到Elasticsearch後端。我們使用Filebeat而不是FluentD或FluentBit,因爲它是一個非常輕量級的實用程序,並且對Kubernetes有一流的支持,因此這是十分適合生產的配置。

部署架構

Filebeat將在我們的Kubernetes集羣中作爲DaemonSet運行。它將會:

  • 部署在一個名爲logging的單獨的命名空間內
  • Pod將會在Master節點和Worker節點被調度
  • master節點pods將轉發api-server日誌,用於審計和集羣管理。
  • 客戶端節點Pods將轉發工作負載相關的日誌,用於應用程序可觀察性

創建Filebeat 服務賬戶和ClusterRole

部署以下manifest以創建Filebeat pod所需的權限:

apiVersion: v1
kind: Namespace
metadata:
  name: logging
---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: filebeat
  namespace: logging
  labels:
    k8s-app: filebeat
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRole
metadata:
  name: filebeat
  namespace: logging
  labels:
    k8s-app: filebeat
rules:
- apiGroups: [""] # "" indicates the core API group
  resources:
  - namespaces
  - pods
  verbs:
  - get
  - watch
  - list
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
  name: filebeat
  namespace: logging
subjects:
- kind: ServiceAccount
  name: filebeat
  namespace: kube-system
roleRef:
  kind: ClusterRole
  name: filebeat
  apiGroup: rbac.authorization.k8s.io

我們應該從安全的角度出發,確保ClusterRole的權限盡可能地受到限制。如果與該服務賬戶相關聯的任何一個pod被泄露,那麼攻擊者將無法獲得對整個集羣或其中運行的應用程序的訪問權限。

創建Filebeat ConfigMap

原文鏈接:【https://www.infoq.cn/article/0ATtUVqlxtV4sPUJWE4W】。未經作者許可,禁止轉載。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章