Home > Back-end >  What is the current equivalent of `kubectl run --generator=run/v1`
What is the current equivalent of `kubectl run --generator=run/v1`

Time:03-24

I'm working through Kubernetes in Action (copyright 2018), and at least one of the examples is out-of-date with respect to current versions of kubectl.

Currently I'm stuck in section 2.3 on just trying to demo a simple web-server docker container ("kubia"):

kubectl run kubia --image=Dave/kubia --port=8080 --generator=run/v1

the --generator option has been removed from current versions of kubectl. What command(s) achieve the same end in the current version of kubectl?

Note: I'm literally just 2 chapters into learning about Kubernetes, so I don't really know what a deployment or anything else (so the official kubernetes docuementation doesn't help), I just need the simplest way to verify that that I can, in fact, run this container in my minikube "cluster".

CodePudding user response:

You can just instantiated the pod, since --generator has been deprecated.

apiVersion: v1
kind: Pod
metadata:
  name: kubia
spec:
  containers:
  - name: kubia
    image: Dave/kubia
    ports:
    - containerPort: 8080

Alternatively, you can use a deployment:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: kubia-deployment
  labels:
    app: kubia
spec:
  replicas: 1
  selector:
    matchLabels:
      app: kubia
  template:
    metadata:
      labels:
        app: kubia
    spec:
      containers:
      - name: kubia
        image: Dave/kubia
        ports:
        - containerPort: 8080

Save either one to a something.yaml file and run

kubectl create -f something.yaml

And to clean up

kubectl delete -f something.yaml

✌️

CodePudding user response:

in short , you can use following commands to create pods and deployments (imperative way) using following commands which are similar to the commands mentioned in that book :

  • To create a pod named kubia with image Dave/kubia
 kubectl run kubia --image=Dave/kubia --port=8080
  • To create a deployment named kubia with image Dave/kubia
kubectl create deployment kubia --image=Dave/kubia --port=8080
  • Related