Pod RL Service завершается с ошибкой |
time="2022-08-04T14:30:21Z" level=warning msg="connecting to redis on mymaster,redis-sentinel-0.redis-sentinel:26379,redis-sentinel-1.redis-sentinel:26379,redis-sentinel-2.redis-sentinel:26379 with pool size 10" panic: dial tcp: lookup redis-sentinel-2.redis-sentinel on { IP_ADDRESS }:53: no such host |
Необходимо удостовериться, что 3 Pod StatefulSet redis-sentinel запущены корректно |
Некорректная балансировка запросов от Ingress Gateway до RL Service |
В случае перезапуска Pod RL Service или увеличения числа Pods, трафик на вновь созданный Pod почти не поступает |
Убедиться, что в артефакте GlobalRateLimit указан Headless Service RL Service, а не обычный. Headless Service — это Service, у которого параметр clusterIP выставлен в None |
Не срабатывает RateLimit |
- |
Проверить, что: 1) все Pod RL Operator, RL Service, Redis, Sentinel, Radish, Egress Gateway (в зависимости от выбранного варианта развертывания состав Pod может отличаться) запущены, в логах приложений нет ошибок; 2) загружен артефакт GlobalRateLimit (GRL) с необходимыми настройками; 3) в артефакте GRL выставлено корректное значение поля visibility в соответствии с типом установки компонента SRLS, для централизованного — cluster, для децентрализованного — namespace; 4) значение поля workloadSelector, указанное в GRL, соответствует меткам Ingress (Egress) Gateway; 5) указанные значения настроек rlserver и rlserverport верны — в качестве host должен быть указан Headless Service RL Service, порт — 8081); 6) в случае централизованного варианта установки в поле rlnamespace должен быть указан целевой namespace централизованного компонента SRLS; 7) созданы все необходимые Role, ClusterRole, RoleBinding и ClusterRoleBinding в соответствии с инструкцией по установке; 8) в полях endpoint указан host, на который поступает трафик, и порт, который слушает Ingress (Egress), который задается в артефакте Gateway |
Не запускается Pod RL Service или RL Operator |
panic: dial tcp: address radish-0.radish.da-dp2-sy-dev-srls-03.svc.cluster.local:2181,radish-1.radish.da-dp2-sy-dev-srls-03.svc.cluster.local:2181,radish-2.radish.da-dp2-sy-dev-srls-03.svc.cluster.local:2181: too many colons in address |
Выставьте корректный тип Radish (standalone или scarecrow) и укажите корректный список серверов. Для standalone должен быть указан только один адрес подключения |
Не запускается Pod |
Failed to pull image "registry.mydomain.ru/ci90000055_srls/operator@sha256:{ hash }": rpc error: code = Unknown desc = Error reading manifest sha256:{ hash } in registry.mydomain.ru/domain/srls/operator: unauthorized: authentication required |
Предоставьте права на доступ к образу для пользователя, прописанного в ImagePullSecret rls-image-pull-secret |
Не применяется конфигурация GlobalRateLimit |
1) Ошибка в блоке status: endpoint [test-server1-endpoint-tribe-sy-srls-dev-03.apps.stands-vdc01.solution.test:8080] tenant.Name [server1.path] tenant.ResourceName [account-3] duplicate error: GlobalRateLimit manifest not valid. 2) В блоке status есть ошибка с полем reason: synd has not connected yet. 3) В блоке status есть ошибки с полем reason: patch was not applied |
1) Значение поля resourceName должно быть уникальным при конфигурировании endpoint. Скорректируйте значение поля resourceName. 2) Нет подключения к SYND, проверьте его работоспособность. 3) SYND не смог применить патч. В блоке status посмотрите имена ресурсов, которые не применились, и сообщение об ошибке. Скорректируйте артефакт GlobalRateLimit |
Не запускается Pod RL Operator |
W0816 16:15:07.596714 1 reflector.go:424] sigs.k8s.io/controller-runtime/pkg/cache/internal/informers_map.go:262: failed to list *v1alpha1.GlobalRateLimit: globalratelimits.ratelimit.service is forbidden: User "system:serviceaccount:some-namespace:rate-limiter-service" cannot list resource "globalratelimits" in API group "ratelimit.service" at the cluster scope |
Убедитесь, что созданы артефакты ClusterRole и ClusterRoleBinding, предоставляющие права на артефакт GlobalRateLimit для ServiceAccount rate-limiter-service в вашем namespace |
Warning в статусе GlobalRateLimit |
Сообщения с подобным текстом могут появляться в status артефакта GlobalRateLimit и логах RL Operator: 1) endpoint [ingress-my-namespace-02.apps.domain.org:8080] byHeader [synapse-consumerid] invokers are shadowed by uri_prefixes 2) unused [size_key [size1]] |
В сообщении говорится о некритичной ошибке конфигурации: 1) Для endpoint в секции by_header указаны одновременно invokers и uri_prefixes; uri_prefixes имеет более высокий приоритет, поэтому блок invokers игнорируется — необходимо удалить одну из секций. 2) В артефакте GlobalRateLimit определен набор ограничений в разрезе размера тела запроса size1, который не используется ни в одном endpoint |
Не запускается Pod RL Operator |
error controller-runtime.source.EventHandler failed to get informer from cache {"error": "failed to get restmapping: failed to get server groups: Get "https://kubernetes.default.svc.cluster.local:443/api": read tcp { IP_ADDRESS }:44884->{ IP_ADDRESS_EXTERNAL }:443: read: connection reset by peer - error from a previous attempt: read tcp { IP_ADDRESS }:44878->{ IP_ADDRESS_EXTERNAL }:443: read: connection reset by peer"} |
Проверьте корректность маршрута проброса трафика к Kube API через Egress. Должны быть созданы артефакты VirtualService с названием egress-kubeapi-vs, ServiceEntry с названием egress-kubeapi-se, Gateway с названием egress-kubeapi-gw и Service с названием egressgateway-rls-svc. Если выбран децентрализованный вариант установки, убедитесь, что в стендозависимом параметре .Values.egress.selectors указан корректный набор label, указывающий на pod Egress Gateway |
Заданная в артефакте GlobalRateLimit квота исчерпывается при меньшем количестве запросов |
В GlobalRateLimit установлена квота 2 запроса в минуту, отправляются 2 запроса, однако Rate Limiter Service пропускает лишь 1. В логах пода rate-limiter-service можно заметить, что пришло в 2 раза больше запросов:
2024-06-25T09:19:43.617 DBG got descriptor descriptor=(endpoint=svchttp),(svchttp.httpecho-http-header=httpecho-http-client) 2024-06-25T09:19:43.617 DBG starting get limit lookup 2024-06-25T09:19:43.617 DBG applying limit requests=2 unit=MINUTE 2024-06-25T09:19:43.617 DBG got descriptor descriptor=(endpoint=svchttp),(svchttp.httpecho-http-header=httpecho-http-client) 2024-06-25T09:19:43.617 DBG starting get limit lookup 2024-06-25T09:19:43.617 DBG applying limit requests=2 unit=MINUTE 2024-06-25T09:19:43.617 DBG starting cache lookup 2024-06-25T09:19:43.617 DBG looking up cache key=srls_endpoint_svchttp_svchttp.httpecho-http-header_httpecho-http-client_1719296340 2024-06-25T09:19:43.617 DBG looking up cache key=srls_endpoint_svchttp_svchttp.httpecho-http-header_httpecho-http-client_1719296340 2024-06-25T09:19:43.618 DBG cache current=1 key=srls_endpoint_svchttp_svchttp.httpecho-http-header_httpecho-http-client_1719296340 2024-06-25T09:19:43.618 DBG cache current=2 key=srls_endpoint_svchttp_svchttp.httpecho-http-header_httpecho-http-client_1719296340 2024-06-25T09:19:43.618 DBG returning normal response response=OK
2024-06-25T09:19:43.713 DBG got descriptor descriptor=(endpoint=svchttp),(svchttp.httpecho-http-header=httpecho-http-client) 2024-06-25T09:19:43.713 DBG starting get limit lookup 2024-06-25T09:19:43.713 DBG applying limit requests=2 unit=MINUTE 2024-06-25T09:19:43.713 DBG got descriptor descriptor=(endpoint=svchttp),(svchttp.httpecho-http-header=httpecho-http-client) 2024-06-25T09:19:43.713 DBG starting get limit lookup 2024-06-25T09:19:43.713 DBG applying limit requests=2 unit=MINUTE 2024-06-25T09:19:43.713 DBG starting cache lookup 2024-06-25T09:19:43.713 DBG looking up cache key=srls_endpoint_svchttp_svchttp.httpecho-http-header_httpecho-http-client_1719296340 2024-06-25T09:19:43.713 DBG looking up cache key=srls_endpoint_svchttp_svchttp.httpecho-http-header_httpecho-http-client_1719296340 2024-06-25T09:19:43.714 DBG cache current=3 key=srls_endpoint_svchttp_svchttp.httpecho-http-header_httpecho-http-client_1719296340 2024-06-25T09:19:43.714 DBG cache current=4 key=srls_endpoint_svchttp_svchttp.httpecho-http-header_httpecho-http-client_1719296340 2024-06-25T09:19:43.714 DBG returning normal response response=OVER_LIMIT |
Проверьте, что EF для каждого указанного в GlobalRateLimit endpoint присутствует в единственном экземпляре |