0

単一の外部 IP で同じ kubernetes サービスを共有する kubernetes に nginx ロードバランサー展開のポッドをミラー化する可能性を探しています。このステートフルセット構成でシナリオを試しました:

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: loadbalancer
  labels:
    run: loadbalancer
spec:
  serviceName: "loadbalancer"
  selector:
    matchLabels:
      run: loadbalancer
  replicas: 4
  updateStrategy: 
    type: RollingUpdate
  template:
    metadata:
      labels:
        run: loadbalancer
    spec:
      containers:
      - name: loadbalancer
        image: /services/infrastructure/loadbalancer:latest
        ports:
        - containerPort: 80
          protocol: TCP
        - containerPort: 443
          protocol: TCP
        volumeMounts:
        - name: certs
          mountPath: /etc/letsencrypt
  volumeClaimTemplates:
  - metadata:
      name: certs
    spec:
      accessModes: [ "ReadWriteOnce" ]
      resources:
        requests:
          storage: 100M

そして、このサービス構成:

apiVersion: v1
kind: Service
metadata:
  creationTimestamp: null
  labels:
    run: loadbalancer
  name: loadbalancer
  selfLink: /api/v1/namespaces/test/services/loadbalancer
spec:
  clusterIP: 10.31.249.3
  externalTrafficPolicy: Cluster
  ports:
  - name: http
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    run: loadbalancer
  sessionAffinity: None
  type: LoadBalancer

4 つのポッドすべてが、必要な SSL 証明書を並行して暗号化することを正常に要求できます。

問題は、外部 IPv4 アドレスを介したクラスター外からの単一サービス経由の接続がランダムにリセットされることです。

どうすればこれを防ぐことができますか?

4

0 に答える 0