Ce face kubectl create
Spre deosebire de kubectl apply, comanda kubectl create este imperativă: cere API server-ului să creeze un obiect nou și eșuează cu eroarea AlreadyExists dacă există deja o resursă cu același nume.
Subcomenzile ei (create deployment, create service, create configmap, create secret, create job) sunt foarte utile pentru a genera rapid schelete de manifeste YAML fără să le scrii de la zero: adaugi --dry-run=client -o yaml > fisier.yaml, apoi editezi fișierul și îl versiunezi în Git.
Tot cu kubectl create job --from=cronjob/NUME poți porni pe loc o rulare manuală a unui CronJob existent, de exemplu pentru a testa un job de backup.
Opțiuni și argumente
| Opțiune / Parametru | Descriere |
|---|---|
deployment NUME --image=IMG [--replicas=N] [--port=P] |
Creează un Deployment (sau îi generează YAML-ul cu --dry-run=client -o yaml). |
namespace NUME |
Creează un namespace nou. |
configmap NUME --from-literal=K=V | --from-file=CALE | --from-env-file=.env |
Creează un ConfigMap din perechi cheie-valoare sau din fișiere. |
secret generic NUME --from-literal=K=V | --from-file=CALE |
Creează un Secret opac (valorile sunt codificate automat în Base64). |
secret tls NUME --cert=CRT --key=KEY |
Creează un Secret de tip kubernetes.io/tls pentru Ingress. |
job NUME --image=IMG -- COMANDĂ | --from=cronjob/CJ |
Creează un Job nou sau unul clonat dintr-un CronJob. |
token SERVICE_ACCOUNT [--duration=1h] |
Cere un token JWT temporar pentru un ServiceAccount (util în K8s 1.24+). |
--dry-run=client -o yaml |
Nu trimite nimic la cluster; tipărește manifestul YAML pe stdout. |
Exemple
Exemplul 1: Generarea unui schelet YAML de Deployment
Cel mai rapid mod de a obține un manifest valid, gata de completat.
kubectl create deployment web --image=nginx:1.27 --replicas=2 --port=80 --dry-run=client -o yaml
Ieșire în terminal
apiVersion: apps/v1
kind: Deployment
metadata:
creationTimestamp: null
labels:
app: web
name: web
spec:
replicas: 2
selector:
matchLabels:
app: web
strategy: {}
template:
metadata:
creationTimestamp: null
labels:
app: web
spec:
containers:
- image: nginx:1.27
name: nginx
ports:
- containerPort: 80
resources: {}
status: {}
Exemplul 2: Crearea unui ConfigMap dintr-un fișier .env și aplicarea declarativă
Folosim trucul --dry-run=client -o yaml | kubectl apply -f - pentru ca operația să fie idempotentă (să funcționeze și la actualizare).
kubectl create configmap api-config --from-env-file=config.env --dry-run=client -o yaml | kubectl apply -f -
Ieșire în terminal
configmap/api-config created
Exemplul 3: Rularea imediată a unui CronJob existent
kubectl create job backup-acum --from=cronjob/nightly-backup
Ieșire în terminal
job.batch/backup-acum created
Greșeli frecvente
- Rularea a doua oară a lui
kubectl createpentru a actualiza o resursă: va daError from server (AlreadyExists); foloseșteapply. - Crearea resurselor de producție direct din linie de comandă fără a salva manifestul în Git: la recrearea clusterului nu vei mai ști ce parametri ai folosit.
Comenzi înrudite
kubectl apply: Creează sau actualizează declarativ resurse din fișiere YAML/JSON ori directoare Kustomize.ConfigMap și Secret: Separă configurația și datele sensibile (parole, tokenuri, chei TLS) de imaginea containerului.Obiectul Deployment: Gestionează aplicații stateless replicabile: menține numărul de pod-uri, le înlocuiește când cad și face rolling updates.Obiectul Namespace: Împarte un cluster fizic în sub-clustere logice izolate pe echipe, proiecte sau medii.
Întrebări & Exemple de Cod:
kubectl createAi o nelămurire despre utilizarea comenzii
kubectl createsau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!
Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.