diff --git a/CreaCluster/10-prepara.sh b/CreaCluster/10-prepara.sh new file mode 100644 index 00000000..03910748 --- /dev/null +++ b/CreaCluster/10-prepara.sh @@ -0,0 +1,84 @@ +read -p "Voy a quitar swap. Pulsa ENTER para seguir:" mainmenuinput + +# disable swap + +sudo swapoff -a +sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab + +read -p "Cargar kernel modules. Pulsa ENTER para seguir:" mainmenuinput + +# Load the following kernel modules on all the nodes + +sudo tee /etc/modules-load.d/containerd.conf </dev/null 2>&1 +sudo sed -i 's/SystemdCgroup \= false/SystemdCgroup \= true/g' /etc/containerd/config.toml + +read -p "Enable containerd. Pulsa ENTER para seguir:" mainmenuinput + +# Restart and enable containerd service + +sudo systemctl restart containerd +sudo systemctl enable containerd + +read -p "AƱade repository de Kubernetes. Pulsa ENTER para seguir:" mainmenuinput + +# Add apt repository for Kubernetes + +curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - +sudo apt-add-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main" + +# Install Kubernetes components Kubectl, kubeadm & kubelet +read -p "Instalar componentes de kubernetes. Pulsa ENTER para seguir:" mainmenuinput + + +sudo apt update +sudo apt install -y kubelet kubeadm kubectl +sudo apt-mark hold kubelet kubeadm kubectl diff --git a/CreaCluster/00-borraCluster.sh b/CreaCluster/20-borraCluster.sh similarity index 100% rename from CreaCluster/00-borraCluster.sh rename to CreaCluster/20-borraCluster.sh diff --git a/CreaCluster/01-inicializaCluster.sh b/CreaCluster/30-inicializaCluster.sh similarity index 100% rename from CreaCluster/01-inicializaCluster.sh rename to CreaCluster/30-inicializaCluster.sh diff --git a/CreaCluster/02-creaConfigCluster.sh b/CreaCluster/40-creaConfigCluster.sh similarity index 100% rename from CreaCluster/02-creaConfigCluster.sh rename to CreaCluster/40-creaConfigCluster.sh diff --git a/CreaCluster/03-creaCalico.sh b/CreaCluster/50-creaCalico.sh similarity index 100% rename from CreaCluster/03-creaCalico.sh rename to CreaCluster/50-creaCalico.sh diff --git a/CreaCluster/04-masterEsWorker.sh b/CreaCluster/60-masterEsWorker.sh similarity index 100% rename from CreaCluster/04-masterEsWorker.sh rename to CreaCluster/60-masterEsWorker.sh diff --git a/CreaCluster/05-confirmaRunning.sh b/CreaCluster/70-confirmaRunning.sh similarity index 100% rename from CreaCluster/05-confirmaRunning.sh rename to CreaCluster/70-confirmaRunning.sh diff --git a/CreaCluster/shell.sh b/CreaCluster/shell.sh new file mode 100644 index 00000000..44ded62a --- /dev/null +++ b/CreaCluster/shell.sh @@ -0,0 +1 @@ +read -p "Pulsa ENTER para seguir:" mainmenuinput diff --git a/PGO/creaTodo.sh b/PGO/creaTodo.sh new file mode 100755 index 00000000..09fc3198 --- /dev/null +++ b/PGO/creaTodo.sh @@ -0,0 +1,6 @@ +kubectl create -f pv-local-pg.yaml +kubectl create -f pvc-pg.yaml +kubectl create -f postgres-configmap.yaml +kubectl create -f postgres-deployment.yaml +kubectl create -f postgres-service.yaml +watch kubectl get all -n postgres diff --git a/PGO/entra.sh b/PGO/entra.sh new file mode 100755 index 00000000..87f15102 --- /dev/null +++ b/PGO/entra.sh @@ -0,0 +1 @@ +kubectl exec -ti deployment.apps/postgres -n postgres -- /bin/bash diff --git a/PGO/paraTodo.sh b/PGO/paraTodo.sh new file mode 100755 index 00000000..0a0d9a28 --- /dev/null +++ b/PGO/paraTodo.sh @@ -0,0 +1,10 @@ +kubectl delete -f postgres-service.yaml +kubectl delete -f postgres-deployment.yaml +kubectl delete -f postgres-configmap.yaml +kubectl delete -f pvc-pg.yaml +kubectl delete -f pv-local-pg.yaml +kubectl delete -f pgadmin-configmap.yaml +kubectl delete -f pgadmin-secret.yaml +kubectl delete -f pgadmin-service.yaml +kubectl delete -f pgadmin-statefulset.yaml +kubectl delete -f pv-local-pgadmin.yaml diff --git a/PGO/pgadmin-configmap.yaml b/PGO/pgadmin-configmap.yaml new file mode 100644 index 00000000..83eeba6d --- /dev/null +++ b/PGO/pgadmin-configmap.yaml @@ -0,0 +1,20 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: pgadmin-config + namespace: postgres +data: + servers.json: | + { + "Servers": { + "1": { + "Name": "PostgreSQL DB", + "Group": "Servers", + "Port": 5432, + "Username": "postgres", + "Host": "postgres", + "SSLMode": "prefer", + "MaintenanceDB": "postgres" + } + } + } diff --git a/PGO/pgadmin-secret.yaml b/PGO/pgadmin-secret.yaml new file mode 100644 index 00000000..96a37dba --- /dev/null +++ b/PGO/pgadmin-secret.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: Secret +type: Opaque +metadata: + name: pgadmin + namespace: postgres +data: + pgadmin-password: UmV5LTExNzYK diff --git a/PGO/pgadmin-service.yaml b/PGO/pgadmin-service.yaml new file mode 100644 index 00000000..4da00433 --- /dev/null +++ b/PGO/pgadmin-service.yaml @@ -0,0 +1,13 @@ +apiVersion: v1 +kind: Service +metadata: + name: pgadmin-service + namespace: postgres +spec: + ports: + - protocol: TCP + port: 80 + targetPort: http + selector: + app: pgadmin + type: NodePort diff --git a/PGO/pgadmin-statefulset.yaml b/PGO/pgadmin-statefulset.yaml new file mode 100644 index 00000000..78ba5dd4 --- /dev/null +++ b/PGO/pgadmin-statefulset.yaml @@ -0,0 +1,55 @@ +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: pgadmin + namespace: postgres +spec: + serviceName: pgadmin-service + podManagementPolicy: Parallel + replicas: 1 + updateStrategy: + type: RollingUpdate + selector: + matchLabels: + app: pgadmin + template: + metadata: + labels: + app: pgadmin + spec: + terminationGracePeriodSeconds: 10 + containers: + - name: pgadmin + image: dpage/pgadmin4:5.4 + imagePullPolicy: Always + env: + - name: PGADMIN_DEFAULT_EMAIL + value: celestino.rey@gmail.com + - name: PGADMIN_DEFAULT_PASSWORD + valueFrom: + secretKeyRef: + name: pgadmin + key: pgadmin-password + ports: + - name: http + containerPort: 80 + protocol: TCP + volumeMounts: + - name: pgadmin-config + mountPath: /pgadmin4/servers.json + subPath: servers.json + readOnly: true + - name: pgadmin-data + mountPath: /var/lib/pgadmin + volumes: + - name: pgadmin-config + configMap: + name: pgadmin-config + volumeClaimTemplates: + - metadata: + name: pgadmin-data + spec: + accessModes: [ "ReadWriteOnce" ] + resources: + requests: + storage: 3Gi diff --git a/PGO/postgres-configmap.yaml b/PGO/postgres-configmap.yaml new file mode 100644 index 00000000..2f3b1d13 --- /dev/null +++ b/PGO/postgres-configmap.yaml @@ -0,0 +1,13 @@ +# Create ConfigMap postgres-secret for the postgres app +# Define default database name, user, and password +apiVersion: v1 +kind: ConfigMap +metadata: + name: postgres-secret + namespace: postgres + labels: + app: postgres +data: + POSTGRES_DB: productos + POSTGRES_USER: creylopez + POSTGRES_PASSWORD: Rey-1176 diff --git a/PGO/postgres-deployment.yaml b/PGO/postgres-deployment.yaml new file mode 100644 index 00000000..2b597f9e --- /dev/null +++ b/PGO/postgres-deployment.yaml @@ -0,0 +1,31 @@ +apiVersion: apps/v1 +kind: Deployment # Create a deployment +metadata: + name: postgres # Set the name of the deployment + namespace: postgres +spec: + replicas: 1 # Set 3 deployment replicas + selector: + matchLabels: + app: postgres + template: + metadata: + labels: + app: postgres + spec: + containers: + - name: postgres + image: postgres:12.10 # Docker image + imagePullPolicy: "IfNotPresent" + ports: + - containerPort: 5432 # Exposing the container port 5432 for PostgreSQL client connections. + envFrom: + - configMapRef: + name: postgres-secret # Using the ConfigMap postgres-secret + volumeMounts: + - mountPath: /var/lib/postgresql/data + name: postgresdata + volumes: + - name: postgresdata + persistentVolumeClaim: + claimName: pg-pv-claim diff --git a/PGO/postgres-service.yaml b/PGO/postgres-service.yaml new file mode 100644 index 00000000..baee280e --- /dev/null +++ b/PGO/postgres-service.yaml @@ -0,0 +1,13 @@ +apiVersion: v1 +kind: Service # Create service +metadata: + name: postgres # Sets the service name + namespace: postgres + labels: + app: postgres # Defines app to create service for +spec: + type: NodePort # Sets the service type + ports: + - port: 5432 # Sets the port to run the postgres application + selector: + app: postgres diff --git a/PGO/pv-local-pg.yaml b/PGO/pv-local-pg.yaml new file mode 100644 index 00000000..9009b42d --- /dev/null +++ b/PGO/pv-local-pg.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +kind: PersistentVolume +metadata: + name: pg-data +spec: + capacity: + storage: 20Gi + accessModes: + - ReadWriteOnce + hostPath: + path: "/mnt/cluster/postgres/postgres-db" diff --git a/PGO/pv-local-pgadmin.yaml b/PGO/pv-local-pgadmin.yaml new file mode 100644 index 00000000..f24d0fba --- /dev/null +++ b/PGO/pv-local-pgadmin.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +kind: PersistentVolume +metadata: + name: pgadmin-data +spec: + capacity: + storage: 3Gi + accessModes: + - ReadWriteOnce + hostPath: + path: "/mnt/cluster/postgres/pgadmin" diff --git a/PGO/pvc-pg.yaml b/PGO/pvc-pg.yaml new file mode 100644 index 00000000..ef9710f5 --- /dev/null +++ b/PGO/pvc-pg.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: pg-pv-claim + namespace: postgres + labels: + app: postgres +spec: + accessModes: + - ReadWriteOnce + storageClassName: "" + resources: + requests: + storage: 10Gi diff --git a/ownCloud/creaTodo.sh b/ownCloud/creaTodo.sh index e9f67651..be09a427 100755 --- a/ownCloud/creaTodo.sh +++ b/ownCloud/creaTodo.sh @@ -1,4 +1,15 @@ +# +# crea el namespace +# +kubectl create -f oc-namespace.yaml +# +# crea los voluenes persistentes +# kubectl create -f pv-local-owncloud.yaml kubectl create -f pv-local-mysql.yaml + kubectl create -k ./ +# +# observa hasta que arranque todo +# watch kubectl get all -n owncloud diff --git a/ownCloud/docker-compose.yml b/ownCloud/docker-compose.yml new file mode 100644 index 00000000..907437b0 --- /dev/null +++ b/ownCloud/docker-compose.yml @@ -0,0 +1,8 @@ +version: '3.1' +services: + owncloud: + # use the latest version of owncloud + image: owncloud:latest + ports: + # bind ownCloud's port 80 to port 8080 + - 8080:80 diff --git a/ownCloud/kustomization.yaml b/ownCloud/kustomization.yaml index c1b8e16e..22b28be6 100644 --- a/ownCloud/kustomization.yaml +++ b/ownCloud/kustomization.yaml @@ -6,7 +6,7 @@ secretGenerator: - db_user=root - db_passwd=Dsa-0213 resources: -- oc-namespace.yaml +- pvc-owncloud.yaml - mysql-deployment.yaml - php-deployment.yaml - owncloud-deployment.yaml diff --git a/ownCloud/nextcloud-deployment.yaml b/ownCloud/nextcloud-deployment.yaml new file mode 100644 index 00000000..e2f8b343 --- /dev/null +++ b/ownCloud/nextcloud-deployment.yaml @@ -0,0 +1,48 @@ +apiVersion: v1 +kind: Service +metadata: + name: nextcloud-server + namespace: nextcloud + labels: + app: nextcloud +spec: + selector: + pod-label: nextcloud-server-pod + type: NodePort + ports: + - port: 80 + nodePort: 30289 + targetPort: nextcloud +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: nextcloud-server + namespace: nextcloud + labels: + app: nextcloud +spec: + replicas: 1 + selector: + matchLabels: + pod-label: nextcloud-server-pod + template: + metadata: + labels: + pod-label: nextcloud-server-pod + spec: + containers: + - name: nextcloud + image: nextcloud + volumeMounts: + - name: server-storage + mountPath: /var/www/html + subPath: server-data + ports: + - containerPort: 80 + name: nextcloud + volumes: + - name: server-storage + persistentVolumeClaim: + claimName: dbnc-pv-claim + diff --git a/ownCloud/owncloud-deployment.yaml b/ownCloud/owncloud-deployment.yaml index 511fa415..3d806deb 100644 --- a/ownCloud/owncloud-deployment.yaml +++ b/ownCloud/owncloud-deployment.yaml @@ -1,61 +1,44 @@ -apiVersion: v1 -kind: Service -metadata: - name: owncloud-server - namespace: owncloud - labels: - app: owncloud -spec: - selector: - pod-label: owncloud-server-pod - type: NodePort - ports: - - port: 8080 - nodePort: 30689 - targetPort: owncloud ---- -apiVersion: v1 -kind: PersistentVolumeClaim -metadata: - name: dboc-pv-claim - namespace: owncloud - labels: - app: owncloud -spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 50Gi ---- apiVersion: apps/v1 kind: Deployment metadata: - name: owncloud-server - namespace: owncloud + annotations: + kompose.cmd: /snap/kompose/19/kompose-linux-amd64 convert + kompose.version: 1.21.0 (992df58d8) + creationTimestamp: null labels: - app: owncloud + io.kompose.service: owncloud + name: owncloud + namespace: owncloud spec: replicas: 1 selector: matchLabels: - pod-label: owncloud-server-pod + io.kompose.service: owncloud + strategy: {} template: metadata: + annotations: + kompose.cmd: /snap/kompose/19/kompose-linux-amd64 convert + kompose.version: 1.21.0 (992df58d8) + creationTimestamp: null labels: - pod-label: owncloud-server-pod + io.kompose.service: owncloud spec: containers: - - name: owncloud - image: 'owncloud/server:latest' + - image: owncloud:latest + imagePullPolicy: "" + name: owncloud volumeMounts: - name: server-storage - mountPath: /mnt/data + mountPath: /var/www/html/data ports: - - containerPort: 8080 - name: owncloud + - containerPort: 80 + resources: {} + restartPolicy: Always + serviceAccountName: "" volumes: - name: server-storage persistentVolumeClaim: claimName: dboc-pv-claim +status: {} diff --git a/ownCloud/owncloud-service.yaml b/ownCloud/owncloud-service.yaml new file mode 100644 index 00000000..234ec9d0 --- /dev/null +++ b/ownCloud/owncloud-service.yaml @@ -0,0 +1,22 @@ +apiVersion: v1 +kind: Service +metadata: + annotations: + kompose.cmd: /snap/kompose/19/kompose-linux-amd64 convert + kompose.version: 1.21.0 (992df58d8) + creationTimestamp: null + labels: + io.kompose.service: owncloud + name: owncloud + namespace: owncloud +spec: + type: NodePort + ports: + - name: "8080" + port: 8080 + nodePort: 30289 + targetPort: 80 + selector: + io.kompose.service: owncloud +status: + loadBalancer: {} diff --git a/ownCloud/paraTodo.sh b/ownCloud/paraTodo.sh index e6ff8e20..d4ce68e6 100755 --- a/ownCloud/paraTodo.sh +++ b/ownCloud/paraTodo.sh @@ -1,3 +1,4 @@ kubectl delete -k ./ +kubectl delete -f pvc-owncloud.yaml kubectl delete -f pv-local-owncloud.yaml kubectl delete -f pv-local-mysql.yaml diff --git a/ownCloud/php-deployment.yaml b/ownCloud/php-deployment.yaml index 21da0149..d56c1511 100644 --- a/ownCloud/php-deployment.yaml +++ b/ownCloud/php-deployment.yaml @@ -13,7 +13,7 @@ spec: ports: - name: phpadmin port: 80 - nodePort: 30680 + nodePort: 30480 targetPort: phpmyadm --- apiVersion: apps/v1 diff --git a/ownCloud/pvc-owncloud.yaml b/ownCloud/pvc-owncloud.yaml new file mode 100644 index 00000000..e3f5e947 --- /dev/null +++ b/ownCloud/pvc-owncloud.yaml @@ -0,0 +1,13 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: dboc-pv-claim + # namespace: owncloud + labels: + app: owncloud +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 50Gi