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

Kubernetes with Laravel

Kubernetes with Laravel

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