首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kubernetes K3D宏始终错误404未找到

Kubernetes K3D宏始终错误404未找到
EN

Stack Overflow用户
提问于 2022-05-03 09:58:02
回答 1查看 557关注 0票数 0

当执行例如对端点curl localhost:8081/ticketapi/ticket/get的调用时,我会收到一个错误404。我知道错误404是无法找到路由。但是,我不知道如何调试我的问题,或者我的.yml文件中是否有错误。

我是库伯内特斯和道克尔的新手,我希望有人能帮我解决这个问题。

提前谢谢。

我的端点在“挥霍”中

集群创建:来自k3d cluster create --api-port 6550 -p "8081:80@loadbalancer" --agents 2这里

部署:

代码语言:javascript
复制
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

服务:

代码语言:javascript
复制
apiVersion: v1
kind: Service
metadata:
  name: ticket-service
spec:
  selector:
    app: ticketapi
  ports:
    - protocol: TCP
      port: 80
      targetPort: 80

入口:

代码语言:javascript
复制
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

描述豆荚:

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

发布于 2022-05-04 06:59:40

这可以帮助您调试:

检查您的应用程序是否实际在吊舱级别工作(确保吊舱名称正确):

代码语言:javascript
复制
kubectl port-forward pod/ticket-deployment-6549764674-swwjq 8080:80

#then try on your browser localhost:8080/whateverYouConfigured

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

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

代码语言:javascript
复制
kubectl port-forward svc/ticket-service 8080:80
#then try on your browser localhost:8080/whateverYouConfigured

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

如果它成功了,那么您也可以对入口做同样的操作:

代码语言:javascript
复制
kubectl port-forward <ingress-pod-name> 8080:<ingress-port>

如果有效,请检查您的k3d、配置/防火墙等。

希望这能有所帮助:https://learnk8s.io/a/b0862c5c0f1e7a6db8145f7970dd9601.png

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72097715

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档