Посланник-посредник Istio регистрирует отсутствующие поля - PullRequest
0 голосов
/ 23 января 2020

У меня есть Nginx служба с датчиком живучести, я включил регистрацию посланника в формате istio в формате JSON, хотя другое приложение может правильно регистрировать, Nginx Прокси-серверу не хватает response_code, поля протокола другие поля.

{"upstream_cluster":"inbound|80|mgmt-80|mgmtCluster","downstream_remote_address":"10.203.128.31:33408","authority":"-","path":"-","protocol":"-","upstream_service_time":"-","upstream_local_address":"127.0.0.1:55290","duration":"0","downstream_local_address":"100.172.68.250:80","upstream_transport_failure_reason":"-","route_name":"-","response_code":"0","user_agent":"-","response_flags":"-","start_time":"2020-01-23T15:02:22.609Z","method":"-","request_id":"-","upstream_host":"127.0.0.1:80","x_forwarded_for":"-","requested_server_name":"-","bytes_received":"114","istio_policy_status":"-","bytes_sent":"844"}

nginx .yaml

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  annotations:
    deployment.kubernetes.io/revision: "2"
    sidecar.istio.io/rewriteAppHTTPProbers: "true"
  creationTimestamp: null
  generation: 1
  labels:
    app: nginx
  name: nginx-deployment
  selfLink: /apis/extensions/v1beta1/namespaces/development/deployments/nginx-deployment
spec:
  progressDeadlineSeconds: 600
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      app: nginx
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
    type: RollingUpdate
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: nginx
    spec:
      containers:
      - image: nginx:1.7.9
        imagePullPolicy: IfNotPresent
        livenessProbe:
          failureThreshold: 3
          httpGet:
            path: /
            port: 80
            scheme: HTTP
          periodSeconds: 10
          successThreshold: 1
          timeoutSeconds: 1
        name: nginx
        ports:
        - containerPort: 80
          name: http
          protocol: TCP
        resources: {}
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      terminationGracePeriodSeconds: 30

Я что-то упустил?

1 Ответ

0 голосов
/ 24 января 2020

Это вызвано протоколом TCP, который вы выбрали в своем развертывании.

...
        ports:
        - containerPort: 80
          name: http
          protocol: TCP
...

Согласно документации v1.12.0 :

% PROTOCOL%

HTTP

Протокол. В настоящее время либо HTTP / 1.1 , либо HTTP / 2 .

TCP

Не реализовано («-»).

Таким образом, появляется знак «-», поскольку он не реализован в протоколе tcp.


Вы можете попытаться изменить протокол на HTTP или HTTP2

...
        ports:
        - containerPort: 80
          name: http
          protocol: HTTP
...

Надеюсь, это поможет.

...