Доступ к kubernetes безголовый сервис через посла - PullRequest
0 голосов
/ 20 мая 2019

Я развернул свой сервис в качестве сервера без монитора и выполнил настройку kubernetes, как указано в этой ссылке (http://vertx.io/docs/vertx-hazelcast/java/#_using_this_cluster_manager). Мой сервис сбалансирован по нагрузке и проксирован с использованием послов. Все работало нормально, пока сервис не работалБезголовый. После того, как служба изменилась на безголовую, посол не может обнаружить мои службы. Это означает, что он искал clusterIP, а сейчас его нет, поскольку службы безголовы. Что мне нужно включить в мой файл deploy.yaml, чтобы этислужбы обнаружены послом.

Ошибка Я вижу "ошибка восходящего соединения или отключение / сброс перед заголовками. Причина сброса: сбой соединения"

Мне нужны эти службы, чтобы они были безголовыми, потому что это единственноеспособ создания кластера с помощью hazelcast. И я создаю подключение к веб-сокету и vertx eventbus.


apiVersion: v1
kind: Service
metadata:
  name: abt-login-service
  labels:
    chart: "abt-login-service-0.1.0-SNAPSHOT"
  annotations:
    fabric8.io/expose: "true"
    fabric8.io/ingress.annotations: 'kubernetes.io/ingress.class: nginx'

    getambassador.io/config: |
      ---
      apiVersion: ambassador/v1
      name:  login_mapping
      ambassador_id: default
      kind: Mapping
      prefix: /login/
      service: abt-login-service.default.svc.cluster.local
      use_websocket: true
spec:
  type: ClusterIP
  clusterIP: None
  selector:
    app: RELEASE-NAME-abt-login-service
  ports:
  - port: 80
    targetPort: 8080
    protocol: TCP
    name: http
  - name: hz-port-name
    port: 5701
    protocol: TCP```


```Deployment.yaml

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: RELEASE-NAME-abt-login-service
  labels:
    draft: draft-app
    chart: "abt-login-service-0.1.0-SNAPSHOT"
spec:
  replicas: 2
  selector:
    matchLabels:
     app: RELEASE-NAME-abt-login-service
  minReadySeconds: 30
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 0
  template:
    metadata:
      labels:
        draft: draft-app
        app: RELEASE-NAME-abt-login-service
        component: abt-login-service
    spec:
      serviceAccountName: vault-auth
      containers:
      - name: abt-login-service
        env:
        - name: SPRING_PROFILES_ACTIVE
          value:  "dev"
        - name: _JAVA_OPTIONS
          value:  "-XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap -XX:MaxRAMFraction=2 -Dsun.zip.disableMemoryMapping=true -XX:+UseParallelGC -XX:Min
HeapFreeRatio=5 -XX:MaxHeapFreeRatio=10 -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -Dhazelcast.diagnostics.enabled=true
"
        image: "draft:dev"
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 8080
        ports:
        - containerPort: 5701
        livenessProbe:
          httpGet:
            path: /health
            port: 8080
          initialDelaySeconds: 60
          periodSeconds: 10
          successThreshold: 1
          timeoutSeconds: 1
        readinessProbe:
          httpGet:
            path: /health
            port: 8080
          periodSeconds: 10
          successThreshold: 1
          timeoutSeconds: 1
        resources:
            limits:
              cpu: 500m
              memory: 1024Mi
            requests:
              cpu: 400m
              memory: 512Mi

      terminationGracePeriodSeconds: 10```

How can I make these services discoverable by ambassador?
...