add kuber
This commit is contained in:
commit
ccb971cf5f
8
deletesh.sh
Executable file
8
deletesh.sh
Executable file
@ -0,0 +1,8 @@
|
||||
#!/bin/bash
|
||||
kubectl delete svc nginx-service
|
||||
kubectl delete svc mysql-service
|
||||
kubectl delete svc phpmyadmin-service
|
||||
kubectl delete deployment nginx-deployment
|
||||
kubectl delete deployment mysql-deployment
|
||||
kubectl delete deployment phpmyadmin-deployment
|
||||
kubectl delete pods --all
|
||||
12
loadbalancer.yaml
Executable file
12
loadbalancer.yaml
Executable file
@ -0,0 +1,12 @@
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
namespace: metallb-system
|
||||
name: config
|
||||
data:
|
||||
config: |
|
||||
address-pools:
|
||||
- name: default
|
||||
protocol: layer2
|
||||
addresses:
|
||||
- 192.168.99.100-192.168.99.200
|
||||
12
metallb_configmap.yml
Executable file
12
metallb_configmap.yml
Executable file
@ -0,0 +1,12 @@
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: config
|
||||
namespace: metallb-system
|
||||
data:
|
||||
config: |
|
||||
address-pools:
|
||||
- name: default
|
||||
protocol: layer2
|
||||
addresses:
|
||||
- 192.168.99.100-192.168.99.200
|
||||
48
mysql.yaml
Executable file
48
mysql.yaml
Executable file
@ -0,0 +1,48 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: mysql-service
|
||||
labels:
|
||||
app: mysql
|
||||
spec:
|
||||
type: ClusterIP
|
||||
ports:
|
||||
- port: 3306
|
||||
targetPort: 3306
|
||||
protocol: TCP
|
||||
name: mysql
|
||||
selector:
|
||||
app: mysql
|
||||
clusterIP: None
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: mysql-deployment
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
app: mysql-deployment
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: mysql-deployment
|
||||
spec:
|
||||
containers:
|
||||
- name: mysql-deployment
|
||||
imagePullPolicy: Never
|
||||
image: mysqlserver
|
||||
resources:
|
||||
limits:
|
||||
memory: "128Mi"
|
||||
cpu: "500m"
|
||||
ports:
|
||||
- containerPort: 3306
|
||||
name: mysql
|
||||
volumeMounts:
|
||||
- name: mysql-storage
|
||||
mountPath: /var/lib/mysql
|
||||
volumes:
|
||||
- name: mysql-storage
|
||||
persistentVolumeClaim:
|
||||
claimName: mysql-volume
|
||||
9
mysql/Dockerfile
Executable file
9
mysql/Dockerfile
Executable file
@ -0,0 +1,9 @@
|
||||
FROM alpine:3.12
|
||||
RUN echo "root:root" | chpasswd
|
||||
RUN apk update
|
||||
RUN apk add mariadb mariadb-common mariadb-client
|
||||
COPY my.cnf /etc/my.cnf
|
||||
EXPOSE 3306
|
||||
COPY start.sh /start.sh
|
||||
RUN chmod +x /start.sh
|
||||
CMD ["/start.sh"]
|
||||
6
mysql/my.cnf
Executable file
6
mysql/my.cnf
Executable file
@ -0,0 +1,6 @@
|
||||
[mysqld]
|
||||
user = root
|
||||
datadir = /var/lib/mysql
|
||||
port = 3306
|
||||
bind-address = 0.0.0.0
|
||||
skip-networking = false
|
||||
47
mysql/start.sh
Executable file
47
mysql/start.sh
Executable file
@ -0,0 +1,47 @@
|
||||
#!/bin/sh
|
||||
|
||||
if [ ! -d "/run/mysqld" ]; then
|
||||
mkdir -p /run/mysqld
|
||||
# chown -R mysql:mysql /run/mysqld
|
||||
fi
|
||||
|
||||
if [ -d /var/lib/mysql/mysql ]; then
|
||||
echo '[i] MySQL directory already present, skipping creation'
|
||||
else
|
||||
echo "[i] MySQL data directory not found, creating initial DBs"
|
||||
|
||||
# chown -R mysql:mysql /var/lib/mysql
|
||||
|
||||
# init database
|
||||
echo 'Initializing database'
|
||||
mysql_install_db --user=mysql > /dev/null
|
||||
echo 'Database initialized'
|
||||
|
||||
echo "[i] MySql root password: root"
|
||||
|
||||
# create temp file
|
||||
tfile=`mktemp`
|
||||
if [ ! -f "$tfile" ]; then
|
||||
return 1
|
||||
fi
|
||||
|
||||
# save sql
|
||||
echo "[i] Create temp file: $tfile"
|
||||
cat << EOF > $tfile
|
||||
CREATE DATABASE wordpress;
|
||||
CREATE USER 'pma'@'%' IDENTIFIED BY 'pma'; GRANT ALL PRIVILEGES ON *.* TO 'pma'@'%' WITH GRANT OPTION; USE wordpress; FLUSH PRIVILEGES;
|
||||
EOF
|
||||
|
||||
echo 'FLUSH PRIVILEGES;' >> $tfile
|
||||
|
||||
# run sql in tempfile
|
||||
echo "[i] run tempfile: $tfile"
|
||||
/usr/bin/mysqld --user=mysql --bootstrap --verbose=0 < $tfile
|
||||
rm -f $tfile
|
||||
fi
|
||||
|
||||
echo "[i] Sleeping 5 sec"
|
||||
sleep 5
|
||||
|
||||
echo '[i] start running mysqld'
|
||||
exec /usr/bin/mysqld_safe
|
||||
4
mysql/supervisord.conf
Executable file
4
mysql/supervisord.conf
Executable file
@ -0,0 +1,4 @@
|
||||
[supervisord]
|
||||
nodaemon=true
|
||||
[program:mysql]
|
||||
command= rc-service mariadb start && kill -s SIGTERM $(cat supervisord.pid)
|
||||
714
mysql/wordpress.sql
Executable file
714
mysql/wordpress.sql
Executable file
File diff suppressed because one or more lines are too long
19
nginx/Dockerfile
Executable file
19
nginx/Dockerfile
Executable file
@ -0,0 +1,19 @@
|
||||
FROM alpine:3.12
|
||||
ENV TZ Europe/Moscow
|
||||
LABEL maintainer="mdenys"
|
||||
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
|
||||
RUN apk update && apk upgrade
|
||||
RUN apk add openrc mc nano supervisor openssh nginx openssl && rm -f /var/cache/apk/*
|
||||
COPY index.html nginx.conf ./
|
||||
RUN mkdir -p /run/nginx www && \
|
||||
mv index.html /var/www/localhost/htdocs
|
||||
COPY nginx.conf /etc/nginx/nginx.conf
|
||||
RUN mkdir /etc/nginx/ssl
|
||||
RUN openssl req -newkey rsa:4096 -x509 -sha256 -days 365 -nodes -out /etc/nginx/ssl/html.pem -keyout /etc/nginx/ssl/html.key -subj "/C=RU/ST=Kazan/L=Kazan/O=21 School/OU=mdenys/CN=html"
|
||||
COPY supervisord.conf /etc/supervisord.conf
|
||||
RUN sed -i s/#PermitRootLogin.*/PermitRootLogin\ yes/ /etc/ssh/sshd_config \
|
||||
&& echo "root:root" | chpasswd \
|
||||
&& /usr/bin/ssh-keygen -A \
|
||||
&& ssh-keygen -t rsa -b 4096 -f /etc/ssh/ssh_host_key
|
||||
EXPOSE 22 80 443
|
||||
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisord.conf"]
|
||||
13
nginx/index.html
Executable file
13
nginx/index.html
Executable file
@ -0,0 +1,13 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Document</title>
|
||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BmbxuPwQa2lc/FVzBcNJ7UAyJxM6wuqIj61tLrc4wSX0szH/Ev+nYRRuWlolflfl" crossorigin="anonymous">
|
||||
</head>
|
||||
<body>
|
||||
<div class="container-sm"><h1 class="display-1">Welcome to Mdenys ft_services</h1></div>
|
||||
</body>
|
||||
</html>
|
||||
22
nginx/nginx.conf
Executable file
22
nginx/nginx.conf
Executable file
@ -0,0 +1,22 @@
|
||||
events {}
|
||||
|
||||
http {
|
||||
|
||||
server {
|
||||
listen 80 default_server;
|
||||
error_log logs/error.log debug;
|
||||
return 301 https://$host$request_uri;
|
||||
}
|
||||
|
||||
server {
|
||||
listen 443 ssl;
|
||||
server_name www;
|
||||
|
||||
root /var/www/localhost/htdocs/;
|
||||
index index.html;
|
||||
|
||||
ssl_certificate /etc/nginx/ssl/html.pem;
|
||||
ssl_certificate_key /etc/nginx/ssl/html.key;
|
||||
}
|
||||
|
||||
}
|
||||
6
nginx/supervisord.conf
Executable file
6
nginx/supervisord.conf
Executable file
@ -0,0 +1,6 @@
|
||||
[supervisord]
|
||||
nodaemon=true
|
||||
[program:sshd]
|
||||
command= sh -c "/usr/sbin/sshd -D && kill -s SIGTERM $(cat supervisord.pid)"
|
||||
[program:nginx]
|
||||
command=sh -c "nginx -g 'daemon off;' && kill -s SIGTERM $(cat supervisord.pid)"
|
||||
52
nginx_service.yaml
Executable file
52
nginx_service.yaml
Executable file
@ -0,0 +1,52 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: nginx-service
|
||||
annotations:
|
||||
metallb.universe.tf/allow-shared-ip: minikube
|
||||
spec:
|
||||
selector:
|
||||
app: nginx
|
||||
ports:
|
||||
- name: http
|
||||
protocol: TCP
|
||||
port: 80
|
||||
targetPort: 80
|
||||
- name: https
|
||||
protocol: TCP
|
||||
port: 443
|
||||
targetPort: 443
|
||||
- name: ssh
|
||||
protocol: TCP
|
||||
port: 22
|
||||
targetPort: 22
|
||||
type: LoadBalancer
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: nginx-deployment
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
app: nginx
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: nginx
|
||||
spec:
|
||||
containers:
|
||||
- name: nginx
|
||||
image: nginx_image
|
||||
resources:
|
||||
limits:
|
||||
memory: "128Mi"
|
||||
cpu: "50m"
|
||||
imagePullPolicy: Never
|
||||
ports:
|
||||
- containerPort: 80
|
||||
name: http
|
||||
- containerPort: 443
|
||||
name: https
|
||||
- containerPort: 22
|
||||
name: ssh
|
||||
23
persistencevolume.yaml
Executable file
23
persistencevolume.yaml
Executable file
@ -0,0 +1,23 @@
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: mysql-volume
|
||||
labels:
|
||||
app: mysql
|
||||
spec:
|
||||
resources:
|
||||
requests:
|
||||
storage: 2Gi
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: mypvcinflux
|
||||
spec:
|
||||
resources:
|
||||
requests:
|
||||
storage: 2Gi
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
BIN
phpmyadmin/.DS_Store
vendored
Executable file
BIN
phpmyadmin/.DS_Store
vendored
Executable file
Binary file not shown.
14
phpmyadmin/Dockerfile
Executable file
14
phpmyadmin/Dockerfile
Executable file
@ -0,0 +1,14 @@
|
||||
FROM alpine:3.12
|
||||
LABEL maintainer="mdenys"
|
||||
RUN apk update
|
||||
RUN apk add supervisor nginx php7 php7-fpm php7-opcache php7-gd php7-mysqli php7-zlib php7-curl php7-mbstring php7-json php7-session
|
||||
RUN mkdir -p /var/www/localhost/htdocs/
|
||||
RUN mkdir -p /run/php7
|
||||
RUN mkdir -p /run/nginx
|
||||
RUN wget http://files.directadmin.com/services/all/phpMyAdmin/phpMyAdmin-5.0.1-all-languages.tar.gz
|
||||
RUN tar -xvf phpMyAdmin-5.0.1-all-languages.tar.gz --strip-components 1 -C /var/www/localhost/htdocs/
|
||||
COPY phpmyadmin.inc.php /var/www/localhost/htdocs/config.inc.php
|
||||
COPY nginx.conf /etc/nginx/conf.d/default.conf
|
||||
COPY supervisord.conf /etc/supervisord.conf
|
||||
EXPOSE 5000
|
||||
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisord.conf"]
|
||||
14
phpmyadmin/index.html
Executable file
14
phpmyadmin/index.html
Executable file
@ -0,0 +1,14 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Document</title>
|
||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BmbxuPwQa2lc/FVzBcNJ7UAyJxM6wuqIj61tLrc4wSX0szH/Ev+nYRRuWlolflfl" crossorigin="anonymous">
|
||||
</head>
|
||||
<body>
|
||||
<div class="container-sm"><h1 class="display-1">phpmyadmin</h1></div>
|
||||
<?php echo phpinfo();?>
|
||||
</body>
|
||||
</html>
|
||||
13
phpmyadmin/nginx.conf
Executable file
13
phpmyadmin/nginx.conf
Executable file
@ -0,0 +1,13 @@
|
||||
server {
|
||||
listen 0.0.0.0:5000;
|
||||
root /var/www/localhost/htdocs/;
|
||||
autoindex on;
|
||||
index index.php;
|
||||
|
||||
location ~ \.php$ {
|
||||
include fastcgi.conf;
|
||||
fastcgi_pass 127.0.0.1:9000;
|
||||
include fastcgi_params;
|
||||
fastcgi_index index.php;
|
||||
}
|
||||
}
|
||||
1173
phpmyadmin/php.ini
Executable file
1173
phpmyadmin/php.ini
Executable file
File diff suppressed because it is too large
Load Diff
14
phpmyadmin/phpmyadmin.inc.php
Executable file
14
phpmyadmin/phpmyadmin.inc.php
Executable file
@ -0,0 +1,14 @@
|
||||
<?php
|
||||
$cfg['blowfish_secret'] = 'ZX8lwV2k,PSlDhg40E=38i7Rm1pczKVr';
|
||||
$i = 0;
|
||||
$i++;
|
||||
$cfg['Servers'][$i]['auth_type'] = 'cookie';
|
||||
$cfg['Servers'][$i]['host'] = 'mysql-service';
|
||||
$cfg['Servers'][$i]['port'] = 3306;
|
||||
$cfg['Servers'][$i]['connect_type'] = 'tcp';
|
||||
$cfg['Servers'][$i]['compress'] = false;
|
||||
$cfg['Servers'][$i]['AllowNoPassword'] = true;
|
||||
$cfg['Servers'][$i]['extension'] = 'mysqli';
|
||||
$cfg['UploadDir'] = '';
|
||||
$cfg['SaveDir'] = '';
|
||||
?>
|
||||
38
phpmyadmin/phpsvc.yaml
Executable file
38
phpmyadmin/phpsvc.yaml
Executable file
@ -0,0 +1,38 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: phpmyadmin-service
|
||||
annotations:
|
||||
metallb.universe.tf/allow-shared-ip: minikube
|
||||
spec:
|
||||
selector:
|
||||
app: phpmyadmin
|
||||
ports:
|
||||
- name: https
|
||||
protocol: TCP
|
||||
port: 5000
|
||||
type: LoadBalancer
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: phpmyadmin-deployment
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
app: phpmyadmin
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: phpmyadmin
|
||||
spec:
|
||||
containers:
|
||||
- name: phpmyadmin
|
||||
imagePullPolicy: Never
|
||||
image: phpmyadmin_image
|
||||
resources:
|
||||
limits:
|
||||
memory: "128Mi"
|
||||
cpu: "50m"
|
||||
ports:
|
||||
- containerPort: 5000
|
||||
6
phpmyadmin/supervisord.conf
Executable file
6
phpmyadmin/supervisord.conf
Executable file
@ -0,0 +1,6 @@
|
||||
[supervisord]
|
||||
nodaemon=true
|
||||
[program:php]
|
||||
command= /usr/sbin/php-fpm7
|
||||
[program:nginx]
|
||||
command=sh -c "nginx -g 'daemon off;' && kill -s SIGTERM $(cat supervisord.pid)"
|
||||
16
run.sh
Executable file
16
run.sh
Executable file
@ -0,0 +1,16 @@
|
||||
#!/bin/bash
|
||||
minikube addons enable dashboard
|
||||
minikube addons enable metallb
|
||||
minikube addons enable metrics-server
|
||||
eval $(minikube docker-env)
|
||||
kubectl apply -f metallb_configmap.yml
|
||||
docker build -t nginx_image nginx
|
||||
docker build -t phpmyadmin_image phpmyadmin
|
||||
kubectl apply -f persistencevolume.yaml
|
||||
kubectl apply -f nginx_service.yaml
|
||||
docker build -t mysqlserver mysql
|
||||
kubectl apply -f mysql.yaml
|
||||
kubectl apply -f phpmyadmin/phpsvc.yaml
|
||||
kubectl get pods
|
||||
IP=$(kubectl get node -o=custom-columns='DATA:status.addresses[0].address' | sed -n 2p)
|
||||
echo "Minikube IP: ${IP}"
|
||||
Loading…
x
Reference in New Issue
Block a user