Search code examples
gokuberneteskubectl

Deploy a kubernetes Pod using golang code


Is there a possibility to deploy a kubernetes Pod using golang code instead of command line Linux with kubectl ?


Solution

  • Yes. Definitely you can. Kubernetes is written in golang. It has official client for go. You can create,delete,patch,list, control almost any Kubernetes resources with this go client.

    Here is the official client repository: kubernetes/client-go

    I have create a sample repository here to show how to create a pod using client-go.

    You have to do following things to create a pod with this client. We are going to create a simple busybox pod.

    1. Create configuration using your kube-config file. Generally the configuration file is $HOME/.kube/config file. See example here.
    2. Create a clientset using this configuration. See example here.
    3. Now, generate a pod definition that we want to deploy. See example here.
    4. Finally, create the pod in kubernetes cluster using the clientset. See example here.