Home > Software design >  kubectl: create replicaset without a yml file
kubectl: create replicaset without a yml file

Time:05-06

I am trying to create a replicaset with kubernetes. This time, I don't have a yml file and this is why I am trying to create the replicaset using a command line. Why kubectl create replicaset somename --image=nginx raise an error, and how to fix this?

CodePudding user response:

You cannot create replicaset using the command line. Only the following resource creation is possible using kubectl create:

kubectl create  --help |awk '/Available Commands:/,/^$/'
Available Commands:
  clusterrole         Create a cluster role
  clusterrolebinding  Create a cluster role binding for a particular cluster role
  configmap           Create a config map from a local file, directory or literal value
  cronjob             Create a cron job with the specified name
  deployment          Create a deployment with the specified name
  ingress             Create an ingress with the specified name
  job                 Create a job with the specified name
  namespace           Create a namespace with the specified name
  poddisruptionbudget Create a pod disruption budget with the specified name
  priorityclass       Create a priority class with the specified name
  quota               Create a quota with the specified name
  role                Create a role with single rule
  rolebinding         Create a role binding for a particular role or cluster role
  secret              Create a secret using specified subcommand
  service             Create a service using a specified subcommand
  serviceaccount      Create a service account with the specified name

Although, You may use the following way to create the replica set, in the below example, kubectl create -f is fed with stdout(-):

echo "apiVersion: apps/v1
kind: ReplicaSet
metadata:
  name: frontend
  labels:
    app: guestbook
    tier: frontend
spec:
  # modify replicas according to your case
  replicas: 3
  selector:
    matchLabels:
      tier: frontend
  template:
    metadata:
      labels:
        tier: frontend
    spec:
      containers:
      - name: php-redis
        image: gcr.io/google_samples/gb-frontend:v3
" |kubectl create  -f -

CodePudding user response:

Hello, hope you are enjoying your kubernetes journey !

In fact, you cannot create a RS directly, but if you really don't want to use manifest, you can surely create it via a deployment:

❯ kubectl create deployment --image nginx:1.21 --port 80 test-rs
deployment.apps/test-rs created

here it is:

❯ kubectl get rs
NAME                          DESIRED   CURRENT   READY   AGE
test-rs-5c99c9b8c             1         1         1       15s

bguess

  • Related