我正在尝试建立一个多集群部署,其中有多个集群,而一个入口正在负载均衡它们之间的请求。
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-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端口的方法。我在这里做什么错了?
在多集群部署中,是否还有其他方法可以使用入口和NodePort服务来简单设置sftp
?
Here是我要进行设置的正式文件。