Azure Red Hat OpenShift provides methods for communicating from outside the cluster with services running in the cluster. This method uses a service external IP.

Using a service external IP to get traffic into the cluster

One method to expose a service is to assign an external IP address directly to the service you want to make accessible from outside the cluster.

The external IP address that you use must be provisioned on your infrastructure platform and attached to a cluster node.

With an external IP on the service, Azure Red Hat OpenShift sets up sets up NAT rules to allow traffic arriving at any cluster node attached to that IP address to be sent to one of the internal pods. This is similar to the internal service IP addresses, but the external IP tells Azure Red Hat OpenShift that this service should also be exposed externally at the given IP. The administrator must assign the IP address to a host (node) interface on one of the nodes in the cluster. Alternatively, the address can be used as a virtual IP (VIP).

These IPs are not managed by Azure Red Hat OpenShift and administrators are responsible for ensuring that traffic arrives at a node with this IP.



Before starting the following procedures, the administrator must:




Creating a project and service




  1. Create a new project for your service:

    $ oc new-project <project_name>

    For example:

    $ oc new-project myproject

    $ oc new-app \
        -e MYSQL_USER=admin \
        -e MYSQL_PASSWORD=redhat \
        -e MYSQL_DATABASE=mysqldb \

    $ oc get svc -n myproject


Exposing the service by creating a route



To expose the service:

  1. Log in to Azure Red Hat OpenShift.


    $ oc project project1
  3. Run the following command to expose the route:

    $ oc expose service <service_name>

    For example:

    $ oc expose service mysql-80-rhel7
    route "mysql-80-rhel7" exposed
  4. Use a tool, such as cURL, to make sure you can reach the service using the cluster IP address for the service:

    $ curl <pod_ip>:<port>

    For example:

    $ curl



    $ mysql -h -u admin -p
    Enter password:
    MySQL [(none)]>