Невозможно использовать конфигурацию Spring Cloud и istio 1.1.1 вместе - невозможно восстановить при ошибке HTTP 404 для получения удаленной конфигурации - PullRequest
0 голосов
/ 26 июня 2019

, когда я пытаюсь смешать конфигурацию весеннего облака с istio 1.1.1. Когда запускается контейнер моего приложения (с автоинъекцией istio envoy), клиент конфигурации весеннего облака попытается получить конфигурацию (applicationContext.yaml) изудаленный сервер конфигурации облака (запущенный заранее с хорошим состоянием), к сожалению, он завершается с ошибкой HTTP 404.Даже если я настроил мое приложение на повторную попытку для клиента облачного конфигурирования, оно продолжает повторяться с ошибкой HTTP 404 (я подтвердил, что URL-адрес сервера конфигурации верен из другого контейнера), и у меня нет шансов на восстановление.Это случается иногда .Я знал, что посланник Istio и мое приложение находятся в одном и том же POD kubernetes, приложение может запуститься до посланника istio, и в этом случае может произойти ошибка сети, но как только посланник активен, все должно быть в порядке.Я действительно не понимаю, почему мое приложение не может восстановиться автоматически.Вот мои диагностические шаги: 1.Добавить механизм повторных попыток в моем приложении (с библиотеками повторных попыток, включенными в POM и измененным yaml. - повторная попытка работает, но каждая повторная попытка завершилась ошибкой HTTP 404 spring-config/ fail-fast: true retry: initial-interval: 10000 max-attempts: 100 2.Добавьте «sleep xx» до запуска моего java-приложения в файле развертывания моего приложения k8s - меньше шансов получить ошибку HTTP 404, но проблема не устранена command: ["/bin/sh","-c","sleep 20; java -jar -Xms512m -Xmx1024m app.jar"] 3.получить журнал доступа посланника istio и сравнить приложение жертвы и хорошее приложение - похоже, что хороший журнал имеет значения для ключа upstream_cluster и upstream_cluster;поля для плохого журнала пусты хороший журнал доступа{ "response_code": "200", "user_agent": "Java/1.8.0_121", "response_flags": "-", "start_time": "2019-06-25T01:17:29.661Z", "method": "2019-06-25T01:17:29.661Z", "request_id": "d3d27512-161b-4303-bb48-05a6e19e05b7", "upstream_host": "172.20.3.104:9083", "x_forwarded_for": "-", "requested_server_name": "-", "bytes_received": "0", "istio_policy_status": "-", "bytes_sent": "1144", "upstream_cluster": "outbound|9083||fota-spring-config.ns-fota.svc.cluster.local", "downstream_remote_address": "172.20.2.115:45816", "path": "/fota-spring-config/fota-task/dev/master", "authority": "fota-spring-config.ns-fota.svc.cluster.local:9083", "protocol": "HTTP/1.1", "upstream_service_time": "289", "upstream_local_address": "-", "duration": "290", "downstream_local_address": "172.21.1.152:9083" }журнал плохого доступа: { "upstream_cluster": "-", "downstream_remote_address": "172.20.2.118:41980", "path": "/fota-spring-config/fota-dmserver/dev/master", "authority": "fota-spring-config.ns-fota.svc.cluster.local:9083", "protocol": "HTTP/1.1", "upstream_service_time": "-", "upstream_local_address": "-", "duration": "0", "downstream_local_address": "172.21.1.152:9083", "response_code": "404", "user_agent": "Java/1.8.0_121", "response_flags": "NR", "start_time": "2019-06-25T01:21:24.197Z", "method": "2019-06-25T01:21:24.197Z", "request_id": "346716e4-1def-465f-b370-cb1e71e30d25", "upstream_host": "-", "x_forwarded_for": "-", "requested_server_name": "-", "bytes_received": "0", "istio_policy_status": "-", "bytes_sent": "0" }

1 Ответ

0 голосов
/ 23 июля 2019

файл развертывания K8S прилагается. apiVersion: extensions/v1beta1 kind: Deployment metadata: name: fota-car spec: template: metadata: labels: app: fota-car version: v1 spec: serviceAccountName: fota-serviceaccount imagePullSecrets: - name: uaes-docker2 containers: - name: fota-car image: 192.168.119.22:18080/uaes-fota/fota-car:dev-release-1.0.0 imagePullPolicy: Always ports: - containerPort: 8085 env: - name: SPRING_DATASOURCE_URL value: jdbc:mysql://mysql-ali-dev.ns-fota-ext-svc/fota-car?useUnicode=true&characterEncoding=utf-8&useSSL=false - name: SPRING_DATASOURCE_USERNAME valueFrom: secretKeyRef: name: mysql-ali-dev-secret key: username - name: SPRING_DATASOURCE_PASSWORD valueFrom: secretKeyRef: name: mysql-ali-dev-secret key: password command: ["/bin/sh","-c","java -jar -Xms512m -Xmx1024m app.jar"] readinessProbe: httpGet: path: /actuator/health port: 18085 initialDelaySeconds: 60 timeoutSeconds: 1 kind: Service apiVersion: v1 metadata: labels: app: fota-car name: fota-car spec: ports: - name: http port: 8085 selector: app: fota-car

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...