我目前有一个看起来像这样的服务:
Paulw11
我可以从绑定到VM的外部IP接收流量,但所有请求都由HTTP接收,源IP switch(recognizer.state) {
case .began:
let velocity = recognizer.velocity(in: self.view)
if (velocity.x > velocity.y) && (velocity.x > 0) {
print("moving right")
myBlocks[objectDragging].center.y = CGFloat(initPosy)
movingRight = true
}
else if ((abs(velocity.x)) > velocity.y) && (velocity.x < 0) {
print("moving left")
myBlocks[objectDragging].center.y = CGFloat(initPosy)
movingLeft = true
}
else if (velocity.y > velocity.x) && (velocity.y > 0) {
print("moving down")
myBlocks[objectDragging].center.x = CGFloat(initPosx)
movingDown = true
}
else if ((abs(velocity.y)) > velocity.x) && (velocity.y < 0){
print("moving up")
myBlocks[objectDragging].center.x = CGFloat(initPosx)
print(abs(velocity.y))
movingUp = true
}
case .changed:
if (movingRight == true) {
myBlocks[objectDragging].center.y = CGFloat(initPosy)
}
else if (movingLeft == true) {
myBlocks[objectDragging].center.y = CGFloat(initPosy)
}
else if (movingDown == true) {
myBlocks[objectDragging].center.x = CGFloat(initPosx)
}
else if (movingUp == true) {
myBlocks[objectDragging].center.x = CGFloat(initPosx)
}
case .ended:
movingUp = false
movingLeft = false
movingRight = false
movingDown = false
,这绝对是内部IP - 即使我连接到来自群集外部的VM的外部IP。
如何在不设置负载均衡器或入口的情况下获取请求的真实源IP?
答案 0 :(得分:1)
实现起来并不简单 - 由于kube-proxy的工作方式,您的流量可以在节点到达支持您服务的Pod之前在节点之间转发。
您可以使用一些测试版注释来解决此问题,特别是service.beta.kubernetes.io/external-traffic: OnlyLocal
。
文档中的更多信息,请访问:https://kubernetes.io/docs/tutorials/services/source-ip/#source-ip-for-services-with-typeloadbalancer
但这不符合您不需要LoadBalancer的额外要求。你能否扩展一下你不想参与LoadBalancer的原因?
答案 1 :(得分:1)
如果您只有一个广告连播,则可以使用hostNetwork: true
来实现此目标:
apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: caddy
spec:
replicas: 1
template:
metadata:
labels:
app: caddy
spec:
hostNetwork: true # <---------
containers:
- name: caddy
image: your_image
env:
- name: STATIC_BACKEND # example env in my custom image
value: $(STATIC_SERVICE_HOST):80
请注意,通过执行此操作您的pod将继承主机的DNS解析器,而不是Kubernetes&#39;。这意味着您无法再通过DNS名称解析群集服务。例如,在上面的示例中,您无法访问http://static处的static
服务。您仍然可以通过其environment variables注入的群集IP访问服务。