Kubernetes K3D入口总是错误404未找到



当做例如呼叫我的端点curl localhost:8081/ticketapi/ticket/get时,我收到404错误。我知道404错误是找不到路由。但是我不知道如何调试我的问题,或者我的。yml文件中是否有一些东西。

我是Kubernetes和Docker的新手,希望有人能帮我解决这个问题。

提前感谢。

我的端点在swagger

集群创建:k3d cluster create --api-port 6550 -p "8081:80@loadbalancer" --agents 2from here

部署:

apiVersion: apps/v1
kind: Deployment
metadata:
name: ticket-deployment
labels:
app: ticketapi
spec:
replicas: 1
selector:
matchLabels:
app: ticketapi
template:
metadata:
labels:
app: ticketapi
spec:
containers:
- name: ticketapi
image: stanpanman/ticketapi:latest
ports:
- containerPort: 80

服务:

apiVersion: v1
kind: Service
metadata:
name: ticket-service
spec:
selector:
app: ticketapi
ports:
- protocol: TCP
port: 80
targetPort: 80

入口:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: minimal-ingress
annotations:
ingress.kubernetes.io/ssl-redirect: "false"
spec:
ingressClassName: nginx-example
rules:
- http:
paths:
# Ticket API
- path: /ticketapi
pathType: Prefix
backend:
service:
name: ticketapi
port:
number: 80

描述舱:

Name:         ticket-deployment-6549764674-swwjq
Namespace:    default
Priority:     0
Node:         k3d-k3s-default-agent-1/172.24.0.3
Start Time:   Tue, 03 May 2022 11:31:50 +0200
Labels:       app=ticketapi
pod-template-hash=6549764674
Annotations:  <none>
Status:       Running
IP:           10.42.2.4
IPs:
IP:           10.42.2.4
Controlled By:  ReplicaSet/ticket-deployment-6549764674
Containers:
ticketapi:
Container ID:   containerd://f830c5396c5886c9109f733a07d9c2e02cde32b7689ed85dbfb8e62dc503705a
Image:          stanpanman/ticketapi:latest
Image ID:       docker.io/stanpanman/ticketapi@sha256:428990ac8d10dbf74039eb25a6899448f4cb96997cb5edde2e9d62e66d547070
Port:           80/TCP
Host Port:      0/TCP
State:          Running
Started:      Tue, 03 May 2022 11:32:03 +0200
Ready:          True
Restart Count:  0
Environment:    <none>
Mounts:
/var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-kgp8c (ro)
Conditions:
Type              Status
Initialized       True 
Ready             True 
ContainersReady   True 
PodScheduled      True 
Volumes:
kube-api-access-kgp8c:
Type:                    Projected (a volume that contains injected data from multiple sources)
TokenExpirationSeconds:  3607
ConfigMapName:           kube-root-ca.crt
ConfigMapOptional:       <nil>
DownwardAPI:             true
QoS Class:                   BestEffort
Node-Selectors:              <none>
Tolerations:                 node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
Type    Reason     Age   From               Message
----    ------     ----  ----               -------
Normal  Scheduled  17m   default-scheduler  Successfully assigned default/ticket-deployment-6549764674-swwjq to k3d-k3s-default-agent-1
Normal  Pulling    17m   kubelet            Pulling image "stanpanman/ticketapi:latest"
Normal  Pulled     17m   kubelet            Successfully pulled image "stanpanman/ticketapi:latest" in 12.656309048s
Normal  Created    17m   kubelet            Created container ticketapi
Normal  Started    17m   kubelet            Started container ticketapi

这可以帮助您调试:

检查您的应用程序是否实际工作在pod级别(确保pod-name是正确的):

kubectl port-forward pod/ticket-deployment-6549764674-swwjq 8080:80
#then try on your browser localhost:8080/whateverYouConfigured

如果这不起作用,pb可能来自您的应用程序(您可以连接到pod并执行curl localhost:80/whateverYouConfigured命令

)如果此操作有效,请尝试检查服务是否正常工作:

kubectl port-forward svc/ticket-service 8080:80
#then try on your browser localhost:8080/whateverYouConfigured

如果这不起作用,检查svc端点或标签

如果它成功了,那么你可以对入口做同样的事情:

kubectl port-forward <ingress-pod-name> 8080:<ingress-port>

如果这工作检查您的k3d配置/防火墙等

希望对您有所帮助:https://learnk8s.io/a/b0862c5c0f1e7a6db8145f7970dd9601.png

相关内容

  • 没有找到相关文章

最新更新