F5 Solutions for Containers > Class 2: OpenShift with F5 Container Ingress Service > Module 2: CIS Using ClusterIP Mode Source | Edit on
Lab 2.2 - Deploy Hello-World Using Route¶
Now that CIS is up and running, let’s deploy an application and leverage CIS.
For this lab we’ll use a simple pre-configured docker image called “f5-hello-world”. It can be found on docker hub at f5devcentral/f5-hello-world
App Deployment¶
On kube-master1 we will create all the required files:
Create a file called
deployment-hello-world.yaml
Tip
Use the file in ~/agilitydocs/docs/class2/openshift
deployment-hello-world.yaml¶1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
apiVersion: apps/v1 kind: Deployment metadata: name: f5-hello-world-web namespace: default spec: replicas: 2 selector: matchLabels: app: f5-hello-world-web template: metadata: labels: app: f5-hello-world-web spec: containers: - env: - name: service_name value: f5-hello-world-web image: f5devcentral/f5-hello-world:develop imagePullPolicy: IfNotPresent name: f5-hello-world-web ports: - containerPort: 8080 protocol: TCP
Create a file called
clusterip-service-hello-world.yaml
Tip
Use the file in ~/agilitydocs/docs/class2/openshift
clusterip-service-hello-world.yaml¶1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
apiVersion: v1 kind: Service metadata: name: f5-hello-world-web namespace: default labels: app: f5-hello-world-web cis.f5.com/as3-tenant: AS3 cis.f5.com/as3-app: A1 cis.f5.com/as3-pool: web_pool spec: ports: - name: f5-hello-world-web port: 8080 protocol: TCP targetPort: 8080 type: ClusterIP selector: app: f5-hello-world-web
Create a file called
route-hello-world.yaml
Tip
Use the file in ~/agilitydocs/docs/class2/openshift
route-hello-world.yaml¶1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
apiVersion: v1 kind: Route metadata: labels: f5type: hello-world name: f5-hello-world-web name: f5-hello-world-web namespace: default annotations: virtual-server.f5.com/balance: round-robin virtual-server.f5.com/health: | [ { "path": "mysite.f5demo.com/", "send": "HTTP GET /", "interval": 5, "timeout": 10 } ] spec: host: mysite.f5demo.com path: "/" port: targetPort: 8080 to: kind: Service name: f5-hello-world-web
We can now launch our application:
oc create -f deployment-hello-world.yaml oc create -f clusterip-service-hello-world.yaml oc create -f route-hello-world.yaml
To check the status of our deployment, you can run the following commands:
oc get pods -o wide
oc describe svc f5-hello-world
Attention
To understand and test the new app pay attention to the Endpoints value, this shows our 2 instances (defined as replicas in our deployment file) and the overlay network IP assigned to the pod.
Now that we have deployed our application sucessfully, we can check the configuration on bigip1. Switch back to the open management session on firefox.
Warning
Don’t forget to select the “okd” partition or you’ll see nothing.
Goto
With “Route” you’ll seee two virtual servers defined. “okd_http_vs” and “okd_https_vs”, listening on port 80 and 443.
These Virtuals use an LTM Policy to direct traffic based on the host header. You can view this from the BIG-IP GUI at
and clickCheck the Pools to see a new pool and the associated pool members:
GoTo:
and selec the “openshift_default_f5-hello-world-web” pool. Click the Members tab.Note
You can see that the pool members IP addresses are assigned from the overlay network (ClusterIP mode)
Access your web application via firefox on the jumpbox.
Note
Select the “mysite.f5demo.com” shortcut or type http://mysite.f5demo.com in the URL field.
Note
Why can’t we use http://10.1.1.4 to open the web server?
Delete Hello-World
Important
Do not skip this step. Instead of reusing some of these objects, the next lab we will re-deploy them to avoid conflicts and errors.
oc delete -f route-hello-world.yaml oc delete -f clusterip-service-hello-world.yaml oc delete -f deployment-hello-world.yaml
Attention
Validate the objects are removed via the management console.