登录
首页 >  Golang >  Go问答

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

来源:stackoverflow

时间:2024-04-11 17:30:34 226浏览 收藏

golang学习网今天将给大家带来《当我使用地址中的端口时,Kubernetes 日志不会打印请求输出》,感兴趣的朋友请继续看下去吧!以下内容将会涉及到等等知识点,如果你是正在学习Golang或者已经是大佬级别了,都非常欢迎也希望大家都能给我建议评论哈~希望能帮助到大家!

问题内容

我已经使用minikube创建了一个集群

minikube start

应用了此 yaml 清单:

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

容器 docker_gateway 中的 go 应用程序只是一个具有一条路由的 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 中的 kubernetes pod 日志不会打印这些请求。我希望得到这个:

[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

解决方案


这是因为您无法从集群外部(在您的情况下,在 minikube 外部)访问 clusterip 类型的 kubernetes 服务。

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

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

类似于:

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

然后您就可以通过 http://:30036/ 访问它

理论要掌握,实操不能落!以上关于《当我使用地址中的端口时,Kubernetes 日志不会打印请求输出》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>