<p>How can I get events messages from a pod, like this command using client-go Kubernetes API:</p>
<pre><code>kubectl describe pod spark-t2f59 -n spark

Events:
  Type     Reason             Age   From                Message
  ----     ------             ----  ----                -------
  Warning  FailedScheduling   104s  default-scheduler   0/19 nodes are available: 15 Insufficient cpu, 19 Insufficient memory.
  Warning  FailedScheduling   104s  default-scheduler   0/19 nodes are available: 15 Insufficient cpu, 19 Insufficient memory.
  Warning  FailedScheduling   45s   default-scheduler   0/20 nodes are available: 16 Insufficient cpu, 20 Insufficient memory.
  Warning  FailedScheduling   34s   default-scheduler   0/20 nodes are available: 16 Insufficient cpu, 20 Insufficient memory.
  Normal   NotTriggerScaleUp  97s   cluster-autoscaler  pod didn't trigger scale-up (it wouldn't fit if a new node is added): 1 Insufficient memory, 1 max node group size reached
</code></pre>
<p>Is there a way to get the same output of events but using <strong>client-go</strong> instead of <strong>kubectl</strong>??</p>

<p>Since you know the namespace and the pod name, you can do:</p>
<pre><code>package main

import (
    &quot;context&quot;
    &quot;fmt&quot;
    metav1 &quot;k8s.io/apimachinery/pkg/apis/meta/v1&quot;
    &quot;k8s.io/client-go/kubernetes&quot;
    &quot;k8s.io/client-go/rest&quot;
)

func main() {
    config, _ := rest.InClusterConfig()
    clientset, _ := kubernetes.NewForConfig(config)
    events, _ := clientset.CoreV1().Events(&quot;spark&quot;).List(context.TODO(),metav1.ListOptions{FieldSelector: &quot;involvedObject.name=spark-t2f59&quot;, TypeMeta: metav1.TypeMeta{Kind: &quot;Pod&quot;}})
    for _, item := range events.Items {
        fmt.Println(item)
    }
}
</code></pre>
