| @ -0,0 +1,4 @@ | |||||
| kubectl create -f pv-local-mysql.yaml | |||||
| kubectl create -f pv-local-wordpress.yaml | |||||
| kubectl create -k ./ | |||||
| #watch kubectl get all -n wordpress | |||||
| @ -0,0 +1 @@ | |||||
| kubectl exec -ti deployment.apps/wordpress -n wordpress -- /bin/bash | |||||
| @ -0,0 +1,23 @@ | |||||
| apiVersion: networking.k8s.io/v1 | |||||
| kind: Ingress | |||||
| metadata: | |||||
| name: wordpress-ingress | |||||
| namespace: wordpress-ingress | |||||
| annotations: | |||||
| nginx.ingress.kubernetes.io/ssl-redirect: "false" | |||||
| nginx.ingress.kubernetes.io/use-regex: "true" | |||||
| nginx.ingress.kubernetes.io/rewrite-target: /$2 | |||||
| spec: | |||||
| ingressClassName: nginx | |||||
| rules: | |||||
| - host: k8s-server | |||||
| http: | |||||
| paths: | |||||
| - path: /wordpress(/|$)(.*) | |||||
| pathType: Prefix | |||||
| backend: | |||||
| service: | |||||
| name: wordpress-ingress | |||||
| port: | |||||
| number: 80 | |||||
| @ -0,0 +1,7 @@ | |||||
| resources: | |||||
| - wp-namespace.yaml | |||||
| - wordpress-secrets.yaml | |||||
| - registry-secrets.yaml | |||||
| - mysql-deployment.yaml | |||||
| - wordpress-deployment.yaml | |||||
| - php-deployment.yaml | |||||
| @ -0,0 +1,70 @@ | |||||
| apiVersion: v1 | |||||
| kind: Service | |||||
| metadata: | |||||
| name: wordpress-ingress-mysql | |||||
| namespace: wordpress-ingress | |||||
| labels: | |||||
| app: wordpress-ingress | |||||
| spec: | |||||
| ports: | |||||
| - port: 3306 | |||||
| selector: | |||||
| app: wordpress-ingress | |||||
| tier: mysql | |||||
| clusterIP: None | |||||
| --- | |||||
| apiVersion: v1 | |||||
| kind: PersistentVolumeClaim | |||||
| metadata: | |||||
| name: mysql-wp-ingress-pv-claim | |||||
| namespace: wordpress-ingress | |||||
| labels: | |||||
| app: wordpress-ingress | |||||
| spec: | |||||
| accessModes: | |||||
| - ReadWriteOnce | |||||
| resources: | |||||
| requests: | |||||
| storage: 20Gi | |||||
| --- | |||||
| apiVersion: apps/v1 | |||||
| kind: Deployment | |||||
| metadata: | |||||
| name: wordpress-ingress-mysql | |||||
| namespace: wordpress-ingress | |||||
| labels: | |||||
| app: wordpress-ingress | |||||
| spec: | |||||
| selector: | |||||
| matchLabels: | |||||
| app: wordpress-ingress | |||||
| tier: mysql | |||||
| strategy: | |||||
| type: Recreate | |||||
| template: | |||||
| metadata: | |||||
| labels: | |||||
| app: wordpress-ingress | |||||
| tier: mysql | |||||
| spec: | |||||
| containers: | |||||
| - image: docker-registry:32000/mariadb:1.0 | |||||
| name: mysql | |||||
| env: | |||||
| - name: MYSQL_ROOT_PASSWORD | |||||
| valueFrom: | |||||
| secretKeyRef: | |||||
| name: mysqlwp-pass | |||||
| key: password | |||||
| ports: | |||||
| - containerPort: 3306 | |||||
| name: mysql | |||||
| volumeMounts: | |||||
| - name: mysql-persistent-storage | |||||
| mountPath: /var/lib/mysql | |||||
| imagePullSecrets: | |||||
| - name: reg-cred-secret | |||||
| volumes: | |||||
| - name: mysql-persistent-storage | |||||
| persistentVolumeClaim: | |||||
| claimName: mysql-wp-ingress-pv-claim | |||||
| @ -0,0 +1,3 @@ | |||||
| kubectl delete -k ./ | |||||
| kubectl delete -f pv-local-mysql.yaml | |||||
| kubectl delete -f pv-local-wordpress.yaml | |||||
| @ -0,0 +1,55 @@ | |||||
| apiVersion: v1 | |||||
| kind: Service | |||||
| metadata: | |||||
| name: phpmyadmin-wordpress-ingress | |||||
| namespace: wordpress-ingress | |||||
| labels: | |||||
| app: wordpress-ingress | |||||
| spec: | |||||
| selector: | |||||
| app: wordpress-ingress | |||||
| tier: phpmyadmin | |||||
| type: NodePort | |||||
| ports: | |||||
| - name: phpadmin | |||||
| port: 80 | |||||
| targetPort: phpmyadm | |||||
| --- | |||||
| apiVersion: apps/v1 | |||||
| kind: Deployment | |||||
| metadata: | |||||
| name: phpmyadmin-wordpress-ingress | |||||
| namespace: wordpress-ingress | |||||
| labels: | |||||
| app: wordpress-ingress | |||||
| spec: | |||||
| selector: | |||||
| matchLabels: | |||||
| app: wordpress-ingress | |||||
| tier: phpmyadmin | |||||
| strategy: | |||||
| type: Recreate | |||||
| template: | |||||
| metadata: | |||||
| labels: | |||||
| app: wordpress-ingress | |||||
| tier: phpmyadmin | |||||
| spec: | |||||
| containers: | |||||
| - name: phpmyadmin | |||||
| image: docker-registry:32000/phpmyadmin:1.0 | |||||
| ports: | |||||
| - containerPort: 80 | |||||
| name: phpmyadm | |||||
| env: | |||||
| - name: PMA_HOST | |||||
| value: wordpress-ingress-mysql | |||||
| - name: PMA_PORT | |||||
| value: "3306" | |||||
| - name: MYSQL_ROOT_PASSWORD | |||||
| valueFrom: | |||||
| secretKeyRef: | |||||
| name: mysqlwp-pass | |||||
| key: password | |||||
| imagePullSecrets: | |||||
| - name: reg-cred-secret | |||||
| @ -0,0 +1,11 @@ | |||||
| apiVersion: v1 | |||||
| kind: PersistentVolume | |||||
| metadata: | |||||
| name: wp-ingress-data | |||||
| spec: | |||||
| capacity: | |||||
| storage: 20Gi | |||||
| accessModes: | |||||
| - ReadWriteOnce | |||||
| hostPath: | |||||
| path: "/mnt/Externo/wordpress/wordpress-db" | |||||
| @ -0,0 +1,12 @@ | |||||
| apiVersion: v1 | |||||
| kind: PersistentVolume | |||||
| metadata: | |||||
| name: wp-ingress-folder | |||||
| spec: | |||||
| capacity: | |||||
| storage: 10Gi | |||||
| accessModes: | |||||
| - ReadWriteOnce | |||||
| hostPath: | |||||
| path: "/mnt/Externo/wordpress/wordpress-wp" | |||||
| @ -0,0 +1,11 @@ | |||||
| apiVersion: v1 | |||||
| data: | |||||
| .dockerconfigjson: eyJhdXRocyI6eyJkb2NrZXItcmVnaXN0cnk6MzIwMDAiOnsidXNlcm5hbWUiOiJjcmV5bG9wZXoiLCJwYXNzd29yZCI6IlJleS0xMTc2IiwiYXV0aCI6IlkzSmxlV3h2Y0dWNk9sSmxlUzB4TVRjMiJ9fX0= | |||||
| kind: Secret | |||||
| metadata: | |||||
| creationTimestamp: "2023-01-29T10:54:14Z" | |||||
| name: reg-cred-secret | |||||
| namespace: wordpress-ingress | |||||
| resourceVersion: "19890385" | |||||
| uid: 66b3b7c5-26c1-4e5a-af4e-dc973aaafe4b | |||||
| type: kubernetes.io/dockerconfigjson | |||||
| @ -0,0 +1,77 @@ | |||||
| apiVersion: v1 | |||||
| kind: Service | |||||
| metadata: | |||||
| name: wordpress-ingress | |||||
| namespace: wordpress-ingress | |||||
| labels: | |||||
| app: wordpress-ingress | |||||
| spec: | |||||
| type: ClusterIP | |||||
| ports: | |||||
| - port: 80 | |||||
| selector: | |||||
| app: wordpress-ingress | |||||
| tier: frontend | |||||
| --- | |||||
| apiVersion: v1 | |||||
| kind: PersistentVolumeClaim | |||||
| metadata: | |||||
| name: wp-ingress-pv-claim | |||||
| namespace: wordpress-ingress | |||||
| labels: | |||||
| app: wordpress-ingress | |||||
| spec: | |||||
| accessModes: | |||||
| - ReadWriteOnce | |||||
| storageClassName: "" | |||||
| resources: | |||||
| requests: | |||||
| storage: 10Gi | |||||
| --- | |||||
| apiVersion: apps/v1 | |||||
| kind: Deployment | |||||
| metadata: | |||||
| name: wordpress-ingress | |||||
| namespace: wordpress-ingress | |||||
| labels: | |||||
| app: wordpress-ingress | |||||
| spec: | |||||
| selector: | |||||
| matchLabels: | |||||
| app: wordpress-ingress | |||||
| tier: frontend | |||||
| strategy: | |||||
| type: Recreate | |||||
| template: | |||||
| metadata: | |||||
| labels: | |||||
| app: wordpress-ingress | |||||
| tier: frontend | |||||
| spec: | |||||
| containers: | |||||
| - image: docker-registry:32000/wordpress:1.0 | |||||
| name: wordpress-ingress | |||||
| env: | |||||
| - name: WORDPRESS_DB_HOST | |||||
| value: wordpress-ingress-mysql | |||||
| - name: WORDPRESS_DB_PASSWORD | |||||
| valueFrom: | |||||
| secretKeyRef: | |||||
| name: mysqlwp-pass | |||||
| key: password | |||||
| - name: WORDPRESS_DB_USER | |||||
| valueFrom: | |||||
| secretKeyRef: | |||||
| name: mysqlwp-pass | |||||
| key: db_user | |||||
| ports: | |||||
| - containerPort: 80 | |||||
| volumeMounts: | |||||
| - name: wordpress-ingress-persistent-storage | |||||
| mountPath: /var/www/html | |||||
| imagePullSecrets: | |||||
| - name: reg-cred-secret | |||||
| volumes: | |||||
| - name: wordpress-ingress-persistent-storage | |||||
| persistentVolumeClaim: | |||||
| claimName: wp-ingress-pv-claim | |||||
| @ -0,0 +1,9 @@ | |||||
| apiVersion: v1 | |||||
| kind: Secret | |||||
| metadata: | |||||
| name: mysqlwp-pass | |||||
| namespace: wordpress-ingress | |||||
| data: | |||||
| password: RHNhLTAyMTM= | |||||
| db_user: cm9vdA== | |||||
| db_passwd: RHNhLTAyMTM= | |||||
| @ -0,0 +1,18 @@ | |||||
| apiVersion: networking.k8s.io/v1 | |||||
| kind: Ingress | |||||
| metadata: | |||||
| name: wordpress-ingress | |||||
| namespace: wordpress | |||||
| annotations: | |||||
| ingress.kubernetes.io/rewrite-target: / | |||||
| spec: | |||||
| rules: | |||||
| - http: | |||||
| paths: | |||||
| - path: / | |||||
| pathType: Prefix | |||||
| backend: | |||||
| service: | |||||
| name: wordpress | |||||
| port: | |||||
| number: 80 | |||||
| @ -0,0 +1,4 @@ | |||||
| apiVersion: v1 | |||||
| kind: Namespace | |||||
| metadata: | |||||
| name: wordpress-ingress | |||||
| @ -0,0 +1,22 @@ | |||||
| apiVersion: networking.k8s.io/v1 | |||||
| kind: Ingress | |||||
| metadata: | |||||
| name: miweb-ingress | |||||
| namespace: default | |||||
| spec: | |||||
| ingressClassName: nginx | |||||
| tls: | |||||
| - hosts: | |||||
| - reymota.ddns.net | |||||
| secretName: ingress-cert | |||||
| rules: | |||||
| - host: "reymota.ddns.net" | |||||
| http: | |||||
| paths: | |||||
| - pathType: Prefix | |||||
| path: "/" | |||||
| backend: | |||||
| service: | |||||
| name: miweb | |||||
| port: | |||||
| number: 80 | |||||
| @ -0,0 +1,22 @@ | |||||
| apiVersion: networking.k8s.io/v1 | |||||
| kind: Ingress | |||||
| metadata: | |||||
| name: vaultwarden-ingress | |||||
| namespace: vaultwarden | |||||
| spec: | |||||
| ingressClassName: nginx | |||||
| tls: | |||||
| - hosts: | |||||
| - reymota.ddns.net | |||||
| secretName: ingress-cert | |||||
| rules: | |||||
| - host: "reymota.ddns.net" | |||||
| http: | |||||
| paths: | |||||
| - pathType: Prefix | |||||
| path: "/" | |||||
| backend: | |||||
| service: | |||||
| name: vaultwarden | |||||
| port: | |||||
| number: 80 | |||||
| @ -0,0 +1,4 @@ | |||||
| FROM php:7.4-fpm | |||||
| RUN mkdir /app | |||||
| WORKDIR /app | |||||
| COPY src . | |||||
| @ -0,0 +1,15 @@ | |||||
| apiVersion: cert-manager.io/v1 | |||||
| kind: ClusterIssuer | |||||
| metadata: | |||||
| name: letsencrypt-prod-site | |||||
| namespace: cert-manager | |||||
| spec: | |||||
| acme: | |||||
| server: https://acme-v02.api.letsencrypt.org/directory | |||||
| email: king.bernard.b@gmail.com | |||||
| privateKeySecretRef: | |||||
| name: letsencrypt-prod-site | |||||
| solvers: | |||||
| - http01: | |||||
| ingress: | |||||
| class: nginx | |||||
| @ -0,0 +1,3 @@ | |||||
| POD_NAMESPACE=ingress-nginx | |||||
| POD_NAME=$(kubectl get pods -n $POD_NAMESPACE -l app.kubernetes.io/name=ingress-nginx --field-selector=status.phase=Running -o name) | |||||
| kubectl exec $POD_NAME -n $POD_NAMESPACE -- /nginx-ingress-controller --version | |||||
| @ -0,0 +1,27 @@ | |||||
| kind: ConfigMap | |||||
| apiVersion: v1 | |||||
| metadata: | |||||
| name: nginx-config | |||||
| data: | |||||
| nginx.conf: | | |||||
| events { | |||||
| } | |||||
| http { | |||||
| server { | |||||
| listen 80 default_server; | |||||
| listen [::]:80 default_server; | |||||
| root /var/www/html; | |||||
| index index.html index.htm index.php; | |||||
| server_name _; | |||||
| location / { | |||||
| try_files $uri $uri/ =404; | |||||
| } | |||||
| location ~ \.php$ { | |||||
| include fastcgi_params; | |||||
| fastcgi_param REQUEST_METHOD $request_method; | |||||
| fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; | |||||
| fastcgi_pass 127.0.0.1:9000; | |||||
| } | |||||
| } | |||||
| } | |||||
| @ -0,0 +1,72 @@ | |||||
| apiVersion: apps/v1 | |||||
| kind: Deployment | |||||
| metadata: | |||||
| name: deployment | |||||
| labels: | |||||
| name: deployment | |||||
| spec: | |||||
| replicas: 3 | |||||
| strategy: | |||||
| type: RollingUpdate | |||||
| rollingUpdate: | |||||
| maxSurge: 1 | |||||
| maxUnavailable: 2 | |||||
| selector: | |||||
| matchLabels: | |||||
| name: templated-pod | |||||
| template: | |||||
| metadata: | |||||
| name: deployment-template | |||||
| labels: | |||||
| name: templated-pod | |||||
| spec: | |||||
| volumes: | |||||
| - name: app-files | |||||
| emptyDir: {} | |||||
| - name: nginx-config-volume | |||||
| configMap: | |||||
| name: nginx-config | |||||
| containers: | |||||
| - image: docker-registry:32000/creylopez/kphp:v1 | |||||
| name: app | |||||
| volumeMounts: | |||||
| - name: app-files | |||||
| mountPath: /var/www/html | |||||
| lifecycle: | |||||
| postStart: | |||||
| exec: | |||||
| command: ["/bin/sh", "-c", "cp -r /app/. /var/www/html"] | |||||
| resources: | |||||
| limits: | |||||
| cpu: 100m | |||||
| requests: | |||||
| cpu: 50m | |||||
| - image: nginx:latest | |||||
| name: nginx | |||||
| volumeMounts: | |||||
| - name: app-files | |||||
| mountPath: /var/www/html | |||||
| - name: nginx-config-volume | |||||
| mountPath: /etc/nginx/nginx.conf | |||||
| subPath: nginx.conf | |||||
| resources: | |||||
| limits: | |||||
| cpu: 100m | |||||
| requests: | |||||
| cpu: 50m | |||||
| ports: | |||||
| - containerPort: 80 | |||||
| readinessProbe: | |||||
| httpGet: | |||||
| path: / | |||||
| port: 80 | |||||
| initialDelaySeconds: 3 | |||||
| periodSeconds: 3 | |||||
| successThreshold: 1 | |||||
| imagePullSecrets: | |||||
| - name: reg-cred-secret | |||||
| @ -0,0 +1,25 @@ | |||||
| apiVersion: networking.k8s.io/v1 | |||||
| kind: Ingress | |||||
| metadata: | |||||
| name: ingress | |||||
| annotations: | |||||
| kubernetes.io/ingress.class: "nginx" | |||||
| cert-manager.io/cluster-issuer: "letsencrypt-prod-site" | |||||
| spec: | |||||
| tls: | |||||
| - hosts: | |||||
| - reymota.ddns.net | |||||
| secretName: site-tls | |||||
| rules: | |||||
| - host: reymota.ddns.net | |||||
| http: | |||||
| paths: | |||||
| - path: / | |||||
| pathType: Prefix | |||||
| backend: | |||||
| service: | |||||
| name: service-loadbalancer | |||||
| port: | |||||
| number: 80 | |||||
| @ -0,0 +1 @@ | |||||
| kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.11.0/cert-manager.yaml | |||||
| @ -0,0 +1 @@ | |||||
| kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.5.1/deploy/static/provider/baremetal/deploy.yaml | |||||
| @ -0,0 +1,22 @@ | |||||
| apiVersion: v1 | |||||
| kind: Service | |||||
| metadata: | |||||
| name: service-loadbalancer | |||||
| spec: | |||||
| selector: | |||||
| name: templated-pod | |||||
| type: ClusterIP | |||||
| ports: | |||||
| - name: http | |||||
| nodePort: null | |||||
| port: 80 | |||||
| targetPort: 80 | |||||
| protocol: TCP | |||||
| # type: LoadBalancer | |||||
| # ports: | |||||
| # - port: 80 | |||||
| # targetPort: 80 | |||||
| # externalIPs: | |||||
| # - 192.168.1.147 | |||||
| @ -0,0 +1,14 @@ | |||||
| apiVersion: v1 | |||||
| kind: Service | |||||
| metadata: | |||||
| name: service-loadbalancer | |||||
| spec: | |||||
| selector: | |||||
| name: templated-pod | |||||
| ports: | |||||
| - port: 80 | |||||
| targetPort: 80 | |||||
| type: LoadBalancer | |||||
| externalIPs: | |||||
| - 192.168.1.147 | |||||
| @ -0,0 +1,2 @@ | |||||
| <?php | |||||
| phpinfo(); | |||||
| @ -1 +1 @@ | |||||
| kubectl exec -ti deployment.apps/nginx-example -- /bin/bash | |||||
| kubectl exec -ti deployment.apps/miweb -- /bin/bash | |||||
| @ -0,0 +1,21 @@ | |||||
| -----BEGIN CERTIFICATE----- | |||||
| MIIDZTCCAk2gAwIBAgIUeyhdjrJrbEReY7++sCIAKsXk4AMwDQYJKoZIhvcNAQEL | |||||
| BQAwQTELMAkGA1UEBhMCRVMxDzANBgNVBAgMBk1hZHJpZDEPMA0GA1UEBwwGTWFk | |||||
| cmlkMRAwDgYDVQQKDAdyZXltb3RhMCAXDTIzMDIxMDExNTE0MFoYDzIwNTAwNjI3 | |||||
| MTE1MTQwWjBBMQswCQYDVQQGEwJFUzEPMA0GA1UECAwGTWFkcmlkMQ8wDQYDVQQH | |||||
| DAZNYWRyaWQxEDAOBgNVBAoMB3JleW1vdGEwggEiMA0GCSqGSIb3DQEBAQUAA4IB | |||||
| DwAwggEKAoIBAQC579/wUkYvBm2/PtzMWWxWomDKM+Pep4UNKnAidM2Ymv725jIp | |||||
| 4i/QY8jDbQ8rGHs8hPMhRPNOjQ6BWioQNgSVS9XozXIE9KY/hVtZpw1I6BxLrdUe | |||||
| bop3E/IztRNiVxxuMqTCjrG8H8AZJS8rSlif8dxMQFSRTQo+6mslZTH9S6By/8az | |||||
| 9ILKb74cvyZPSdaEVLhV9NMqLeX+K1uD7qMd4EBmRSfFiKX1vzU034Qs8cz8Ojq/ | |||||
| j6ikxEISKLE3M4t61GTFYnXI1LBrm8Wr6xyc0Xw5SMnMoW9Bi7CDB3HNOo1Mma1y | |||||
| oLXvwdxb81ljuPDgB4sC5oj1vm0cs+vLuf5NAgMBAAGjUzBRMB0GA1UdDgQWBBQc | |||||
| UNq9PGRmWfRDbvYGffFjoYZFizAfBgNVHSMEGDAWgBQcUNq9PGRmWfRDbvYGffFj | |||||
| oYZFizAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQC17xD3thy8 | |||||
| dVeQiTe3fLWHFL+IA59zPG+xDU0F2AjCl5BL3m76YfyIELO0QVmTjzOeCLeXDekA | |||||
| 0wYiLBCE3OTRZDy+/jFRcSmnEvWtkeDOJfdSe1AIGel8g60RxcpfMcdKzDkV4zLE | |||||
| 7riQSZfPNTpBgoBhwwts32mqTSumR8ufy/G0JX2EbMjHnYaGSs9VfaIf2wN2Ss9x | |||||
| F/LD/bz1szLJksnB2jP8bgbIVjrwPVyh+lXP134lm0Z+q7m/QFJhWL0fMtxZudPv | |||||
| 2ja8gjHOAwlI+xQmDrnhtHfy6ofyynoYHNkviO3S6X/gD14Ug5Ra8YXzThfpkKHq | |||||
| /NK+A73Mit8X | |||||
| -----END CERTIFICATE----- | |||||
| @ -0,0 +1,28 @@ | |||||
| -----BEGIN PRIVATE KEY----- | |||||
| MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC579/wUkYvBm2/ | |||||
| PtzMWWxWomDKM+Pep4UNKnAidM2Ymv725jIp4i/QY8jDbQ8rGHs8hPMhRPNOjQ6B | |||||
| WioQNgSVS9XozXIE9KY/hVtZpw1I6BxLrdUebop3E/IztRNiVxxuMqTCjrG8H8AZ | |||||
| JS8rSlif8dxMQFSRTQo+6mslZTH9S6By/8az9ILKb74cvyZPSdaEVLhV9NMqLeX+ | |||||
| K1uD7qMd4EBmRSfFiKX1vzU034Qs8cz8Ojq/j6ikxEISKLE3M4t61GTFYnXI1LBr | |||||
| m8Wr6xyc0Xw5SMnMoW9Bi7CDB3HNOo1Mma1yoLXvwdxb81ljuPDgB4sC5oj1vm0c | |||||
| s+vLuf5NAgMBAAECggEAYqzmj0dab8Jdo8zcqKYcVK2/6A85swP8HEyVTfPm2EIJ | |||||
| ZUYtAQVEkrch6HSMRDat0CROUy2gYeOB+yu6fvfr3r9sOiwtgmvDfpprLFz3M+Xa | |||||
| fl82ZvwLB77SHpbOPrY0JFdEEOxhbpD7BV0ydyrxdZCJdP3+402bTmBhlGrr6Ju9 | |||||
| OXe8AANv2Qj9s3l1Wp/QRr2oWsBdeVdWPtAqj2FebqB1RmxXkFO88saK6asYjseF | |||||
| iHvhkYw1Tn7vjl7eslO2ZYrCbNqaRl/lpyhQyL8BgDQDan9FQ4HdXZwJf+ZT0Bqx | |||||
| Y2uipjSe+5JzmmzvinLlET8H4iGF0TAPGZXuN3wUAQKBgQDxjQ4K0tLYfTR7kW// | |||||
| NUYbPxZrErN4Sc/TQFWCS3T2vYZpoSeQuLHysmBBZfrBS4Mfd052OETPE5l0FfCv | |||||
| /eucwgjRGe1DCLaGtcbpYcR3llGTMfLRmEN9f4U2AsemzqBR1GfiqdHz9As512wO | |||||
| n9343OjxFeblyetamCZB+Y/zDQKBgQDFDy+NPqxtaWbI6jyvtn3HDtlwgITsVnvQ | |||||
| GRakBZmEN5xwHP0ZxMTv7NCHKjVjF16wOlVcnc12xL+IFG6Np36wj2QWdHPDEagh | |||||
| AJmnFGukADAYYff2W9NxGW3MO6ZuO9LlxvHjJiUS1IPpd4ped2fLYHNbaVKbHQ9l | |||||
| tZi0pTBoQQKBgEkKNwnM0BbIXVtUEgKgsE9C11uPLxebci1V0cVxXa/ShVdhdJ5N | |||||
| SvmxOGvuE1HprH+SSvZyc1QOgCNbEwmUhW9EOPhJl7XiZ5b6VmhxuL/Ug1w4CU2Z | |||||
| dib3rWc0lfx5lH7J9JPUd/kFfXODEVimvK8o1YM49TXcxb8CLOdcOEvtAoGBAMFa | |||||
| 2iy8T1H39vuzIqLC7H1SK7bA1CxV25zf0SBVwkFCk8RKHWqYcSh99Ep79vBo8Ob4 | |||||
| BeQfjog4Gzr52VQzAhNaTzndP+0quQ7Q2PNhDRFZgdea4UQg68Jw0hRwfyhwmMoP | |||||
| QC7CsePdFCYTvnhcr0KWO/p4yK4cgIwq+FBgObRBAoGAaU55AetKon5vVeiE9qRS | |||||
| u9aM7zdiBjJwlLDyybjLgyRKJ6muTz0NfK7y1LAjN81CDaWGi2xdbsdOXF7xMfsl | |||||
| vHKQ+L/tnphwQUsezQEWbEwLXp0IH8yUAkCjCgtRl7aavHsXvyOz9426vJvdaBkt | |||||
| YvtVeQaqukbh5F4BETam+1k= | |||||
| -----END PRIVATE KEY----- | |||||
| @ -0,0 +1 @@ | |||||
| kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.5.1/deploy/static/provider/baremetal/deploy.yaml | |||||
| @ -0,0 +1,36 @@ | |||||
| apiVersion: apps/v1 | |||||
| kind: Deployment | |||||
| metadata: | |||||
| name: sample-app | |||||
| namespace: default | |||||
| spec: | |||||
| selector: | |||||
| matchLabels: | |||||
| app: sample | |||||
| replicas: 2 | |||||
| template: | |||||
| metadata: | |||||
| labels: | |||||
| app: sample | |||||
| spec: | |||||
| containers: | |||||
| - name: sample | |||||
| image: "gcr.io/google-samples/hello-app:2.0" | |||||
| --- | |||||
| apiVersion: v1 | |||||
| kind: Service | |||||
| metadata: | |||||
| name: sample-app-service | |||||
| namespace: default | |||||
| labels: | |||||
| app: sample | |||||
| spec: | |||||
| type: ClusterIP | |||||
| selector: | |||||
| app: sample | |||||
| ports: | |||||
| - port: 80 | |||||
| targetPort: 8080 | |||||
| protocol: TCP | |||||
| @ -0,0 +1,22 @@ | |||||
| apiVersion: networking.k8s.io/v1 | |||||
| kind: Ingress | |||||
| metadata: | |||||
| name: sample-app-ingress | |||||
| namespace: default | |||||
| spec: | |||||
| ingressClassName: nginx | |||||
| tls: | |||||
| - hosts: | |||||
| - reymota.ddns.net | |||||
| secretName: ingress-cert | |||||
| rules: | |||||
| - host: "reymota.ddns.net" | |||||
| http: | |||||
| paths: | |||||
| - pathType: Prefix | |||||
| path: "/" | |||||
| backend: | |||||
| service: | |||||
| name: sample-app-service | |||||
| port: | |||||
| number: 80 | |||||