server - 如何通过 FileZilla 访问 Google Kubernetes Engine FTP 服务器
问题描述
我创建了一个 gcePresistentDisk 并创建了一个集群并挂载它。这是 yaml 文件,由https://github.com/aledv/kubernetes-ftp引用:
部署.yaml
apiVersion: apps/v1beta1 # for versions before 1.6.0 use extensions/v1beta1
kind: Deployment
metadata:
name: my-ftp
spec:
replicas: 1
template:
metadata:
labels:
app: my-ftp
spec:
volumes:
- name: task-pv-storage
gcePersistentDisk:
pdName: my-disk
fsType: ext4
containers:
- name: my-ftp-container
image: fauria/vsftpd
ports:
- containerPort: 21
protocol: TCP
name: "ftp-server"
volumeMounts:
- mountPath: "/home/vsftpd"
name: task-pv-storage
env:
- name: FTP_USER
value: "user"
- name: FTP_PASS
value: "password"
服务.yaml
apiVersion: v1
kind: Service
metadata:
name: my-ftp-service
labels:
app: my-ftp
spec:
type: LoadBalancer
ports:
- port: 21
nodePort: 30080
selector:
app: my-ftp
入口.yaml
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ftp-ftp-ingress
spec:
backend:
serviceName: ftp-ftp-service
servicePort: 21
我创造了它们。我试过了
$kubectl get service rushbit-ftp-service --watch
获取 ip 并使用 FileZilla 使用用户名和密码连接 ip。我也尝试了端口 30080,但仍然超时。
我错过了什么?
解决方案
您在一个配置中混合了两种类型的部署服务:LoadBalancer 和 Ingress。
这没用。
您应该从 Ingress 公开 FTP 服务,而不是从 LoadBalancer。
我部署了您在 GitHub 中提供的示例配置,它工作正常。
毕竟,我检查了 Ingress 控制器是否正在侦听正确的 IP 地址和端口:
kubectl get ingres | grep ftp
您还可以检查 GCE 防火墙配置中是否有任何问题:
gcloud compute firewall-rules list
推荐阅读
- python - 类似于 rolling().corr() 的 Pandas 成对算术
- angular - Angular ngIf 路由器有 /id(/a 动态数字)
- python - Is it possible to execute a python(django) function immediately on vs code?
- flutter - Flutter: How to get permission from user?
- multithreading - 打开 fd 泄漏,而 goroutine 的数量保持不变
- android - 如何将 react-native 0.54.3 android Apk 上传到 Play 商店?它抛出 google play 64-bit requirements 错误
- c# - 有没有办法检查数据库中是否存在随机生成的数字?C#
- f# - The block following this 'let' is unfinished, F# error despite returning the value from function
- jenkins - 有没有办法遍历 Postman 正文中的变量列表?
- blockchain - 如何使用 litecoire-lib 广播交易?