Home > Net >  Use Kustomize or kubectl to deploy 1-container pod or service from command line
Use Kustomize or kubectl to deploy 1-container pod or service from command line

Time:04-09

Very new to Kubernetes. In the past I've used kubectl/Kustomize to deploy pods/services using the same repetitive pattern:

  1. On the file system, in my project, I'll have two YAML files such as kustomization.yml and my-app-service.yml that look something like:

kustomization.yml

resources:
  - my-app-service.yml

my-app-service.yml

apiVersion: v1
kind: Service
metadata:
  name: my-app-service
  ... etc.
  1. From the command-line, I'll run something like the following:
kubectl apply -k /path/to/the/kustomization.yml

And if all goes well -- boom -- I've got the service running on my cluster. Neato.

I am now trying to troubleshoot something and want to deploy a single container of the google/cloud-sdk image on my cluster, so that I can SSH into it and do some network/authorization-related testing.

The idea is:

  1. Deploy it
  2. SSH in, do my testing
  3. Delete the container/clean it up

I believe K8s doesn't deal with containers and so I'll probably need to deploy a 1-container pod or service (not clear on the difference there), but you get the idea.

I could just create 2 YAML files and run the kubectl apply ... on them like I do for everything else, but that feels a bit heavy-handed. I'm wondering if there is an easier way to do this all from the command-line without having to create YAML files each time I want to do a test like this. Is there?

CodePudding user response:

You can create a pod running a container with the given image with this command:

kubectl run my-debug-pod --image=google/cloud-sdk

And if you want to create a Deployment without writing the Yaml, you can do:

kubectl create deployment my-app --image=my-container-image

You could also just generate the Yaml and save it to file, and then use kubectl apply -f deployment.yaml, generate it with:

kubectl create deployment my-app --image=my-container-image \ 
--dry-run=client -o yaml > deployment.yaml
  • Related