I have a cluster running 2 deployments and an ingress (caddy). One of my deployments is working fine, its a golang image listening on 80. The other deployment is a php-fpm image listening on 9000, when I make any request to the php-fpm domain, it responds with 502.
php-fpm deployment and service:
apiVersion: apps/v1
kind: Deployment
metadata:
name: main-api-deployment
labels:
app: main-api
spec:
replicas: 1
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 0
maxSurge: 2
selector:
matchLabels:
app: main-api
template:
metadata:
labels:
app: main-api
spec:
containers:
- name: main-api
image:
ports:
- containerPort: 9000
envFrom:
- configMapRef:
name: main-api
apiVersion: v1
kind: Service
metadata:
name: main-api-service
spec:
selector:
app: main-api
ports:
- name: fpm
port: 9000
targetPort: 9000
ingress:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ingress
annotations:
kubernetes.io/ingress.class: caddy
spec:
rules:
- host:
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: go-service-service
port:
number: 80
- host:
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: main-api-service
port:
number: 9000
running a curl container in another pod and trying to connect to the main-api container internally:
/ $ curl 10.244.0.126:9000 -v
* Trying 10.244.0.126:9000...
* Connected to 10.244.0.126 (10.244.0.126) port 9000 (#0)
> GET / HTTP/1.1
> Host: 10.244.0.126:9000
> User-Agent: curl/8.0.1-DEV
> Accept: */*
>
* Recv failure: Connection reset by peer
* Closing connection 0
curl: (56) Recv failure: Connection reset by peer
main-api pod description:
Name: main-api-deployment-7cd9d47886-c5g45
Namespace: default
Priority: 0
Service Account: default
Node: pool-q5an7/10.116.0.6
Start Time: Thu, 23 Mar 2023 16:59:37 -0300
Labels: app=main-api
pod-template-hash=7cd9d47886
Annotations: kubectl.kubernetes.io/restartedAt: 2023-03-23T16:59:37-03:00
Status: Running
IP: 10.244.0.126
IPs:
IP: 10.244.0.126
Controlled By: ReplicaSet/main-api-deployment-7cd9d47886
Containers:
main-api:
Container ID: containerd://04b6d8f62295e174ed196b0ad0b3002fe0b37c64faafe9cfd623abb4e98a30c7
Image: ...
Image ID: ...
Port: 9000/TCP
Host Port: 0/TCP
State: Running
Started: Thu, 23 Mar 2023 16:59:40 -0300
Ready: True
Restart Count: 0
Environment Variables from:
main-api ConfigMap Optional: false
Environment:
Mounts:
/var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-54c4q (ro)
Conditions:
Type Status
Initialized True
Ready True
ContainersReady True
PodScheduled True
Volumes:
kube-api-access-54c4q:
Type: Projected (a volume that contains injected data from multiple sources)
TokenExpirationSeconds: 3607
ConfigMapName: kube-root-ca.crt
ConfigMapOptional:
DownwardAPI: true
QoS Class: BestEffort
Node-Selectors:
Tolerations: node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
main-api service description:
Name: main-api-service
Namespace: default
Labels:
Annotations:
Selector: app=main-api
Type: ClusterIP
IP Family Policy: SingleStack
IP Families: IPv4
IP: 10.245.139.92
IPs: 10.245.139.92
Port: fpm 9000/TCP
TargetPort: 9000/TCP
Endpoints: 10.244.0.126:9000
Session Affinity: None
Events:
last log in the pod:
[23-Mar-2023 20:01:20] NOTICE: fpm is running, pid 289
[23-Mar-2023 20:01:20] NOTICE: ready to handle connections
The pod has no erros in the logs, never restarted.
ingress description:
Name: ingress
Labels:
Namespace: default
Address: ...
Ingress Class:
Default backend:
Rules:
Host Path Backends
---- ---- --------
.com
/ go-service-service:80 (10.244.0.76:80)
.com
/ main-api-service:9000 (10.244.0.126:9000)
Annotations: kubernetes.io/ingress.class: caddy
Events:
As I said, one of the containers (go) is working fine, the api is responding correctly. The php-fpm container only returns 502, I couldnt find the problem.