kubernetes - MicroK8S 部署网络服务器
问题描述
我正在玩 microk8s,我正在尝试部署 nextcloud 以更熟悉它。但是 nextcloud 的部署很顺利,我在为此设置入口时遇到了一些问题。也许你可以看看我的清单和入口资源并帮助我找到问题。
这是部署文件:
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
这是入口资源文件:
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
在我的 microk8s 上启用了以下插件:
- dns
- 入口
现在我想向您展示一些 k8s 输出。
kubectl -n nextcloud 描述 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 描述入口 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 入口日志 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.
调用http://k8s.ip/nextcloud结果为 503。任何想法我错过了什么?
解决方案
正如我在评论中发布的:
您收到 503 代码是因为您的
Service
->.spec.selector
(run: nextcloud-app
) 和Deployment
->.spec.selector.matchLabels
(app: nextcloud-app
) 不匹配。你需要让它们都一样。您也可以在描述服务时看到它(无端点)。
此特定设置中的问题是 amatchLabel
中的 aDeployment
和selector
中的a 不匹配Service
:
Deployment
spec:
replicas: 1
selector:
matchLabels:
app: nextcloud-app # <-- HERE!
Service
:
spec:
ports:
- port: 80
targetPort: 8080
selector:
run: nextcloud-app # <-- HERE!
要解决这个问题,您需要让它们都匹配(例如):
app: nextcloud-app
在一个Deployment
和一个Service
识别不匹配选择器的一些方法(通过使用帖子中的示例):
YAML
如上所示手动检查定义$ 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>
以上describe
显示服务已创建,但没有endpoints
( Pods
) 可将流量发送到。
Pod
没有端点也可能与未处于状态Ready
或未处于Healthy
状态的事实相关
$ kubectl get endpoint -n nextcloud
NAME ENDPOINTS AGE
nextcloud-service <none> 1m
- 来自控制器的日志
Ingress
(发布在问题中):
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.
我鼓励你查看 nextcloud 的 Helm 图表:
其他资源:
推荐阅读
- python - 如何在对第一个数据帧的某些列执行数学函数时从现有数据帧的每第 n 行创建一个新数据帧
- excel - Excel 中有没有办法根据其他单元格的信息在新列中创建新字符串?
- android - inapp update android 应用程序已安装但我得到相同的版本
- maven - IntellijIdea 无法识别网络中 jar 中的类
- azure - 同一服务器上的多个自托管 Azure 管道代理
- python - 使用 NN 进行权重预测
- c - GSM Telit GL865-QUAD AT指令,错误:314(SIM卡忙)
- postgresql - 远程访问postgresql server windows 10
- mysql - 相同的 SQL 但有不同的结果
- json - 带有 jq json 字符串的 sed 未终止的 `s' 命令