1

複数のクラスターがあり、1 つのイングレスがクラスター間で要求を負荷分散するマルチクラスター展開をセットアップしようとしています。

HTTP サービスはセットアップでうまく機能します。ここでの問題はsftpサーバーです。

この回答とこのドキュメントを参照して、サービスのポート 22 にアクセスしようとしていsftpます。

sftp の展開はポート 22 で公開されています。マニフェストは次のとおりです。

kind: Deployment
apiVersion: extensions/v1beta1
metadata:
  name: sftp
  labels:
    environment: production
    app: sftp
spec:
  replicas: 1
  minReadySeconds: 10
  template:
    metadata:
      labels:
        environment: production
        app: sftp
      annotations:
        container.apparmor.security.beta.kubernetes.io/sftp: runtime/default
    spec:
      containers:
        - name: sftp
          image: atmoz/sftp:alpine
          imagePullPolicy: Always
          args: ["user:1001:100:upload"]
          ports:
            - containerPort: 22
          securityContext:
            capabilities:
              add: ["SYS_ADMIN"]
          resources: {}


NodePort サービスを使用した sftp-service の簡単なマニフェストを次に示します。

apiVersion: v1
kind: Service
metadata:
  labels:
    environment: production
  name: sftp-service
spec:
  type: NodePort
  ports:
  - name: sftp-port
    targetPort: 9000
    port: 9000
    nodePort: 30063
    protocol: TCP
  selector:
    app: sftp

上記のドキュメントを参照して ConfigMap を作成すると、次のような回答が得られます。

apiVersion: v1
kind: ConfigMap
metadata:
  name: sftp-service
data:
  9000: "default/sftp-service:22"

最後に、イングレス マニフェストは次のようになります。

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingress-foo
  annotations:
    kubernetes.io/ingress.global-static-ip-name: static-ip
    kubernetes.io/ingress.class: gce-multi-cluster
spec:
  backend:
    serviceName: http-service-zone-printer
    servicePort: 80
  rules:
  - http:
      paths:
      - path: /sftp
        backend:
          serviceName: sftp-service
          servicePort: 22
  template:
    spec:
      containers:
        - name: proxy-port
          args:
            - "--tcp-services-configmap=default/sftp-service"

イングレスを使用して kubernetes 上の sftp サーバーの TCP/UDP ポートを公開する方法を理解していないと感じています。ここで何が間違っていますか?

sftpマルチクラスター展開でイングレスと NodePort サービスを使用して簡単にセットアップする他の方法はありますか?

これは、セットアップを行うために参照している公式ドキュメントです。

4

2 に答える 2