我正在尝试设置一个多集群部署,其中有多个集群,一个入口在它们之间对请求进行负载均衡。
HTTP服务在这种设置下工作良好,这里的问题是sftp服务器。
参考这个answer和这个documentation,我尝试访问sftp服务的端口22。
在端口22上暴露了sftp的部署。清单如下:
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服务的简单清单:
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如下所示:
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端口。我在这里做错了什么?
在多集群部署中,有没有其他方法可以使用入口和NodePort服务来简化sftp的设置?
Here是我所指的进行设置的官方文档。
https://stackoverflow.com/questions/57080141
复制相似问题