How to propagate kubernetes events from a GKE cluster to google cloud log

9/14/2016

Is there anyway to propagate all kubernetes events to google cloud log?

For instance, a pod creation/deletion or liveness probing failed, I knew I can use kubectl get events in a console.
However, I would like to preserve those events in a log file in the cloud log with other pod level logs.
It is quite helpful information.

-- Rui Yang
google-kubernetes-engine
kubernetes

1 Answer

1/18/2017

It seems that OP found the logs, but I wasn't able to on GKE (1.4.7) with Stackdriver. It was a little tricky to figure out, so I thought I'd share for others. I was able to get them by creating an eventer deployment with the gcl sink.

For example:

deployment.yaml

kind: Deployment
apiVersion: extensions/v1beta1
metadata:
  labels:
    k8s-app: eventer
  name: eventer
  namespace: kube-system
spec:
  replicas: 1
  selector:
    matchLabels:
      k8s-app: eventer
  strategy:
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 1
    type: RollingUpdate
  template:
    metadata:
      labels:
        k8s-app: eventer
    spec:
      containers:
      - name: eventer
        command:
        - /eventer
        - --source=kubernetes:''
        - --sink=gcl
        image: gcr.io/google_containers/heapster:v1.2.0
        imagePullPolicy: IfNotPresent
        resources:
          limits:
            cpu: 100m
            memory: 200Mi
          requests:
            cpu: 100m
            memory: 200Mi
        terminationMessagePath: /dev/termination-log
      restartPolicy: Always
      terminationGracePeriodSeconds: 30

Then, search for logs with an advanced filter (substitute your GCE project name):

resource.type="global"
logName="projects/project-name/logs/kubernetes.io%2Fevents"
-- Branton Davis
Source: StackOverflow