Skip to content

Instantly share code, notes, and snippets.

@luebken
Created March 12, 2018 22:17
Show Gist options
  • Save luebken/04e3392f3ebe7712a22d2d0c8b09e44c to your computer and use it in GitHub Desktop.
Save luebken/04e3392f3ebe7712a22d2d0c8b09e44c to your computer and use it in GitHub Desktop.
Create a svc from a docker image, expose it, curl it.

Task: Create a svc from a docker image, expose it, curl it.

Minikube:

# 1) start local k8s
$ minikube start --kubernetes-version=v1.7.5 --vm-driver hyperkit
...
$ kubectl get pods,svc,deployment
NAME             TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE
svc/kubernetes   ClusterIP   10.0.0.1     <none>        443/TCP   1m

# 2) run a docker image
$ kubectl run hello-openshift --image=openshift/hello-openshift --port=8080
deployment "hello-openshift" created
$ kubectl get pods,svc,deployment
NAME                                  READY     STATUS    RESTARTS   AGE
po/hello-openshift-2017763034-z0gbg   1/1       Running   0          15s

NAME             TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE
svc/kubernetes   ClusterIP   10.0.0.1     <none>        443/TCP   47s

NAME                     DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
deploy/hello-openshift   1         1         1            1           15s

# 3) Expose deployment as a service
$ kubectl expose deploy hello-openshift --type=LoadBalancer
service "hello-openshift" exposed
$ kubectl get svc
NAME              TYPE           CLUSTER-IP   EXTERNAL-IP   PORT(S)          AGE
hello-openshift   LoadBalancer   10.0.0.139   <pending>     8080:32626/TCP   8s
kubernetes        ClusterIP      10.0.0.1     <none>        443/TCP          1m

# 4) Test service:
$ curl $(minikube service hello-openshift --url)
Hello OpenShift!

Minishift

# 1) start local k8s
$ minishift start --openshift-version 3.7.1
...
$ kubectl get pods,svc,deployment
No resources found.

# 2) run a docker image
$ kubectl run hello-openshift --image=openshift/hello-openshift --port=8080
deployment "hello-openshift" created
$ kubectl get pods,svc,deployment
NAME                                  READY     STATUS    RESTARTS   AGE
po/hello-openshift-2017763034-jm52f   1/1       Running   0          22s

NAME                     DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
deploy/hello-openshift   1         1         1            1           22s

# 3) Expose deployment as a service
$ kubectl expose deploy hello-openshift --type=LoadBalancer
service "hello-openshift" exposed

# 4) Test service:
$ curl $(minishift openshift service hello-openshift -u)
Hello OpenShift!
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment