Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Kubernetes with Laravel

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.

Kubernetes with Laravel

Avatar for Bobby Bouwmann

Bobby Bouwmann

December 11, 2019
Tweet

More Decks by Bobby Bouwmann

Other Decks in Programming

Transcript

  1. Agenda • What is kubernetes • Laravel with Kubernetes •

    Kubernetes vs Larvel Vapor Kubernetes with Laravel
  2. What is kubernetes? • Orchestra*on pla0orm for containers • Is

    compatable with Docker • Manages deployments and scaling Kubernetes with Laravel
  3. 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
  4. NAME READY STATUS RESTARTS AGE app-594f6cfd8b-gl84s 1/1 Running 0 3d

    app-594f6cfd8b-8623b 1/1 Running 0 3d Kubernetes with Laravel
  5. 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
  6. 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
  7. NAME READY STATUS RESTARTS AGE app-7764bd5f8d-k2k55 1/1 Running 0 27s

    app-7764bd5f8d-39dd7 1/1 Running 0 3s Kubernetes with Laravel
  8. NAME READY STATUS RESTARTS AGE app-7764bd5f8d-gl84s 1/1 Running 0 3d

    app-59b6f55476-nx65z 0/1 CrashLoopBackOff 4 35s Kubernetes with Laravel
  9. 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
  10. 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
  11. Storage • Database • Storage • Logging • Excep3on Logging

    • Sessions • Queues Kubernetes with Laravel
  12. 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
  13. 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
  14. // config/logging.php 'channels' => [ 'stderr' => [ 'driver' =>

    'monolog', 'handler' => StreamHandler::class, 'formatter' => env('LOG_STDERR_FORMATTER'), 'with' => [ 'stream' => 'php://stderr', ], ], ], Kubernetes with Laravel
  15. Excep&on logging // config/logging.php [ 'default' => env('LOG_CHANNEL', 'stack'), 'channels'

    => [ 'stack' => [ 'driver' => 'stack', 'channels' => ['daily', 'flare'], 'ignore_exceptions' => false, ], ], ] Kubernetes with Laravel
  16. Golden rules • Persistent storage is always external • Container

    monitoring • Keep containers small Kubernetes with Laravel