容器服务ACK自建的k8s ,里面ingress--nginx采集客户端ip怎么配置呢?
在ACK自建的Kubernetes集群中,可以通过配置Ingress-nginx的annotation来采集客户端IP。具体步骤如下:
创建一个名为custom-annotations
的ConfigMap,用于存储自定义注解的配置信息。可以使用以下命令创建:
kubectl create configmap custom-annotations --from-literal=client-ip="X-Forwarded-For"
在需要采集客户端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:
...
在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了。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。