Non HTTP Services - TCP & UDP Ingress
Accessing a TCP or UDP service directly, not using the provided OpenShift router but via the route object is possible, thanks to services of type LoadBalancer.
The explanation below only works on the cloudscale.ch - LPG 2 region of APPUiO Cloud. |
Deploy a sample TCP service, in this case an IRC chat server:
apiVersion: apps/v1
kind: Deployment
metadata:
name: ggircd
labels:
app: ggircd
spec:
selector:
matchLabels:
app: ggircd
strategy:
type: Recreate
template:
metadata:
labels:
app: ggircd
spec:
containers:
- image: registry.gitlab.com/vshn/demos/demo-irc-openshift:latest
name: ggircd
ports:
- containerPort: 6667
name: ggircd
Expose this deployment with a LoadBalancer service:
apiVersion: v1
kind: Service
metadata:
name: ggircd-service
spec:
ports:
- name: ggircd-port
port: 6667
targetPort: 6667
protocol: TCP
type: LoadBalancer
selector:
app: ggircd
On the cloudscale.ch - LPG 2 zone, the cluster automatically assigns a unique external IPv4 address to this service. To see which IPv4 address has been assigned, go to the OpenShift Web Console and navigate to "Networking/Services." The IP is displayed in the field "External IP."
Using the CLI is also possible:
oc describe service ggircd-service
Please pay attention to the following:
|