

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# (Facultatif) Activez la Use\_Kubelet fonctionnalité pour les grands clusters
<a name="ContainerInsights-use-kubelet"></a>

Par défaut, Use\_Kubelet cette fonctionnalité est désactivée dans le plugin FluentBit Kubernetes. L'activation de cette fonction peut réduire le trafic vers le serveur API et atténuer le problème du goulot d'étranglement du serveur API. Nous vous recommandons d'activer cette fonction pour les grands clusters.

Pour l'activer Use\_Kubelet, ajoutez d'abord les nœuds et nodes/proxy les autorisations à la configuration ClusterRole.

```
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: fluent-bit-role
rules:
  - nonResourceURLs:
- /metrics
    verbs:
- get
  - apiGroups: [""]
    resources:
- namespaces
- pods
- pods/logs
- nodes
- nodes/proxy
    verbs: ["get", "list", "watch"]
```

Dans la DaemonSet configuration, cette fonctionnalité nécessite un accès au réseau hôte. La version de l'image pour `amazon/aws-for-fluent-bit` doit être 2.12.0 ou une version ultérieure, ou la version de l'image du bit fluent doit être 1.7.2 ou une version ultérieure.

```
apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: fluent-bit
  namespace: amazon-cloudwatch
  labels:
    k8s-app: fluent-bit
    version: v1
    kubernetes.io/cluster-service: "true"
spec:
  selector:
    matchLabels:
k8s-app: fluent-bit
  template:
    metadata:
labels:
  k8s-app: fluent-bit
  version: v1
  kubernetes.io/cluster-service: "true"
    spec:
containers:
- name: fluent-bit
  image: amazon/aws-for-fluent-bit:2.19.0
  imagePullPolicy: Always
  env:
      - name: AWS_REGION
        valueFrom:
          configMapKeyRef:
            name: fluent-bit-cluster-info
            key: logs.region
      - name: CLUSTER_NAME
        valueFrom:
          configMapKeyRef:
            name: fluent-bit-cluster-info
            key: cluster.name
      - name: HTTP_SERVER
        valueFrom:
          configMapKeyRef:
            name: fluent-bit-cluster-info
            key: http.server
      - name: HTTP_PORT
        valueFrom:
          configMapKeyRef:
            name: fluent-bit-cluster-info
            key: http.port
      - name: READ_FROM_HEAD
        valueFrom:
          configMapKeyRef:
            name: fluent-bit-cluster-info
            key: read.head
      - name: READ_FROM_TAIL
        valueFrom:
          configMapKeyRef:
            name: fluent-bit-cluster-info
            key: read.tail
      - name: HOST_NAME
        valueFrom:
          fieldRef:
            fieldPath: spec.nodeName
      - name: HOSTNAME
        valueFrom:
          fieldRef:
            apiVersion: v1
            fieldPath: metadata.name      
      - name: CI_VERSION
        value: "k8s/1.3.8"
  resources:
      limits:
        memory: 200Mi
      requests:
        cpu: 500m
        memory: 100Mi
  volumeMounts:
  # Please don't change below read-only permissions
  - name: fluentbitstate
    mountPath: /var/fluent-bit/state
  - name: varlog
    mountPath: /var/log
    readOnly: true
  - name: varlibdockercontainers
    mountPath: /var/lib/docker/containers
    readOnly: true
  - name: fluent-bit-config
    mountPath: /fluent-bit/etc/
  - name: runlogjournal
    mountPath: /run/log/journal
    readOnly: true
  - name: dmesg
    mountPath: /var/log/dmesg
    readOnly: true
terminationGracePeriodSeconds: 10
hostNetwork: true
dnsPolicy: ClusterFirstWithHostNet
volumes:
- name: fluentbitstate
  hostPath:
    path: /var/fluent-bit/state
- name: varlog
  hostPath:
    path: /var/log
- name: varlibdockercontainers
  hostPath:
    path: /var/lib/docker/containers
- name: fluent-bit-config
  configMap:
    name: fluent-bit-config
- name: runlogjournal
  hostPath:
    path: /run/log/journal
- name: dmesg
  hostPath:
    path: /var/log/dmesg
serviceAccountName: fluent-bit
tolerations:
- key: node-role.kubernetes.io/master
  operator: Exists
  effect: NoSchedule
- operator: "Exists"
  effect: "NoExecute"
- operator: "Exists"
  effect: "NoSchedule"
```

La configuration du plugin Kubernetes doit ressembler à ce qui suit :

```
[FILTER]
  Name                kubernetes
  Match               application.*
  Kube_URL            https://kubernetes.default.svc:443
  Kube_Tag_Prefix     application.var.log.containers.
  Merge_Log           On
  Merge_Log_Key       log_processed
  K8S-Logging.Parser  On
  K8S-Logging.Exclude Off
  Labels              Off
  Annotations         Off
  Use_Kubelet         On
  Kubelet_Port        10250 
  Buffer_Size         0
```