问题:我想在名为“ORDER_ID”的请求标头上实现粘性。因此,如果特定的订单请求应该由 Kubernetes 中的特定 pod 提供服务。但在我的情况下,它不起作用,因为请求并没有坚持到特定的 pod,而是被分发到不同的 pod。
这就是我安装大使的方式:
- helm repo 添加数据线https://www.getambassador.io
- kubectl 创建命名空间大使
- 掌舵安装大使--命名空间大使数据线/大使
以下是 yaml 文件:
部署.yml
apiVersion: apps/v1
kind: Deplyment
metadata:
name: order-service
spec:
replicas: 2
selector:
matchLabels:
app: order-service
strategy:
type: RollingUpdate
template:
metadata:
labels:
app: order-service
spec:
containers:
- name: orderservice
image: xyz.io/orderservice
imagePullPolicy: Always
ports:
- containerPort: 3000
2 服务.yml
apiVersion: v1
kind: Service
metadata:
name: order-service
spec:
ports:
- protocol: TCP
port: 3000
targetPort: 3000
selector:
app: order-service
3 映射.yml
apiVersion: getambassador.io/v2
kind: Mapping
metadata:
name: ambassador-backend
spec:
prefix: /
service: order-service:3000
resolver: endpoint
load_balancer:
policy: least_request
header: ORDER_ID
测试 -
curl --insecure --location --request GET 'http://.../backend/orders' --header 'Content-Type: application/json' --header 'ORDER_ID: 1234'
有什么我遗漏或做错了什么吗?