This commit is contained in:
Matthos Denys 2021-03-04 20:03:38 +03:00
parent c7381bc33a
commit 20a4f4dc56
7 changed files with 99 additions and 0 deletions

BIN
.DS_Store vendored

Binary file not shown.

View File

@ -2,7 +2,9 @@
kubectl delete svc nginx-service
kubectl delete svc mysql-service
kubectl delete svc phpmyadmin-service
kubectl delete svc ftp-service
kubectl delete deployment nginx-deployment
kubectl delete deployment mysql-deployment
kubectl delete deployment phpmyadmin-deployment
kubectl delete deployment ftp-deployment
kubectl delete pods --all

2
run.sh
View File

@ -8,11 +8,13 @@ minikube dashboard &
docker build -t nginx_image srcs/nginx
docker build -t phpmyadmin_image srcs/phpmyadmin
docker build -t mariadb-image srcs/mariadb
docker build -t ftp_image srcs/ftps
kubectl apply -f srcs/yaml/metallb.yaml
kubectl apply -f srcs/yaml/nginx_service.yaml
kubectl apply -f srcs/yaml/mariadb.yaml
kubectl apply -f srcs/yaml/phpsvc.yaml
kubectl apply -f srcs/yaml/ftps.yaml
echo "Minikube IP: ${IP}"

17
srcs/ftps/Dockerfile Normal file
View File

@ -0,0 +1,17 @@
FROM alpine:3.12.3
RUN apk update
RUN apk add vsftpd openssl
RUN echo "root:root" | chpasswd
RUN echo "mdenys:mdenys" | chpasswd
RUN mkdir -p /var/ftp
RUN adduser -D -h /var/ftp mdenys
RUN openssl req -x509 -nodes -days 365 \
-newkey rsa:2048 -subj \
"/C=RU/ST=ru/L=Russia/O=21_schoo/CN=mdenys_services" \
-keyout /etc/ssl/private/vsftpd.key \
-out /etc/ssl/certs/vsftpd.crt
COPY vsftpd.conf /etc/vsftpd/
COPY start.sh .
RUN chmod +x start.sh
EXPOSE 20 21 21000
CMD sh start.sh

1
srcs/ftps/start.sh Executable file
View File

@ -0,0 +1 @@
vsftpd /etc/vsftpd/vsftpd.conf

27
srcs/ftps/vsftpd.conf Normal file
View File

@ -0,0 +1,27 @@
anonymous_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
listen=YES
seccomp_sandbox=NO
local_enable=YES
write_enable=YES
local_umask=022
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot.list
allow_writeable_chroot=YES
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
require_ssl_reuse=NO
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
rsa_cert_file=/etc/ssl/certs/vsftpd.crt
rsa_private_key_file=/etc/ssl/private/vsftpd.key
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=30000
pasv_address=$__CLUSTER_EXTERNAL_IP__

50
srcs/yaml/ftps.yaml Normal file
View File

@ -0,0 +1,50 @@
apiVersion: v1
kind: Service
metadata:
name: ftp-service
annotations:
metallb.universe.tf/allow-shared-ip: minikube
spec:
selector:
app: ftp
ports:
- name: ftp
protocol: TCP
port: 21
targetPort: 21
- name: ftp-passive
protocol: TCP
port: 2100
targetPort: 2100
- name: ftp-port
protocol: TCP
port: 20
targetPort: 20
type: LoadBalancer
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: ftp-deployment
spec:
selector:
matchLabels:
app: ftp
template:
metadata:
labels:
app: ftp
spec:
containers:
- name: ftp
image: ftp_image
resources:
limits:
memory: "128Mi"
cpu: "50m"
imagePullPolicy: Never
ports:
- containerPort: 21
- containerPort: 2100
- containerPort: 20
name: ftp