Я создал кластер с 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
И мое приложение GO в контейнере docker_gateway
это просто http-сервер gin с одним маршрутом
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()
}
В Почтальоне я делаю запросы к 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/привет и 192.168.252.130:4001/hello И без запросов на печать журналов Pod порта, но с портом - они не.
[GIN] 2019/10/25 - 14:19:13 | 200 | 2.433µs | 192.168.252.1| GET /hello