- pod
- deployment
The first is done with these commands:
kubectl create namespace kuard
kubectl run kuard --image=gcr.io/kuar-demo/kuard-arm64:3 -n kuard --port 8080
kubectl expose pod kuard --type=NodePort --port=8080 -n kuard
To run the image inside a deployment the commands look very similar:
kubectl create namespace kuard2
kubectl create deployment kuard2 --image=gcr.io/kuar-demo/kuard-arm64:3 -n kuard2
kubectl expose deployment kuard2 -n kuard2 --type=NodePort --port=8080
Both is done with three commands, but what is the difference:
# kubectl get all -n kuard
NAME READY STATUS RESTARTS AGE
pod/kuard 1/1 Running 5 3d21h
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/kuard NodePort 10.152.183.227 <none> 8080:32047/TCP 3d20h
versus
# kubectl get all -n kuard2
NAME READY STATUS RESTARTS AGE
pod/kuard2-f8fd6497-4f7bc 1/1 Running 0 5m38s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/kuard2 NodePort 10.152.183.233 <none> 8080:32627/TCP 4m32s
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/kuard2 1/1 1 1 5m39s
NAME DESIRED CURRENT READY AGE
replicaset.apps/kuard2-f8fd6497 1 1 1 5m38s
So as you clearly can see, a deployment also configure a deployment and a replicaset in addition. But this is not really a deployment you want to do in such unconfigured way (remember: livenessProbes & readinessProbes can only be configured with kubctl apply + YAML). But you can get an template via
kubectl get deployments kuard2 -n kuard2 -o yaml
which you can use for configuring all parameters - so this is easier than writing the complete YAML manually.
No comments:
Post a Comment