Slide 1

Slide 1 text

Kubernetes with Laravel Kubernetes with Laravel

Slide 2

Slide 2 text

@bobbybouwmann Kubernetes with Laravel

Slide 3

Slide 3 text

Kubernetes with Laravel

Slide 4

Slide 4 text

Kubernetes with Laravel

Slide 5

Slide 5 text

Agenda • What is kubernetes • Laravel with Kubernetes • Kubernetes vs Larvel Vapor Kubernetes with Laravel

Slide 6

Slide 6 text

What is kubernetes? • Orchestra*on pla0orm for containers • Is compatable with Docker • Manages deployments and scaling Kubernetes with Laravel

Slide 7

Slide 7 text

Kubernetes with Laravel

Slide 8

Slide 8 text

kubectl get pods -o wide NAME READY STATUS AGE IP NODE horizon-794474c567-5mxwm 1/1 Running 8d 172.31.17.141 server01.eu-central-1 app-57c65f4d5b-9jbjc 1/1 Running 8d 172.31.21.72 server01.eu-central-1 app-57c65f4d5b-hlz25 1/1 Running 8d 172.31.9.186 server02.eu-central-1 app-57c65f4d5b-tzbb8 1/1 Running 8d 172.31.26.106 server02.eu-central-1 Kubernetes with Laravel

Slide 9

Slide 9 text

NAME READY STATUS RESTARTS AGE app-594f6cfd8b-gl84s 1/1 Running 0 3d app-594f6cfd8b-8623b 1/1 Running 0 3d Kubernetes with Laravel

Slide 10

Slide 10 text

kubectl apply -f docker/kube/prod.yml NAME READY STATUS RESTARTS AGE app-vb345b238p-4mnz7 0/1 Terminating 0 3d app-vb345b238p-8623b 1/1 Running 0 3d app-7764bd5f8d-k2k55 0/1 Init:0/1 0 7s Kubernetes with Laravel

Slide 11

Slide 11 text

NAME READY STATUS RESTARTS AGE app-594f6cfd8b-gl84s 1/1 Running 0 3d app-7764bd5f8d-k2k55 0/1 Init:0/1 0 7s Kubernetes with Laravel

Slide 12

Slide 12 text

NAME READY STATUS RESTARTS AGE app-7764bd5f8d-k2k55 1/1 Running 0 27s app-7764bd5f8d-39dd7 1/1 Running 0 3s Kubernetes with Laravel

Slide 13

Slide 13 text

NAME READY STATUS RESTARTS AGE app-7764bd5f8d-gl84s 1/1 Running 0 3d app-59b6f55476-nx65z 0/1 CrashLoopBackOff 4 35s Kubernetes with Laravel

Slide 14

Slide 14 text

NAME READY STATUS RESTARTS AGE cron-594f6cfd8b-5j46r 0/1 ContainerCreating 0 1s app-7764bd5f8d-gl84s 1/1 Running 0 2d app-7764bd5f8d-j234j 1/1 Running 0 2d Kubernetes with Laravel

Slide 15

Slide 15 text

NAME READY STATUS RESTARTS AGE cron-594f6cfd8b-5j46r 0/1 Completed 0 12s app-7764bd5f8d-gl84s 1/1 Running 0 2d app-7764bd5f8d-j234j 1/1 Running 0 2d Kubernetes with Laravel

Slide 16

Slide 16 text

Laravel with Kubernetes Kubernetes with Laravel

Slide 17

Slide 17 text

Storage • Database • Storage • Logging • Excep3on Logging • Sessions • Queues Kubernetes with Laravel

Slide 18

Slide 18 text

Database // .env DB_CONNECTION=mysql DB_HOST=prod.hbwehrkblh.eu-central-1.rds.amazonaws.com DB_PORT=3306 DB_DATABASE=app DB_USERNAME=app DB_PASSWORD=123KDjh1233DH*(gh2{34jk]h23\h4) Kubernetes with Laravel

Slide 19

Slide 19 text

Storage // config/filesystems.php 'disks' => [ 's3' => [ 'driver' => 's3', 'key' => env('AWS_ACCESS_KEY_ID'), 'secret' => env('AWS_SECRET_ACCESS_KEY'), 'region' => env('AWS_DEFAULT_REGION'), 'bucket' => env('AWS_BUCKET'), 'url' => env('AWS_URL'), ], ], Kubernetes with Laravel

Slide 20

Slide 20 text

Logging // config/logging.php 'channnels' => [ 'papertrail' => [ 'driver' => 'monolog', 'level' => 'debug', 'handler' => SyslogUdpHandler::class, 'handler_with' => [ 'host' => env('PAPERTRAIL_URL'), 'port' => env('PAPERTRAIL_PORT'), ], ], ], Kubernetes with Laravel

Slide 21

Slide 21 text

// config/logging.php 'channels' => [ 'stderr' => [ 'driver' => 'monolog', 'handler' => StreamHandler::class, 'formatter' => env('LOG_STDERR_FORMATTER'), 'with' => [ 'stream' => 'php://stderr', ], ], ], Kubernetes with Laravel

Slide 22

Slide 22 text

Excep&on logging // config/logging.php [ 'default' => env('LOG_CHANNEL', 'stack'), 'channels' => [ 'stack' => [ 'driver' => 'stack', 'channels' => ['daily', 'flare'], 'ignore_exceptions' => false, ], ], ] Kubernetes with Laravel

Slide 23

Slide 23 text

Kubernetes with Laravel

Slide 24

Slide 24 text

Excep&on logging // .env SENTRY_LARAVEL_DSN=https://[email protected]/8499832 Kubernetes with Laravel

Slide 25

Slide 25 text

Kubernetes with Laravel

Slide 26

Slide 26 text

Sessions // .env SESSION_DRIVER=database SESSION_LIFETIME=120 Kubernetes with Laravel

Slide 27

Slide 27 text

Queues QUEUE_CONNECTION=sync REDIS_HOST=redis REDIS_PASSWORD=null REDIS_PORT=6379 Kubernetes with Laravel

Slide 28

Slide 28 text

Queues QUEUE_CONNECTION=sync REDIS_HOST=redis REDIS_PASSWORD=null REDIS_PORT=6379 Kubernetes with Laravel

Slide 29

Slide 29 text

Kubernetes with Laravel

Slide 30

Slide 30 text

Golden rules • Persistent storage is always external • Container monitoring • Keep containers small Kubernetes with Laravel

Slide 31

Slide 31 text

Kubernetes vs Laravel Vapor Kubernetes with Laravel

Slide 32

Slide 32 text

Kubernetes with Laravel

Slide 33

Slide 33 text

Kubernetes with Laravel

Slide 34

Slide 34 text

h"p:/ /bit.ly/laravel-giveaway Kubernetes with Laravel

Slide 35

Slide 35 text

Kubernetes with Laravel - Any ques*ons? - Kubernetes with Laravel