Kubernetes go client api for log of a particular pod

前端 未结 1 1752
天命终不由人
天命终不由人 2020-12-10 13:27

I am using kube go client with kube api to access kube data. I am currently not finding any api call for logs of a particular pod.

kubectl logs pod-name


        
相关标签:
1条回答
  • 2020-12-10 14:29

    Looking at how kubectl implements its commands can be helpful when getting a feel for how to use the client library. In this case, kubectl's implementation of the logs command looks like this:

    req := client.RESTClient.Get().
        Namespace(namespace).
        Name(podID).
        Resource("pods").
        SubResource("log").
        Param("follow", strconv.FormatBool(logOptions.Follow)).
        Param("container", logOptions.Container).
        Param("previous", strconv.FormatBool(logOptions.Previous)).
        Param("timestamps", strconv.FormatBool(logOptions.Timestamps))
    
    if logOptions.SinceSeconds != nil {
        req.Param("sinceSeconds", strconv.FormatInt(*logOptions.SinceSeconds, 10))
    }
    if logOptions.SinceTime != nil {
        req.Param("sinceTime", logOptions.SinceTime.Format(time.RFC3339))
    }
    if logOptions.LimitBytes != nil {
        req.Param("limitBytes", strconv.FormatInt(*logOptions.LimitBytes, 10))
    }
    if logOptions.TailLines != nil {
        req.Param("tailLines", strconv.FormatInt(*logOptions.TailLines, 10))
    }
    readCloser, err := req.Stream()
    if err != nil {
        return err
    }
    
    defer readCloser.Close()
    _, err = io.Copy(out, readCloser)
    return err
    
    0 讨论(0)
提交回复
热议问题