Home > Blockchain >  How to promote a pod to a deployment for scaling
How to promote a pod to a deployment for scaling

Time:12-24

I'm running the example in chapter "Service Discovery" of the book "Kubernetes up and running". The original command to run a deployment is kubectl run alpaca-prod --image=gcr.io/kuar-demo/kuard-amd64:blue --replicas=3 --port=8080 --labels="ver=1,app=alpaca,env=prod", however in K8s version 1.25, the --replicate parameter in run command is not supported any more. I planned to run without replica and then use "kubectl scale" to scale the deployment later. Problem is the run command only creates a pod, not a deployment (the scale command expects a deployment). So how do i promote my pod to a deployment, my kubernetes verion is 1.25?

CodePudding user response:

There is no way to promote it however you can change label and all those stuff but instead of that you can create the new deployment delete the existing POD.

So easy step you can take input of existing running POD to YAML file first

kubectl get pod <POD name> -o yaml > pod-spec.yaml

Create deployment spec YAML file now

kubectl create deployment deploymentname --image=imagename --dry-run=client -o yaml > deployment-spec.yaml

Edit the deployment-spec.yaml file

and in other tab pod-spec.yaml you can copy the Spec part from POD file to new deployment file.

Once deployment-spec.yaml is ready you can apply it. Make sure if you are running service labels get matched properly

kubectl apply -f deployment-spec.yaml

Delete the single running POD

kubectl delete pod <POD name>
  • Related