Kubectl imperative commands
POD
Create an NGINX Pod
kubectl run –generator=run-pod/v1 nginx –image=nginx
Generate POD Manifest YAML file (-o yaml). Don’t create it(–dry-run)
kubectl run –generator=run-pod/v1 nginx –image=nginx –dry-run -o yaml
Deployment
Create a deployment
kubectl create deployment –image=nginx nginx
Generate Deployment YAML file (-o yaml). Don’t create it(–dry-run)
kubectl create deployment –image=nginx nginx –dry-run -o yaml
Generate Deployment YAML file (-o yaml). Don’t create it(–dry-run) with 4 Replicas (–replicas=4)
kubectl run –generator=deployment/v1beta1 nginx –image=nginx –dry-run –replicas=4 -o yaml
The usage –generator=deployment/v1beta1 is deprecated as of Kubernetes 1.16. The recommended way is to use the kubectl create option instead.
IMPORTANT:
kubectl create deployment does not have a –replicas option. You could first create it and then scale it using the kubectl scale command.
Save it to a file – (If you need to modify or add some other details)
kubectl run –generator=deployment/v1beta1 nginx –image=nginx –dry-run –replicas=4 -o yaml > nginx-deployment.yaml
OR
kubectl create deployment –image=nginx nginx –dry-run -o yaml > nginx-deployment.yaml
You can then update the YAML file with the replicas or any other field before creating the deployment.
Service
Create a Service named redis-service of type ClusterIP to expose pod redis on port 6379
kubectl expose pod redis –port=6379 –name redis-service –dry-run -o yaml
(This will automatically use the pod’s labels as selectors)
Or
kubectl create service clusterip redis –tcp=6379:6379 –dry-run -o yaml (This will not use the pods labels as selectors, instead it will assume selectors as app=redis. You cannot pass in selectors as an option. So it does not work very well if your pod has a different label set. So generate the file and modify the selectors before creating the service)
Create a Service named nginx of type NodePort to expose pod nginx’s port 80 on port 30080 on the nodes:
kubectl expose pod nginx –port=80 –name nginx-service –dry-run -o yaml
(This will automatically use the pod’s labels as selectors, but you cannot specify the node port. You have to generate a definition file and then add the node port in manually before creating the service with the pod.)
Or
kubectl create service nodeport nginx –tcp=80:80 –node-port=30080 –dry-run -o yaml
(This will not use the pods labels as selectors)
Both the above commands have their own challenges. While one of it cannot accept a selector the other cannot accept a node port. I would recommend going with the kubectl expose
command. If you need to specify a node port, generate a definition file using the same command and manually input the nodeport before creating the service.
Reference:
No comments yet.
-
Recent
- Kubectl imperative commands
- AWS RDS Migration Checklist
- Oracle Export import Compress
- Oracle Performance Tuning views
- Kubernetes PODS creation
- Dropping Index in Oracle
- Docker private registry
- Docker Container Logging
- Oracle Disk issue reserve policy
- ASM kfed utlity
- Understanding Oracle Architecture
- Useful Sar (Sysstat) Examples for UNIX / Linux /Oracle Performance Monitoring
-
Links
-
Archives
- March 2021 (2)
- May 2020 (12)
- February 2016 (1)
- December 2015 (1)
- February 2014 (1)
- June 2013 (1)
- April 2013 (1)
- December 2012 (5)
- November 2012 (1)
- August 2012 (3)
- July 2012 (1)
- June 2012 (2)
-
Categories
-
RSS
Entries RSS
Comments RSS
Leave a comment