Есть ли способ предоставить пользовательское значение, отличное от ClientIP для sessionAffinity в kubernetes? - PullRequest
0 голосов
/ 20 февраля 2020

Прежде всего, запрос идет к прокси-сервису, который я реализовал, сервис перенаправляет запрос в стручки случайным образом без использования sessionAffinity. Я хочу отправлять запросы в тот же модуль, основываясь на пользовательских значениях, которые я установил в параметрах запроса, используя метод post. Я использовал sessionAffinity с моим сервисом yml.

Вот сервисный yml с sessionAffinity:

apiVersion: v1
metadata:
  name: abcd-service
  namespace: ab-services
spec:
  ports:
  - name: http
    protocol: TCP
    port: ****
    targetPort: ****
    nodePort: *****
  selector:
    app: abcd-pod
  sessionAffinity: ClientIP
  sessionAffinityConfig:
    clientIP:
      timeoutSeconds: 600
  type: NodePort

Теперь проблема в том, что когда запросы отправляются несколькими клиентами с одного и того же IP-адреса, все запросы направляются на один модуль, а не на другие реплики, что вызывает неравномерную балансировку нагрузки. Но я не хочу, чтобы запросы пересылались случайным образом. Я хочу, чтобы все запросы от одного и того же клиента или другого клиента были перенаправлены на основе пользовательского значения, которое я установил в запросе post, а не clientIP, учитывая, что clientIP разрешает исходный IP-адрес каждого запроса.

1 Ответ

0 голосов
/ 20 февраля 2020

Как вы можете прочитать здесь , в настоящее время он поддерживает только значения ClientIP и None.

sessionAffinity string Поддерживает "ClientIP" и "Нет". Используется для поддержания соответствия сеанса. Разрешить привязку сеанса клиента на основе IP. Должно быть ClientIP или Нет. По умолчанию Нет. Дополнительная информация: https://kubernetes.io/docs/concepts/services-networking/service/#virtual -ips-and-service-прокси

К сожалению, другие значения запрещены.

...