Reputation: 185
I am playing with microk8s and I am trying to deploy nextcloud to get more familiar with it. However the deployment of nextcloud went fine, I am facing some issues with setting ingress for that. Maybe you could take a look at my manifests and ingress resource and help find me the problem.
This is the deployment file:
apiVersion: v1
kind: Service
metadata:
namespace: nextcloud
name: nextcloud-service
labels:
run: nextcloud-app
spec:
ports:
- port: 80
targetPort: 8080
selector:
run: nextcloud-app
---
apiVersion: apps/v1
kind: Deployment
metadata:
namespace: nextcloud
name: nextcloud-deployment
labels:
app: nextcloud-app
spec:
replicas: 1
selector:
matchLabels:
app: nextcloud-app
template:
metadata:
labels:
app: nextcloud-app
spec:
containers:
- image: nextcloud:latest
name: nextcloud
env:
- name: NEXTCLOUD_ADMIN_USER
valueFrom:
configMapKeyRef:
name: nextcloud-configuration
key: nextcloud_admin_user
- name: NEXTCLOUD_ADMIN_PASSWORD
valueFrom:
secretKeyRef:
name: nextcloud-secret
key: admin_password
ports:
- containerPort: 8080
name: http
volumeMounts:
- name: nextcloud-pv
mountPath: /var/www/html/data
volumes:
- name: nextcloud-pv
persistentVolumeClaim:
claimName: nextcloud-pv-claim
and this is the ingress resource file:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: nextcloud-ingress
namespace: nextcloud
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- http:
paths:
- path: /nextcloud
pathType: Prefix
backend:
service:
name: nextcloud-service
port:
number: 80
Following addons are enabled on my microk8s:
Now I would like to show you some k8s output.
kubectl -n nextcloud describe svc nextcloud-service
Name: nextcloud-service
Namespace: nextcloud
Labels: run=nextcloud-app
Annotations: <none>
Selector: run=nextcloud-app
Type: ClusterIP
IP: 10.152.183.189
Port: <unset> 80/TCP
TargetPort: 8080/TCP
Endpoints: <none>
Session Affinity: None
Events: <none>
kubectl -n nextcloud describe ingress nextcloud-ingress
Name: nextcloud-ingress
Namespace: nextcloud
Address: 192.168.60.2
Default backend: default-http-backend:80 (<error: endpoints "default-http-backend" not found>)
Rules:
Host Path Backends
---- ---- --------
*
/nextcloud nextcloud-service:80 <none>)
Annotations: nginx.ingress.kubernetes.io/rewrite-target: /
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal CREATE 11m nginx-ingress-controller Ingress nextcloud/nextcloud-ingress
Normal CREATE 11m nginx-ingress-controller Ingress nextcloud/nextcloud-ingress
Normal UPDATE 63s (x22 over 11m) nginx-ingress-controller Ingress nextcloud/nextcloud-ingress
Normal UPDATE 63s (x22 over 11m) nginx-ingress-controller Ingress nextcloud/nextcloud-ingress
kubectl -n ingress logs pod/nginx-ingress-microk8s-controller-k2q6c
I1024 19:56:37.955953 6 status.go:275] updating Ingress nextcloud/nextcloud-ingress status from [{192.168.60.2 }] to [{127.0.0.1 }]
W1024 19:56:37.963861 6 controller.go:909] Service "nextcloud/nextcloud-service" does not have any active Endpoint.
I1024 19:56:37.964276 6 event.go:278] Event(v1.ObjectReference{Kind:"Ingress", Namespace:"nextcloud", Name:"nextcloud-ingress", UID:"913dcf73-e5df-4ad9-a23b-22d6ad8b83a7", APIVersion:"networking.k8s.io/v1beta1", ResourceVersion:"192287", FieldPath:""}): type: 'Normal' reason: 'UPDATE' Ingress nextcloud/nextcloud-ingress
I1024 19:56:39.491960 6 event.go:278] Event(v1.ObjectReference{Kind:"Ingress", Namespace:"nextcloud", Name:"nextcloud-ingress", UID:"913dcf73-e5df-4ad9-a23b-22d6ad8b83a7", APIVersion:"networking.k8s.io/v1beta1", ResourceVersion:"192295", FieldPath:""}): type: 'Normal' reason: 'UPDATE' Ingress nextcloud/nextcloud-ingress
W1024 19:56:41.297313 6 controller.go:909] Service "nextcloud/nextcloud-service" does not have any active Endpoint.
I1024 19:57:37.955734 6 status.go:275] updating Ingress nextcloud/nextcloud-ingress status from [{192.168.60.2 }] to [{127.0.0.1 }]
W1024 19:57:37.969214 6 controller.go:909] Service "nextcloud/nextcloud-service" does not have any active Endpoint.
I1024 19:57:37.969711 6 event.go:278] Event(v1.ObjectReference{Kind:"Ingress", Namespace:"nextcloud", Name:"nextcloud-ingress", UID:"913dcf73-e5df-4ad9-a23b-22d6ad8b83a7", APIVersion:"networking.k8s.io/v1beta1", ResourceVersion:"192441", FieldPath:""}): type: 'Normal' reason: 'UPDATE' Ingress nextcloud/nextcloud-ingress
I1024 19:57:39.492467 6 event.go:278] Event(v1.ObjectReference{Kind:"Ingress", Namespace:"nextcloud", Name:"nextcloud-ingress", UID:"913dcf73-e5df-4ad9-a23b-22d6ad8b83a7", APIVersion:"networking.k8s.io/v1beta1", ResourceVersion:"192446", FieldPath:""}): type: 'Normal' reason: 'UPDATE' Ingress nextcloud/nextcloud-ingress
W1024 19:57:41.302640 6 controller.go:909] Service "nextcloud/nextcloud-service" does not have any active Endpoint.
I1024 19:58:37.956198 6 status.go:275] updating Ingress nextcloud/nextcloud-ingress status from [{192.168.60.2 }] to [{127.0.0.1 }]
W1024 19:58:37.964655 6 controller.go:909] Service "nextcloud/nextcloud-service" does not have any active Endpoint.
I1024 19:58:37.965017 6 event.go:278] Event(v1.ObjectReference{Kind:"Ingress", Namespace:"nextcloud", Name:"nextcloud-ingress", UID:"913dcf73-e5df-4ad9-a23b-22d6ad8b83a7", APIVersion:"networking.k8s.io/v1beta1", ResourceVersion:"192592", FieldPath:""}): type: 'Normal' reason: 'UPDATE' Ingress nextcloud/nextcloud-ingress
I1024 19:58:39.493436 6 event.go:278] Event(v1.ObjectReference{Kind:"Ingress", Namespace:"nextcloud", Name:"nextcloud-ingress", UID:"913dcf73-e5df-4ad9-a23b-22d6ad8b83a7", APIVersion:"networking.k8s.io/v1beta1", ResourceVersion:"192600", FieldPath:""}): type: 'Normal' reason: 'UPDATE' Ingress nextcloud/nextcloud-ingress
W1024 19:58:41.298097 6 controller.go:909] Service "nextcloud/nextcloud-service" does not have any active Endpoint.
I1024 19:59:37.955569 6 status.go:275] updating Ingress nextcloud/nextcloud-ingress status from [{192.168.60.2 }] to [{127.0.0.1 }]
W1024 19:59:37.964975 6 controller.go:909] Service "nextcloud/nextcloud-service" does not have any active Endpoint.
I1024 19:59:37.965045 6 event.go:278] Event(v1.ObjectReference{Kind:"Ingress", Namespace:"nextcloud", Name:"nextcloud-ingress", UID:"913dcf73-e5df-4ad9-a23b-22d6ad8b83a7", APIVersion:"networking.k8s.io/v1beta1", ResourceVersion:"192746", FieldPath:""}): type: 'Normal' reason: 'UPDATE' Ingress nextcloud/nextcloud-ingress
I1024 19:59:39.491840 6 event.go:278] Event(v1.ObjectReference{Kind:"Ingress", Namespace:"nextcloud", Name:"nextcloud-ingress", UID:"913dcf73-e5df-4ad9-a23b-22d6ad8b83a7", APIVersion:"networking.k8s.io/v1beta1", ResourceVersion:"192750", FieldPath:""}): type: 'Normal' reason: 'UPDATE' Ingress nextcloud/nextcloud-ingress
W1024 19:59:41.298496 6 controller.go:909] Service "nextcloud/nextcloud-service" does not have any active Endpoint.
I1024 20:00:37.956061 6 status.go:275] updating Ingress nextcloud/nextcloud-ingress status from [{192.168.60.2 }] to [{127.0.0.1 }]
W1024 20:00:37.965139 6 controller.go:909] Service "nextcloud/nextcloud-service" does not have any active Endpoint.
I1024 20:00:37.965212 6 event.go:278] Event(v1.ObjectReference{Kind:"Ingress", Namespace:"nextcloud", Name:"nextcloud-ingress", UID:"913dcf73-e5df-4ad9-a23b-22d6ad8b83a7", APIVersion:"networking.k8s.io/v1beta1", ResourceVersion:"192896", FieldPath:""}): type: 'Normal' reason: 'UPDATE' Ingress nextcloud/nextcloud-ingress
I1024 20:00:39.489924 6 event.go:278] Event(v1.ObjectReference{Kind:"Ingress", Namespace:"nextcloud", Name:"nextcloud-ingress", UID:"913dcf73-e5df-4ad9-a23b-22d6ad8b83a7", APIVersion:"networking.k8s.io/v1beta1", ResourceVersion:"192904", FieldPath:""}): type: 'Normal' reason: 'UPDATE' Ingress nextcloud/nextcloud-ingress
W1024 20:00:41.298762 6 controller.go:909] Service "nextcloud/nextcloud-service" does not have any active Endpoint.
I1024 20:01:37.955481 6 status.go:275] updating Ingress nextcloud/nextcloud-ingress status from [{192.168.60.2 }] to [{127.0.0.1 }]
W1024 20:01:37.963612 6 controller.go:909] Service "nextcloud/nextcloud-service" does not have any active Endpoint.
I1024 20:01:37.963681 6 event.go:278] Event(v1.ObjectReference{Kind:"Ingress", Namespace:"nextcloud", Name:"nextcloud-ingress", UID:"913dcf73-e5df-4ad9-a23b-22d6ad8b83a7", APIVersion:"networking.k8s.io/v1beta1", ResourceVersion:"193049", FieldPath:""}): type: 'Normal' reason: 'UPDATE' Ingress nextcloud/nextcloud-ingress
I1024 20:01:39.490523 6 event.go:278] Event(v1.ObjectReference{Kind:"Ingress", Namespace:"nextcloud", Name:"nextcloud-ingress", UID:"913dcf73-e5df-4ad9-a23b-22d6ad8b83a7", APIVersion:"networking.k8s.io/v1beta1", ResourceVersion:"193058", FieldPath:""}): type: 'Normal' reason: 'UPDATE' Ingress nextcloud/nextcloud-ingress
W1024 20:01:41.297141 6 controller.go:909] Service "nextcloud/nextcloud-service" does not have any active Endpoint.
Calling http://k8s.ip/nextcloud results with 503. Any ideas what I am missing?
Upvotes: 1
Views: 774
Reputation: 9877
As I posted in the comments:
You are receiving 503 code because you have a missmatch in your
Service
->.spec.selector
(run: nextcloud-app
) and yourDeployment
->.spec.selector.matchLabels
(app: nextcloud-app
). You will need to have them both the same. You can see it also when describing the service (no endpoint).
The issue in this particular setup is that there is a missmatch between a matchLabel
in a Deployment
and selector
in the Service
:
Deployment
spec:
replicas: 1
selector:
matchLabels:
app: nextcloud-app # <-- HERE!
Service
:
spec:
ports:
- port: 80
targetPort: 8080
selector:
run: nextcloud-app # <-- HERE!
To fix that you will need to have both of them matching (for example):
app: nextcloud-app
in a Deployment
and a Service
Some of the ways to identify mismatched selector (by using examples from post):
YAML
definitions as shown above$ kubectl -n nextcloud describe svc nextcloud-service
Name: nextcloud-service
Namespace: nextcloud
Labels: run=nextcloud-app
Annotations: <none>
Selector: run=nextcloud-app
Type: ClusterIP
IP: 10.152.183.189
Port: <unset> 80/TCP
TargetPort: 8080/TCP
Endpoints: <none> # <-- HERE
Session Affinity: None
Events: <none>
Above describe
shows that the service is created but there are no endpoints
(Pods
) to send the traffic to.
No endpoint could be also related to the fact that
Pod
is notReady
or is not inHealthy
state
$ kubectl get endpoint -n nextcloud
NAME ENDPOINTS AGE
nextcloud-service <none> 1m
Ingress
controller (posted in the question):I1024 19:56:37.955953 6 status.go:275] updating Ingress nextcloud/nextcloud-ingress status from [{192.168.60.2 }] to [{127.0.0.1 }]
W1024 19:56:37.963861 6 controller.go:909] Service "nextcloud/nextcloud-service" does not have any active Endpoint.
I1024 19:56:37.964276 6 event.go:278] Event(v1.ObjectReference{Kind:"Ingress", Namespace:"nextcloud", Name:"nextcloud-ingress", UID:"913dcf73-e5df-4ad9-a23b-22d6ad8b83a7", APIVersion:"networking.k8s.io/v1beta1", ResourceVersion:"192287", FieldPath:""}): type: 'Normal' reason: 'UPDATE' Ingress nextcloud/nextcloud-ingress
<--REDACTED--> Service "nextcloud/nextcloud-service" does not have any active Endpoint.
I encourage you to check the Helm chart of nextcloud:
Additional resources:
Upvotes: 1