当使用NodePort服务和Kubernetes入口公开时,SFTP服务器不可访问。但是,如果使用LoadBalancer类型的服务公开相同的部署,它就可以正常工作。
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:pass:1001:100:upload"]
ports:
- containerPort: 22
securityContext:
capabilities:
add: ["SYS_ADMIN"]
resources: {}
apiVersion: v1
kind: Service
metadata:
labels:
environment: production
name: sftp-service
spec:
type: LoadBalancer
ports:
- name: sftp-port
port: 22
protocol: TCP
targetPort: 22
selector:
app: sftp
然而,我尝试使用GKE Ingress公开相同的部署,但它不起作用。以下是入口的清单:
# First I create a NodePort service to expose the deployment internally
---
apiVersion: v1
kind: Service
metadata:
labels:
environment: production
name: sftp-service
spec:
type: NodePort
ports:
- name: sftp-port
port: 22
protocol: TCP
targetPort: 22
nodePort: 30063
selector:
app: sftp
# Ingress service has SFTP service as it's default backend
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: basic-ingress-2
spec:
backend:
serviceName: sftp-service
servicePort: 22
rules:
- http:
paths:
# "http-service-sample" is a service exposing a simple hello-word app deployment
- path: /sample
backend:
serviceName: http-service-sample
servicePort: 80
将外部IP分配给入口后(我知道完全设置需要几分钟),xxx.xx.xxx/sample
开始工作,但sftp-p 80xxx.xx.xx.xxx
不工作。
下面是我从服务器得到的错误:
ssh_exchange_identification: Connection closed by remote host
Connection closed
在上面的设置中,我做错了什么?为什么LoadBalancer服务能够允许访问SFTP服务,而Ingress却失败了?
在Kubernetes Ingress中路由HTTP/HTTPS协议以外的任何其他流量(参见文档),目前还不完全支持这一点。
您可以尝试做一些解决方法,如这里所描述的:kubernetes:通过Ingress路由非HTTP请求到Container
我已经在应用程序中添加了这些字段。pom中微服务和依赖关系的yml。xml。Jaeger在my local上运行也可以识别服务 我已经在kubernetes上部署了所有的微服务。请帮助我在kubernetes部署jaeger。 更新:我已达到此步骤。我有一个用于jaeger查询的负载平衡器IP。但是我的微服务将把日志发送到哪个主机和端口??
我正在尝试将一个pod连接到另一个pod,但获得连接拒绝错误。 我只运行: > RavenDB服务器 部署包括: 端口: 容器端口:8080,协议:TCP containerPort:38888,协议:TCP ravendb-cluster01-service RavenDB客户端 连接到ravendb-cluster01-service。登台。svc。簇本地电话:8080 什么不起作用: 客户端
我在Google Container Engine上部署了一个容器,它运行良好。现在,我想公开它。 这个应用程序是一个侦听2个端口的服务。使用kubectl公开部署,我创建了2个负载均衡器,每个端口一个。 我制作了两个负载平衡器,因为kubectl expose命令似乎不允许使用多个端口。虽然我在kubectl上将其定义为type=LoadBalancer,但一旦在GKE上创建了它们,它们就被定义
您好,我是java开发的新手,我正在尝试修改一个同事开发的应用程序,但是当我试图部署它时,我得到了这个错误: servlet.ServletException:org.apache.ibatis.exceptions.PersistenceException: resource database.properties org.glassfish.jersey.servlet.webcomponen
我目前正在使用google云平台设置一个web应用程序,但在使用GKE ingress controller部署时遇到了一个问题。 我无法使用我的子域名访问应用程序。页面显示以下消息: 尽管配置了健康检查,但入口似乎仍然没有正确响应。同时,我的SSL证书对于我的子域名工作正常。 这是我的入口配置: 这就是我的服务: 最后是我的部署: 入口描述如下: 如何使我的web应用正常工作? 提前谢谢你。