首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在GKE中使用Ingress公开sftp服务器的UDP和TCP端口

在GKE中使用Ingress公开sftp服务器的UDP和TCP端口
EN

Stack Overflow用户
提问于 2019-07-18 00:06:25
回答 2查看 2K关注 0票数 1

我正在尝试设置一个多集群部署,其中有多个集群,一个入口在它们之间对请求进行负载均衡。

HTTP服务在这种设置下工作良好,这里的问题是sftp服务器。

参考这个answer和这个documentation,我尝试访问sftp服务的端口22。

在端口22上暴露了sftp的部署。清单如下:

代码语言:javascript
复制
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服务的简单清单:

代码语言:javascript
复制
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 create to如下所示:

代码语言:javascript
复制
apiVersion: v1
kind: ConfigMap
metadata:
  name: sftp-service
data:
  9000: "default/sftp-service:22"

最后,入口清单如下所示:

代码语言:javascript
复制
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端口。我在这里做错了什么?

在多集群部署中,有没有其他方法可以使用入口和NodePort服务来简化sftp的设置?

Here是我所指的进行设置的官方文档。

EN

回答 2

Stack Overflow用户

发布于 2019-07-18 02:26:40

看起来入口不支持这一点,这就是this问题存在的原因

一种可能的解决方案是对sftp使用nodeport,如此document中所述。

票数 -1
EN

Stack Overflow用户

发布于 2019-07-18 16:13:04

您需要运行HTTP服务器。

您可以运行一个HTTP服务器,该服务器公开相同的文件,可能在同一pod中有一个侧容器

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57080141

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档