I'm trying to access .NET Web API which I docker-ized and mounted in an Kubernet Cluster on Microsoft Azure.
The application works fine on local docker machine. The cluster is running, my deployment was correct and the pods where created. Everything I check is fine, but I cannot access my application through the external cluster IP (Load Balancer). This is my YAML deployment file:
apiVersion: apps/v1
kind: Deployment
metadata:
name: ohmioapi-deployment
spec:
selector:
matchLabels:
app: ohmioapi
replicas: 1
template:
metadata:
labels:
app: ohmioapi
spec:
containers:
- name: ohmioapi
image: ohmiocontainers.azurecr.io/ohmioapi:latest
imagePullPolicy: Always
ports:
- containerPort: 15200
imagePullSecrets:
- name: acr-auth
---
apiVersion: v1
kind: Service
metadata:
name: ohmioapi
labels:
app: ohmioapi
spec:
selector:
app: ohmioapi
ports:
- port: 15200
nodePort: 30200
protocol: TCP
type: LoadBalancer
Can anyone give a hint of where to start looking for? Thanks!
I would give the deployment/pods port a name (e.g. http) and then make the service serve off port 80 but target the pod port by name... that way you don't have to worry about port numbers when connecting to a service.
Also, you shouldn't need or want to use nodePort if you are using type of LoadBalancer.
E.g.
apiVersion: apps/v1
kind: Deployment
metadata:
name: ohmioapi-deployment
spec:
selector:
matchLabels:
app: ohmioapi
replicas: 1
template:
metadata:
labels:
app: ohmioapi
spec:
containers:
- name: ohmioapi
image: ohmiocontainers.azurecr.io/ohmioapi:latest
imagePullPolicy: Always
ports:
- name: http
containerPort: 15200
imagePullSecrets:
- name: acr-auth
---
apiVersion: v1
kind: Service
metadata:
name: ohmioapi
labels:
app: ohmioapi
spec:
selector:
app: ohmioapi
ports:
- name: http
port: 80
targetPort: http
protocol: TCP
type: LoadBalancer
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With