This post is more like a quick summary or guide for the imperative commands that would help you many ways especially during the certification so without wasting time lets dive into it.
POD
Create an NGINX Pod: this would create the NGINX pod-
Kubectl run --generator=run-pod/v1 nginx --image=nginx
(This will automatically use the pod's labels as selectors)
POD
Create an NGINX Pod: this would create the NGINX pod-
Kubectl run --generator=run-pod/v1 nginx --image=nginx
(This will automatically use the pod's labels as selectors)
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 run --generator=deployment/v1beta1 nginx --image=nginx
Or the newer recommended way:
kubectl create deployment --image=nginx nginx
Generate Deployment YAML file (-o yaml). Don't create it(--dry-run)
kubectl run --generator=deployment/v1beta1 nginx --image=nginx --dry-run -o yaml
Or
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
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
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)
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:
https://kubernetes.io/docs/reference/kubectl/conventions/
--dry-run
: By default as soon as the command is run, the resource will be created. If you simply want to test your command , use the --dry-run
option. This will not create the resource, instead, tell you weather the resource can be created and if your command is right.-o yaml
: This will output the resource definition in YAML format on screen.
This is an amazing blog, thank you so much for sharing such valuable information with us.
ReplyDeleteDocker Training in Hyderabad
Kubernetes Training in Hyderabad
Docker and Kubernetes Training
Docker and Kubernetes Online Training
Thanks !!
ReplyDelete