gpt4 book ai didi

go - 当我在地址中使用端口时,Kubernetes 日志不打印请求输出

转载 作者:行者123 更新时间:2023-12-01 22:17:35 25 4
gpt4 key购买 nike

我用 minikube 创建了一个集群

minikube start 

应用了这个 yaml list :
apiVersion: apps/v1
kind: Deployment
metadata:
name: gateway-deployment
spec:
selector:
matchLabels:
app: gateway
replicas: 1
template:
metadata:
labels:
app: gateway
spec:
containers:
- name: gateway
image: docker_gateway
imagePullPolicy: Never
ports:
- containerPort: 4001
protocol: TCP
---
apiVersion: v1
kind: Service
metadata:
name: gateway
spec:
selector:
app: gateway
ports:
- protocol: TCP
port: 4001

还有我在容器中的 GO 应用程序 docker_gateway只是一个带有一条路由的 gin http 服务器
package main
import "github.com/gin-gonic/gin"

func main() {
r := gin.Default()
r.GET("/hello", func(c *gin.Context) {
c.JSON(200, gin.H{
"message": "hello",
})
})

server = &http.Server{
Addr: ":4001",
Handler: r,
}

server.ListenAndServe()
}

在 Postman 中,我向 192.168.252.130:4001/hello 发出请求并得到回复

但是 Kubernetes Pod 在 Kubernetes 中的日志不会打印这些请求。我希望得到这个:
[GIN] 2019/10/25 - 14:17:20 | 200 |       1.115µs |      192.168.252.1| GET      /hello

但有趣的是当我添加 Ingress
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: ingress
spec:
backend:
serviceName: gateway
servicePort: 4001

我可以向 192.168.252.130/hello 和 192.168.252.130:4001/hello 发出请求
如果没有端口 Pod 的日志打印请求,但使用端口 - 他们不会。
[GIN] 2019/10/25 - 14:19:13 | 200 |       2.433µs |      192.168.252.1| GET      /hello

最佳答案

这是因为您无法访问 ClusterIP 的 kubernetes 服务从集群的外部(在您的情况下,在 minikube 之外)键入。

了解有关服务类型的更多信息 here

要从外部访问您的服务,请将您的服务更改为 NodePort类型。

就像是:

apiVersion: v1
kind: Service
metadata:
name: gateway
spec:
selector:
app: gateway
ports:
- protocol: TCP
nodePort: 30036
port: 4001
type: NodePort

然后您就可以通过 http://<minikube-ip>:30036/ 访问它。

关于go - 当我在地址中使用端口时,Kubernetes 日志不打印请求输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58561504/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com