

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# (Facoltativo) Abilita la funzionalità per cluster di grandi Use\_Kubelet dimensioni
<a name="ContainerInsights-use-kubelet"></a>

Per impostazione predefinita, la Use\_Kubelet funzionalità è disabilitata nel plug-in Kubernetes. FluentBit L'abilitazione di questa funzione può ridurre il traffico verso il server API e mitigare il problema che il server API è un collo di bottiglia. Ti consigliamo di abilitare questa funzione per cluster di grandi dimensioni.

Per abilitarla Use\_Kubelet, aggiungi prima i nodi e le nodes/proxy autorizzazioni alla configurazione di 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"]
```

Nella DaemonSet configurazione, questa funzionalità richiede l'accesso alla rete host. La versione dell'immagine per `amazon/aws-for-fluent-bit` dovrebbe 2.12.0 o successiva, oppure la versione dell'immagine bit fluent dovrebbe essere 1.7.2 o successiva.

```
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 configurazione del plug-in Kubernetes dovrebbe essere simile alla seguente:

```
[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
```