- 安装FTP服务器
在Kubernetes集群中部署FTP服务器,可以选择使用vsftpd或proftpd等FTP服务器软件。以下以vsftpd为例:
$ kubectl create deployment vsftpd --image=fauria/vsftpd
创建一个名为vsftpd的deployment,并从Docker Hub上拉取fauria/vsftpd镜像。
- 创建Service
为了让其他Pod能够访问FTP服务,需要创建一个Service对象:
apiVersion: v1
kind: Service
metadata:
name: vsftpd-service
spec:
selector:
app: vsftpd
ports:
- protocol: TCP
port: 21
targetPort: 21
这个Service将会将TCP流量转发到Deployment中的名称为vsftpd的Pod。
- 暴露FTP服务
由于默认情况下,Kubernetes集群中的Service只能在集群内部访问,因此需要将FTP服务暴露给外部网络。可以使用NodePort类型的Service将FTP服务暴露出来:
apiVersion: v1
kind: Service
metadata:
name: vsftpd-nodeport-service
spec:
type: NodePort
selector:
app: vsftpd
ports:
- protocol: TCP
port: 21
nodePort: 30001 #指定node端口范围(30000-32767)
- 访问FTP服务
现在,可以通过任何一个节点IP地址和指定的NodePort(例如:http://Node_IP:30001)访问FTP服务。
如果需要更好的安全性,可以考虑使用SFTP(Secure FTP)或SCP(Secure Copy)等安全协议。