$ kubectl create deploy nginx --image=nginx --dry-run=client -o yaml > deploy.yaml
$ cat deploy.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
creationTimestamp: null
labels:
app: nginx
name: nginx
spec:
replicas: 1
selector:
matchLabels:
app: nginx
strategy: {}
template:
metadata:
creationTimestamp: null
labels:
app: nginx
spec:
containers:
- image: nginx
name: nginx
resources: {}
status: {}
$ kubectl apply -f deploy.yaml
$ kubectl get deploy
NAME READY UP-TO-DATE AVAILABLE AGE
nginx 1/1 1 1 49s
kubectl get pod
NAME READY STATUS RESTARTS AGE
nginx-85b98978db-tqxcp 1/1 Running 0 109s
$ kubectl get replicaset
NAME DESIRED CURRENT READY AGE
nginx-85b98978db 1 1 1 2m1s
$ kubectl get all
NAME READY STATUS RESTARTS AGE
pod/nginx-85b98978db-tqxcp 1/1 Running 0 3m13s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/kubernetes ClusterIP 10.96.0.1 443/TCP 3d14h
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/nginx 1/1 1 1 3m13s
NAME DESIRED CURRENT READY AGE
replicaset.apps/nginx-85b98978db 1 1 1 3m13s
$ kubectl expose deploy nginx --port=8080 --target-port=80 --dry-run=client -o yaml > service.yaml
$ cat service.yaml
apiVersion: v1
kind: Service
metadata:
creationTimestamp: null
labels:
app: nginx
name: nginx
spec:
ports:
- port: 8080
protocol: TCP
targetPort: 80
selector:
app: nginx
status:
loadBalancer: {}
$ kubectl apply -f service.yaml
$ kubectl get services
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 443/TCP 3d14h
nginx ClusterIP 10.111.216.98 8080/TCP 32s
$ kubectl run -ti client --image=curlimages/curl /bin/sh
If you don't see a command prompt, try pressing enter.
/ $
/ $ curl http://10.111.216.98:8080
Welcome to nginx!
Welcome to nginx!
If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.
For online documentation and support please refer to
nginx.org.
Commercial support is available at
nginx.com.
Thank you for using nginx.
/ $ exit
Session ended, resume using 'kubectl attach client -c client -i -t' command when the pod is running
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
client 1/1 Running 1 (99s ago) 6m27s
nginx-85b98978db-tqxcp 1/1 Running 0 19m
$ kubectl delete pod client
pod "client" deleted
$ kubectl delete -f deploy.yaml,service.yaml
deployment.apps "nginx" deleted
service "nginx" deleted