开发者社区 > 云原生 > 容器服务 > 正文

容器服务ACK自建的k8s ,里面ingress--nginx采集客户端ip怎么配置呢?

容器服务ACK自建的k8s ,里面ingress--nginx采集客户端ip怎么配置呢?

展开
收起
三分钟热度的鱼 2023-12-13 19:44:01 120 0
1 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    在ACK自建的Kubernetes集群中,可以通过配置Ingress-nginx的annotation来采集客户端IP。具体步骤如下:

    1. 创建一个名为custom-annotations的ConfigMap,用于存储自定义注解的配置信息。可以使用以下命令创建:

      kubectl create configmap custom-annotations --from-literal=client-ip="X-Forwarded-For"
      
    2. 在需要采集客户端IP的Ingress资源上添加注解ingress.kubernetes.io/custom-annotations,并将其值设置为刚刚创建的ConfigMap的名称。例如:

      apiVersion: networking.k8s.io/v1
      kind: Ingress
      metadata:
        name: my-ingress
        annotations:
          ingress.kubernetes.io/custom-annotations: "custom-annotations"
      spec:
        ...
      
    3. 在Ingress资源的后端服务中,使用$proxy_add_x_forwarded_for变量来获取客户端IP。例如:

      apiVersion: apps/v1
      kind: Deployment
      metadata:
        name: my-service
      spec:
        replicas: 3
        selector:
          matchLabels:
            app: my-app
        template:
          metadata:
            labels:
              app: my-app
          spec:
            containers:
            - name: my-container
              image: my-image
              ports:
              - containerPort: 8080
              env:
              - name: X_FORWARDED_FOR
                valueFrom:
                  fieldRef:
                    fieldPath: status.podIP
              - name: CLIENT_IP
                valueFrom:
                  fieldRef:
                    fieldPath: metadata.annotations['ingress.kubernetes.io/custom-annotations']
              ...
      

    通过以上步骤,就可以在Ingress-nginx中采集客户端IP了。

    2023-12-14 21:51:20
    赞同 展开评论 打赏

国内唯一 Forrester 公共云容器平台领导者象限。

相关产品

  • 容器服务Kubernetes版
  • 相关电子书

    更多
    ACK 云原生弹性方案—云原生时代的加速器 立即下载
    ACK集群类型选择最佳实践 立即下载
    企业运维之云原生和Kubernetes 实战 立即下载

    相关镜像