【发布时间】:2020-02-23 02:52:56
【问题描述】:
这是 minikube Kubernetes 的清单文件,用于部署和服务:
apiVersion: apps/v1
kind: Deployment
metadata:
name: hello-deployment
spec:
selector:
matchLabels:
app: hello
replicas: 3
template:
metadata:
labels:
app: hello
spec:
containers:
- name: hello
image: hello_hello
imagePullPolicy: Never
ports:
- containerPort: 4001
protocol: TCP
---
apiVersion: v1
kind: Service
metadata:
name: hello
spec:
selector:
app: hello
ports:
- port: 4001
nodePort: 30036
protocol: TCP
type: NodePort
还有一个用 Golang 编写的简单 HTTP 服务器
package main
import (
http "net/http"
"github.com/gin-gonic/gin"
)
func main() {
r := gin.Default()
r.GET("/ping", func(c *gin.Context) {
c.JSON(200, gin.H{
"message": "pong",
})
})
server := &http.Server{
Addr: ":4001",
Handler: r,
}
server.ListenAndServe()
}
当我向 IP:30036/ping 发出多个请求然后打开 pod 的日志时,我可以看到 3 个 pod 中只有 1 个处理所有请求。如何让其他 Pod 响应请求?
【问题讨论】:
-
你是如何提出请求的?
-
@Thomas 我打开 Postman,输入带有端口 30036 的 IP 地址和路径 /ping。之后,我多次单击“发送”按钮并收到回复。然后我打开 pod 日志,看到所有请求都发送到 3 个 pod 中的 1 个。
标签: go kubernetes load-balancing