| @ -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 | |||