0

我在 ALB(创建者 AWS Load Balancer Controller)后面的 EKS pod 上创建了转发代理服务器。所有 pod 都可以通过 ALB 通过 8118 端口进行响应。

pod 和 ingress 等资源对我来说看起来不错。然后我尝试了代理服务器是否可以正常工作curl -Lx k8s-proxy-sample-domain.ap-uswest-1.elb.amazonaws.com:18118 ipinfo.io

通常,我从ipinfo.io获得随机 IP 地址。但它没有....所以,我也这样做了port-forad。像这样:

kubectl port-forward specifi-pod 8118:8118

然后我重新尝试在我的主机地址上重定向访问。

curl -Lx localhost:8118 ipinfo.io

在这种情况下,进展顺利。我无法理解原因。THROUGH ALB和有什么区别port-forward。我应该出于某种原因使用 NLB 吗?还是一些配置错误?

我的环境

  • k8s版本:v1.18.2
  • 节点类型:fargate

显现

这是我的清单。

---
apiVersion: v1
kind: Namespace
metadata:
  name: tor-proxy
---
apiVersion: apps/v1
kind: Deployment
metadata:
  namespace: tor-proxy
  name: tor-proxy-deployment
spec:
  selector:
    matchLabels:
      app.kubernetes.io/name: tor-proxy
  replicas: 5
  template:
    metadata:
      labels:
        app.kubernetes.io/name: tor-proxy
    spec:
      containers:
      - image: dperson/torproxy
        imagePullPolicy: Always
        name: tor-proxy
        ports:
        - containerPort: 8118

---
apiVersion: v1
kind: Service
metadata:
  labels:
    name: tor-proxy
  name: tor-proxy-service
  namespace: tor-proxy
spec:
  ports:
    - port: 18118
      targetPort: 8118
      protocol: TCP
  type: NodePort
  selector:
    app.kubernetes.io/name: tor-proxy
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  namespace: tor-proxy
  name: tor-proxy-ingress
  annotations:
    kubernetes.io/ingress.class: alb
    alb.ingress.kubernetes.io/scheme: internet-facing
    alb.ingress.kubernetes.io/target-type: ip
    alb.ingress.kubernetes.io/listen-ports: '[{"HTTP": 18118}]'
spec:
  rules:
    - http:
        paths:
          - path: /*
            backend:
              serviceName: tor-proxy-service
              servicePort: 18118
4

1 回答 1

0

使用NLBnot ALB,因为它通过代理服务器将客户端 IP 传递到目标站点。

于 2021-01-30T12:13:00.350 回答