Как получить доступ к FTP-серверу Google Kubernetes Engine с помощью FileZilla - PullRequest
0 голосов
/ 11 мая 2018

Я создал gcePresistentDisk, создал кластер и смонтировал его.вот файл yaml, на который ссылается https://github.com/aledv/kubernetes-ftp:

Deployment.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"

Service.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

Ingress.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, но все еще время ожидания.

Я что-то пропустил?

Ответы [ 2 ]

0 голосов
/ 05 января 2019

Для тех, кто сталкивается с проблемой, вы можете попробовать следующее:

В deploy.yaml укажите минимальный и максимальный диапазон портов пассивного режима.

 env: 
  - name: PASV_ADDRESS
    value: "127.0.0.1"
  - name: PASV_MIN_PORT
    value: "31100"
  - name: PASV_MAX_PORT
    value: "31101"

Затем в service.yaml укажите порты из deploy.yaml.

ports:
 - name: port1
   port: 21
   nodePort: 30080
 - name: port2
   port: 31100
   nodePort: 31100
 - name: port3
   port: 31101
   nodePort: 31101

Таким образом, ваш FTP-клиент должен работать в режиме клиента.

0 голосов
/ 11 мая 2018

Вы смешали два типа развернутой службы в одной конфигурации: LoadBalancer и Ingress.

Это не работает.

Вы должны предоставить службу FTP из Ingress, а не из LoadBalancer.

Я развернул пример конфигурации, который вы предоставили в GitHub, и он работал.

В конце концов, я проверил, прослушивает ли контроллер Ingress правильный IP-адрес и порт:

kubectl get ingres | grep ftp

Вы также можете проверить, есть ли какие-либо проблемы в конфигурации брандмауэра GCE:

gcloud compute firewall-rules list
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...