Este contenido no está disponible en el idioma seleccionado.
Chapter 9. Collecting and storing Kubernetes events
The OpenShift Container Platform Event Router is a pod that watches Kubernetes events and logs them for collection by OpenShift Logging. You must manually deploy the Event Router.
The Event Router collects events from all projects and writes them to
STDOUT
infra
The Event Router adds additional load to Fluentd and can impact the number of other log messages that can be processed.
9.1. Deploying and configuring the Event Router Copiar enlaceEnlace copiado en el portapapeles!
Use the following steps to deploy the Event Router into your cluster. You should always deploy the Event Router to the
openshift-logging
The following Template object creates the service account, cluster role, and cluster role binding required for the Event Router. The template also configures and deploys the Event Router pod. You can use this template without making changes, or change the deployment object CPU and memory requests.
Prerequisites
- You need proper permissions to create service accounts and update cluster role bindings. For example, you can run the following template with a user that has the cluster-admin role.
- OpenShift Logging must be installed.
Procedure
Create a template for the Event Router:
kind: Template apiVersion: template.openshift.io/v1 metadata: name: eventrouter-template annotations: description: "A pod forwarding kubernetes events to OpenShift Logging stack." tags: "events,EFK,logging,cluster-logging" objects: - kind: ServiceAccount1 apiVersion: v1 metadata: name: eventrouter namespace: ${NAMESPACE} - kind: ClusterRole2 apiVersion: rbac.authorization.k8s.io/v1 metadata: name: event-reader rules: - apiGroups: [""] resources: ["events"] verbs: ["get", "watch", "list"] - kind: ClusterRoleBinding3 apiVersion: rbac.authorization.k8s.io/v1 metadata: name: event-reader-binding subjects: - kind: ServiceAccount name: eventrouter namespace: ${NAMESPACE} roleRef: kind: ClusterRole name: event-reader - kind: ConfigMap4 apiVersion: v1 metadata: name: eventrouter namespace: ${NAMESPACE} data: config.json: |- { "sink": "stdout" } - kind: Deployment5 apiVersion: apps/v1 metadata: name: eventrouter namespace: ${NAMESPACE} labels: component: "eventrouter" logging-infra: "eventrouter" provider: "openshift" spec: selector: matchLabels: component: "eventrouter" logging-infra: "eventrouter" provider: "openshift" replicas: 1 template: metadata: labels: component: "eventrouter" logging-infra: "eventrouter" provider: "openshift" name: eventrouter spec: serviceAccount: eventrouter containers: - name: kube-eventrouter image: ${IMAGE} imagePullPolicy: IfNotPresent resources: requests: cpu: ${CPU} memory: ${MEMORY} volumeMounts: - name: config-volume mountPath: /etc/eventrouter volumes: - name: config-volume configMap: name: eventrouter parameters: - name: IMAGE6 displayName: Image value: "registry.redhat.io/openshift-logging/eventrouter-rhel8:v0.3" - name: CPU7 displayName: CPU value: "100m" - name: MEMORY8 displayName: Memory value: "128Mi" - name: NAMESPACE displayName: Namespace value: "openshift-logging"9 - 1
- Creates a Service Account in the
openshift-loggingproject for the Event Router. - 2
- Creates a ClusterRole to monitor for events in the cluster.
- 3
- Creates a ClusterRoleBinding to bind the ClusterRole to the service account.
- 4
- Creates a config map in the
openshift-loggingproject to generate the requiredconfig.jsonfile. - 5
- Creates a deployment in the
openshift-loggingproject to generate and configure the Event Router pod. - 6
- Specifies the image, identified by a tag such as
v0.3. - 7
- Specifies the minimum amount of memory to allocate to the Event Router pod. Defaults to
128Mi. - 8
- Specifies the minimum amount of CPU to allocate to the Event Router pod. Defaults to
100m. - 9
- Specifies the
openshift-loggingproject to install objects in.
Use the following command to process and apply the template:
$ oc process -f <templatefile> | oc apply -n openshift-logging -f -For example:
$ oc process -f eventrouter.yaml | oc apply -n openshift-logging -f -Example output
serviceaccount/eventrouter created clusterrole.authorization.openshift.io/event-reader created clusterrolebinding.authorization.openshift.io/event-reader-binding created configmap/eventrouter created deployment.apps/eventrouter createdValidate that the Event Router installed in the
project:openshift-loggingView the new Event Router pod:
$ oc get pods --selector component=eventrouter -o name -n openshift-loggingExample output
pod/cluster-logging-eventrouter-d649f97c8-qvv8rView the events collected by the Event Router:
$ oc logs <cluster_logging_eventrouter_pod> -n openshift-loggingFor example:
$ oc logs cluster-logging-eventrouter-d649f97c8-qvv8r -n openshift-loggingExample output
{"verb":"ADDED","event":{"metadata":{"name":"openshift-service-catalog-controller-manager-remover.1632d931e88fcd8f","namespace":"openshift-service-catalog-removed","selfLink":"/api/v1/namespaces/openshift-service-catalog-removed/events/openshift-service-catalog-controller-manager-remover.1632d931e88fcd8f","uid":"787d7b26-3d2f-4017-b0b0-420db4ae62c0","resourceVersion":"21399","creationTimestamp":"2020-09-08T15:40:26Z"},"involvedObject":{"kind":"Job","namespace":"openshift-service-catalog-removed","name":"openshift-service-catalog-controller-manager-remover","uid":"fac9f479-4ad5-4a57-8adc-cb25d3d9cf8f","apiVersion":"batch/v1","resourceVersion":"21280"},"reason":"Completed","message":"Job completed","source":{"component":"job-controller"},"firstTimestamp":"2020-09-08T15:40:26Z","lastTimestamp":"2020-09-08T15:40:26Z","count":1,"type":"Normal"}}You can also use Kibana to view events by creating an index pattern using the Elasticsearch
index.infra