เป„เบŸเบฅเปŒเบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เป€เบกเบทเปˆเบญเบเป‰เบฒเบเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เป„เบ› Kubernetes

เป„เบŸเบฅเปŒเบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เป€เบกเบทเปˆเบญเบเป‰เบฒเบเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เป„เบ› Kubernetes

เป€เบกเบทเปˆเบญเบชเป‰เบฒเบ‡เบ‚เบฐเบšเบงเบ™เบเบฒเบ™ CI / CD เป‚เบ”เบเปƒเบŠเป‰ Kubernetes, เบšเบฒเบ‡เบ„เบฑเป‰เบ‡เบšเบฑเบ™เบซเบฒเป€เบเบตเบ”เบ‚เบทเป‰เบ™เบ‚เบญเบ‡เบ„เบงเบฒเบกเบšเปเปˆเบชเบญเบ”เบ„เปˆเบญเบ‡เบฅเบฐเบซเบงเปˆเบฒเบ‡เบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เบ‚เบญเบ‡เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบžเบทเป‰เบ™เบ–เบฒเบ™เปƒเบซเบกเปˆเปเบฅเบฐเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ—เบตเปˆเบ–เบทเบเป‚เบญเบ™เป„เบ›เบซเบฒเบกเบฑเบ™. เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐ, เปƒเบ™เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบเบฒเบ™เบชเป‰เบฒเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบกเบฑเบ™เป€เบ›เบฑเบ™เบชเบดเปˆเบ‡เบชเปเบฒเบ„เบฑเบ™เบ—เบตเปˆเบˆเบฐเป„เบ”เป‰เบฎเบฑเบš ะพะดะธะฝ เบฎเบนเบšโ€‹เบžเบฒเบšโ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เปƒเบ™โ€‹ ะฒัะตั… เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบ‚เบญเบ‡เป‚เบ„เบ‡เบเบฒเบ™ เปเบฅเบฐเบเบธเปˆเบก. เบซเบผเบฑเบเบเบฒเบ™เบ™เบตเป‰เป€เบ™เบฑเป‰เบ™เปƒเบชเปˆเบ„เบงเบฒเบกเบ–เบทเบเบ•เป‰เบญเบ‡ เบญเบตเบ‡เบ•เบฒเบก Google เบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™เบ•เบนเป‰เบ„เบญเบ™เป€เบ—เบ™เป€เบ™เบต (เบซเบผเบฒเบเบเบงเปˆเบฒเบซเบ™เบถเปˆเบ‡เบ„เบฑเป‰เบ‡เบเปˆเบฝเบงเบเบฑเบšเป€เบฅเบทเปˆเบญเบ‡เบ™เบตเป‰ เป€เบงเบปเป‰เบฒ เปเบฅเบฐเบžเบฐเปเบ™เบเบงเบดเบŠเบฒเบเบฒเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ).

เบขเปˆเบฒเบ‡เปƒเบ”เบเปเปˆเบ•เบฒเบก, เบ—เปˆเบฒเบ™เบˆเบฐเบšเปเปˆเป€เบซเบฑเบ™เปƒเบœเบขเบนเปˆเปƒเบ™เบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบ—เบตเปˆเบฅเบฐเบซเบฑเบ”เบ‚เบญเบ‡เป€เบงเบฑเบšเป„เบŠเบ—เปŒเปƒเบŠเป‰เบเบญเบšเบ—เบตเปˆเบเบฝเบกเบžเป‰เบญเบก, เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เบ‚เปเป‰เบˆเปเบฒเบเบฑเบ”เปƒเบ™เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ•เปเปˆเป„เบ›. เปเบฅเบฐเปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบขเบนเปˆเปƒเบ™ "เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบ›เบปเบเบเบฐเบ•เบด" เบ™เบตเป‰เปเบกเปˆเบ™เบ‡เปˆเบฒเบเบ—เบตเปˆเบˆเบฐเบˆเบฑเบ”เบเบฒเบ™เบเบฑเบš, เปƒเบ™ Kubernetes เบžเบถเบ”เบ•เบดเบเปเบฒเบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบเบฒเบเป€เบ›เบฑเบ™เบšเบฑเบ™เบซเบฒ, เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ—เปˆเบฒเบ™เบžเบปเบšเบกเบฑเบ™เบ„เบฑเป‰เบ‡เบ—เปเบฒเบญเบดเบ”. เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบ„เบงเบฒเบกเบ„เบดเบ”เบ›เบฐเบ”เบดเบ”เบชเป‰เบฒเบ‡เบชเบฒเบกเบฒเบ”เบกเบฒเป€เบ–เบดเบ‡เบเบฒเบ™เปเบเป‰เป„เบ‚เบžเบทเป‰เบ™เบ–เบฒเบ™เป‚เบ„เบ‡เบฅเปˆเบฒเบ‡เบ—เบตเปˆเป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเบˆเบฐเปเบˆเป‰เบ‡เบซเบผเบทเปเบกเป‰เบเบฐเบ—เบฑเป‰เบ‡เบ—เบตเปˆเบ”เบตเบขเบนเปˆ glance เบ—เปเบฒเบญเบดเบ” ... เบกเบฑเบ™เป€เบ›เบฑเบ™เบชเบดเปˆเบ‡เบชเปเบฒเบ„เบฑเบ™เบ—เบตเปˆเบˆเบฐเบˆเบทเปˆเบˆเปเบฒเบงเปˆเบฒเบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบชเปˆเบงเบ™เปƒเบซเบเปˆเบชเบฒเบกเบฒเบ”เปเบฅเบฐเบ„เบงเบ™. เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เปเบเป‰เป„เบ‚เบ”เป‰เบงเบเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐ.

เบ‚เปเปƒเบซเป‰เป€เบšเบดเปˆเบ‡เบงเบดเบ—เบตเบเบฒเบ™เปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบ—เบตเปˆเบ™เบดเบเบปเบกเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเป„เบŸเบฅเปŒเบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ™เปเบฒเป„เบ›เบชเบนเปˆเบœเบปเบ™เบชเบฐเบ—เป‰เบญเบ™เบ—เบตเปˆเบšเปเปˆเบซเบ™เป‰เบฒเบžเปเปƒเบˆเปƒเบ™เป€เบงเบฅเบฒเบ›เบฐเบ•เบดเบšเบฑเบ”เบ‡เบฒเบ™เบเบธเปˆเบก, เปเบฅเบฐเบเบฑเบ‡เบŠเบตเป‰เปƒเบซเป‰เป€เบซเบฑเบ™เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบเบงเปˆเบฒ.

เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ„เบปเบ‡เบ—เบตเปˆ

เป€เบžเบทเปˆเบญเบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™, เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเป€เบงเบฑเบšเป„เบŠเบ•เปŒเบ—เบตเปˆเปƒเบŠเป‰เบšเบฒเบ‡เบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เบเปเบฒเป€เบ™เบตเบ” static เป€เบžเบทเปˆเบญเปƒเบซเป‰เป„เบ”เป‰เบฎเบฑเบšเบŠเบธเบ”เบ‚เบญเบ‡เบฎเบนเบšเบžเบฒเบš, เบฎเบนเบšเปเบšเบš, เปเบฅเบฐเบชเบดเปˆเบ‡เบญเบทเปˆเบ™เป†. เบ•เบปเบงเบขเปˆเบฒเบ‡, Yii PHP framework เบกเบตเบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™เบŠเบฑเบšเบชเบดเบ™เบ—เบตเปˆเบชเป‰เบฒเบ‡เบŠเบทเปˆเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ—เบตเปˆเป€เบ›เบฑเบ™เป€เบญเบเบฐเบฅเบฑเบ. เบ•เบฒเบกเบ™เบฑเป‰เบ™เปเบฅเป‰เบง, เบœเบปเบ™เบœเบฐเบฅเบดเบ”เปเบกเปˆเบ™เบŠเบธเบ”เบ‚เบญเบ‡เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบชเปเบฒเบฅเบฑเบšเบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบ„เบปเบ‡เบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™เบšเปเปˆเบ•เบฑเบ”เบเบฑเบ™ (เบ™เบตเป‰เปเบกเปˆเบ™เป€เบฎเบฑเบ”เบ”เป‰เบงเบเป€เบซเบ”เบœเบปเบ™เบซเบผเบฒเบเบขเปˆเบฒเบ‡ - เบ•เบปเบงเบขเปˆเบฒเบ‡, เป€เบžเบทเปˆเบญเบฅเบปเบšเบฅเป‰เบฒเบ‡เบเบฒเบ™เบŠเป‰เปเบฒเบเบฑเบ™เป€เบกเบทเปˆเบญเบซเบผเบฒเบเบญเบปเบ‡เบ›เบฐเบเบญเบšเปƒเบŠเป‰เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบ”เบฝเบงเบเบฑเบ™). เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบญเบญเบเบˆเบฒเบเบเปˆเบญเบ‡, เบ„เบฑเป‰เบ‡เบ—เปเบฒเบญเบดเบ”เบ—เบตเปˆเบ—เปˆเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เป‚เบกเบ”เบนเบ™เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เป€เบงเบฑเบšเป„เบŠเบ•เปŒ, เป„เบŸเบฅเปŒเบ„เบปเบ‡เบ—เบตเปˆ (เปƒเบ™เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เบˆเบดเบ‡, เบกเบฑเบเบˆเบฐเป€เบ›เบฑเบ™ symlinks, เปเบ•เปˆเบซเบผเบฒเบเบเบงเปˆเบฒเบ™เบฑเป‰เบ™เบ•เปเปˆเบกเบฒ) เบ–เบทเบเบชเป‰เบฒเบ‡เบ•เบฑเป‰เบ‡เบ‚เบถเป‰เบ™เปเบฅเบฐเบงเบฒเบ‡เบญเบญเบเบ”เป‰เบงเบเบฅเบฐเบšเบปเบšเบฎเบฒเบเบ—เบปเปˆเบงเป„เบ›เบ—เบตเปˆเป€เบ›เบฑเบ™เป€เบญเบเบฐเบฅเบฑเบเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ™เบตเป‰:

  • webroot/assets/2072c2df/css/โ€ฆ
  • webroot/assets/2072c2df/images/โ€ฆ
  • webroot/assets/2072c2df/js/โ€ฆ

เบ™เบตเป‰เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเปเบ™เบงเปƒเบ”เปƒเบ™เปเบ‡เปˆเบ‚เบญเบ‡เบเบธเปˆเบก?

เบ•เบปเบงเบขเปˆเบฒเบ‡เบ—เบตเปˆเบ‡เปˆเบฒเบเบ”เบฒเบเบ—เบตเปˆเบชเบธเบ”

เปƒเบซเป‰เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบเปเบฅเบฐเบ™เบตเบ—เบตเปˆเบžเบปเบšเป€เบฅเบทเป‰เบญเบ, เป€เบกเบทเปˆเบญ PHP เบ–เบทเบเบ™เปเบฒเบซเบ™เป‰เบฒเป‚เบ”เบ nginx เป€เบžเบทเปˆเบญเปเบˆเบเบขเบฒเบเบ‚เปเป‰เบกเบนเบ™เบชเบฐเบ–เบดเบ”เปเบฅเบฐเบ”เปเบฒเป€เบ™เบตเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเบ‡เปˆเบฒเบเบ”เบฒเบ. เบงเบดโ€‹เบ—เบตโ€‹เบ—เบตเปˆโ€‹เบ‡เปˆเบฒเบโ€‹เบ—เบตเปˆโ€‹เบชเบธเบ” - เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” เบกเบตเบชเบญเบ‡เบ–เบฑเบ‡:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: site
spec:
  selector:
    matchLabels:
      component: backend
  template:
    metadata:
      labels:
        component: backend
    spec:
      volumes:
        - name: nginx-config
          configMap:
            name: nginx-configmap
      containers:
      - name: php
        image: own-image-with-php-backend:v1.0
        command: ["/usr/local/sbin/php-fpm","-F"]
        workingDir: /var/www
      - name: nginx
        image: nginx:1.16.0
        command: ["/usr/sbin/nginx", "-g", "daemon off;"]
        volumeMounts:
        - name: nginx-config
          mountPath: /etc/nginx/conf.d/default.conf
          subPath: nginx.conf

เปƒเบ™เบฎเบนเบšเปเบšเบšเบ—เบตเปˆเบ‡เปˆเบฒเบเบ”เบฒเบ, config nginx เบ•เบปเป‰เบกเบฅเบปเบ‡เป„เบ›เบ”เบฑเปˆเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰:

apiVersion: v1
kind: ConfigMap
metadata:
  name: "nginx-configmap"
data:
  nginx.conf: |
    server {
        listen 80;
        server_name _;
        charset utf-8;
        root  /var/www;

        access_log /dev/stdout;
        error_log /dev/stderr;

        location / {
            index index.php;
            try_files $uri $uri/ /index.php?$args;
        }

        location ~ .php$ {
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index index.php;
            include fastcgi_params;
        }
    }

เป€เบกเบทเปˆเบญเบ—เปˆเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เป€เบงเบฑเบšเป„เบŠเบ—เปŒเบ—เปเบฒเบญเบดเบ”, เบŠเบฑเบšเบชเบดเบ™เบˆเบฐเบ›เบฒเบเบปเบ”เบขเบนเปˆเปƒเบ™เบ–เบฑเบ‡ PHP. เปเบ•เปˆเปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบชเบญเบ‡เบ–เบฑเบ‡เบžเบฒเบเปƒเบ™เบซเบ™เบถเปˆเบ‡เบเบฑเบ, nginx เบšเปเปˆเบฎเบนเป‰เบซเบเบฑเบ‡เบเปˆเบฝเบงเบเบฑเบšเป„เบŸเบฅเปŒเบ„เบปเบ‡เบ—เบตเปˆเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰, เป€เบŠเบดเปˆเบ‡ (เบญเบตเบ‡เบ•เบฒเบกเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ) เบ„เบงเบ™เบ–เบทเบเบกเบญเบšเปƒเบซเป‰เบžเบงเบเป€เบ‚เบปเบฒ. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบฅเบนเบเบ„เป‰เบฒเบˆเบฐเป€เบซเบฑเบ™เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ” 404 เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบ—เบฑเบ‡เบซเบกเบปเบ”เบเบฑเบšเป„เบŸเบฅเปŒ CSS เปเบฅเบฐ JS. เบเบฒเบ™เปเบเป‰เป„เบ‚เบ—เบตเปˆเบ‡เปˆเบฒเบเบ”เบฒเบเบ—เบตเปˆเบชเบธเบ”เบขเบนเปˆเบ—เบตเปˆเบ™เบตเป‰เปเบกเปˆเบ™เบเบฒเบ™เบˆเบฑเบ”เบฅเบฐเบšเบฝเบšเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ—เบปเปˆเบงเป„เบ›เบชเปเบฒเบฅเบฑเบšเบšเบฑเบ™เบˆเบธ. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™ - เบ—เบปเปˆเบงเป„เบ› emptyDir:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: site
spec:
  selector:
    matchLabels:
      component: backend
  template:
    metadata:
      labels:
        component: backend
    spec:
      volumes:
        - name: assets
          emptyDir: {}
        - name: nginx-config
          configMap:
            name: nginx-configmap
      containers:
      - name: php
        image: own-image-with-php-backend:v1.0
        command: ["/usr/local/sbin/php-fpm","-F"]
        workingDir: /var/www
        volumeMounts:
        - name: assets
          mountPath: /var/www/assets
      - name: nginx
        image: nginx:1.16.0
        command: ["/usr/sbin/nginx", "-g", "daemon off;"]
        volumeMounts:
        - name: assets
          mountPath: /var/www/assets
        - name: nginx-config
          mountPath: /etc/nginx/conf.d/default.conf
          subPath: nginx.conf

เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เป„เบŸเบฅเปŒเบ„เบปเบ‡เบ—เบตเปˆเบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เปƒเบ™เบšเบฑเบ™เบˆเบธเปเบกเปˆเบ™เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™เป‚เบ”เบ nginx เบขเปˆเบฒเบ‡เบ–เบทเบเบ•เป‰เบญเบ‡. เปเบ•เปˆเปƒเบซเป‰เบ‚เป‰เบญเบเป€เบ•เบทเบญเบ™เป€เบˆเบปเป‰เบฒเบงเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบเบฒเบ™เปเบเป‰เป„เบ‚เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™, เบŠเบถเปˆเบ‡เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบกเบฑเบ™เบขเบนเปˆเป„เบเบˆเบฒเบเบ„เบงเบฒเบกเป€เบซเบกเบฒเบฐเบชเบปเบกเปเบฅเบฐเบกเบต nuances เปเบฅเบฐเบ‚เปเป‰เบšเบปเบเบœเปˆเบญเบ‡เบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡, เป€เบŠเบดเปˆเบ‡เป„เบ”เป‰เบชเบปเบ™เบ—เบฐเบ™เบฒเบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰.

เบšเปˆเบญเบ™เบˆเบฑเบ”เป€เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบ‚เบฑเป‰เบ™เบชเบนเบ‡

เบ•เบญเบ™เบ™เบตเป‰เบˆเบดเบ™เบ•เบฐเบ™เบฒเบเบฒเบ™เบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบ—เบตเปˆเบœเบนเป‰เปƒเบŠเป‰เป„เบ”เป‰เป„เบ›เบขเป‰เบฝเบกเบขเบฒเบกเป€เบงเบฑเบšเป„เบŠเบ—เปŒ, เป‚เบซเบฅเบ”เบซเบ™เป‰เบฒเบ—เบตเปˆเบกเบตเบฎเบนเบšเปเบšเบšเบ—เบตเปˆเบกเบตเบขเบนเปˆเปƒเบ™เบ–เบฑเบ‡, เปเบฅเบฐเปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบฅเบฒเบงเบเปเบฒเบฅเบฑเบ‡เบญเปˆเบฒเบ™เบซเบ™เป‰เบฒเบ™เบตเป‰, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบ™เปเบฒเปƒเบŠเป‰เบเปˆเบญเบ‡เบšเบฑเบ™เบˆเบธเปƒเบซเบกเปˆ. เบฅเบฒเบเบเบฒเบ™เบŠเบฑเบšเบชเบดเบ™เป„เบ”เป‰เบเบฒเบเป€เบ›เบฑเบ™เบซเบงเปˆเบฒเบ‡เป€เบ›เบปเปˆเบฒเปเบฅเบฐเบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเป„เบ›เบซเบฒ PHP เปเบกเปˆเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เป€เบžเบทเปˆเบญเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบเบฒเบ™เบชเป‰เบฒเบ‡เบญเบฑเบ™เปƒเบซเบกเปˆ. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบš statics เป€เบเบปเปˆเบฒเบˆเบฐเบšเปเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡, เป€เบŠเบดเปˆเบ‡เบˆเบฐเบ™เปเบฒเป„เบ›เบชเบนเปˆเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เปƒเบ™เบเบฒเบ™เบชเบฐเปเบ”เบ‡ statics.

เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบžเบงเบเป€เบฎเบปเบฒเบกเบตเป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเป‚เบซเบฅเบ”เบซเบผเบฒเบเบซเบผเบทเบซเบ™เป‰เบญเบ, เบŠเบถเปˆเบ‡เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบซเบ™เบถเปˆเบ‡เบชเปเบฒเป€เบ™เบปเบฒเบ‚เบญเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบˆเบฐเบšเปเปˆเบžเบฝเบ‡เบžเป:

  • เปƒเบซเป‰เบ‚เบฐเบซเบเบฒเบเบกเบฑเบ™เบ‚เบถเป‰เบ™ เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” เป€เบ–เบดเบ‡เบชเบญเบ‡เปเบšเบšเบˆเปเบฒเบฅเบญเบ‡.
  • เป€เบกเบทเปˆเบญเป€เบงเบฑเบšเป„เบŠเบ—เปŒเป„เบ”เป‰เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบ„เบฑเป‰เบ‡เบ—เปเบฒเบญเบดเบ”, เบŠเบฑเบšเบชเบดเบ™เป„เบ”เป‰เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™เปƒเบ™เบซเบ™เบถเปˆเบ‡ replica.
  • เปƒเบ™เบšเบฒเบ‡เบˆเบธเบ”, ingress เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆ (เบชเปเบฒเบฅเบฑเบšเบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เบเบฒเบ™เบ”เบธเปˆเบ™เบ”เปˆเบฝเบ‡เบเบฒเบ™เป‚เบซเบผเบ”) เป€เบžเบทเปˆเบญเบชเบปเปˆเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเปƒเบซเป‰ replica เบ—เบตเบชเบญเบ‡, เปเบฅเบฐเบŠเบฑเบšเบชเบดเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบเบฑเบ‡เบšเปเปˆเบ—เบฑเบ™เบกเบต. เบซเบผเบทเบšเบฒเบ‡เบ—เบตเบžเบงเบเป€เบ‚เบปเบฒเบšเปเปˆเบกเบตเบ•เปเปˆเป„เบ›เบญเบตเบเปเบฅเป‰เบงเป€เบžเบฒเบฐเบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเปƒเบŠเป‰ RollingUpdate เปเบฅเบฐโ€‹เปƒเบ™โ€‹เบ›เบฑเบ”โ€‹เบˆเบธโ€‹เบšเบฑเบ™โ€‹เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เบเปเบฒโ€‹เบฅเบฑเบ‡โ€‹เบ”เปเบฒโ€‹เป€เบ™เบตเบ™โ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹.

เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›, เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเปเบกเปˆเบ™เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบญเบตเบเป€เบ—เบทเปˆเบญเบซเบ™เบถเปˆเบ‡.

เป€เบžเบทเปˆเบญเบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบเบฒเบ™เบชเบนเบ™เป€เบชเบเบŠเบฑเบšเบชเบดเบ™เป€เบเบปเปˆเบฒ, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ›เปˆเบฝเบ™เปเบ›เบ‡เป„เบ”เป‰ emptyDir เบชเบธเบ” hostPath, เบเบฒเบ™เป€เบžเบตเปˆเบก static เบ—เบฒเบ‡เบ”เป‰เบฒเบ™เบฎเปˆเบฒเบ‡เบเบฒเบเปƒเบซเป‰เบเบฑเบš node cluster. เบงเบดเบ—เบตเบเบฒเบ™เบ™เบตเป‰เปเบกเปˆเบ™เบšเปเปˆเบ”เบตเป€เบžเบฒเบฐเบงเปˆเบฒเบ•เบปเบงเบˆเบดเบ‡เปเบฅเป‰เบงเบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡ เบœเบนเบเบกเบฑเบ”เบเบฑเบš node เบเบธเปˆเบกเบชเบฐเป€เบžเบฒเบฐ เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ‚เบญเบ‡เบ—เปˆเบฒเบ™, เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒ - เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบเบฒเบ™เบเป‰เบฒเบเป„เบ› nodes เบญเบทเปˆเบ™เป† - เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบˆเบฐเบšเปเปˆเบกเบตเป„เบŸเบฅเปŒเบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™. เบซเบผเบทเบšเบฒเบ‡เบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบเบฒเบ™ synchronization เบ›เบฐเบซเบงเบฑเบ”เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เบกเบฒเบฅเบฐเบซเบงเปˆเบฒเบ‡ nodes เปเบกเปˆเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™.

เบงเบดเบ—เบตเปเบเป‰เป„เบ‚เปเบกเปˆเบ™เบซเบเบฑเบ‡?

  1. เบ–เป‰เบฒเบฎเบฒเบ”เปเบงเปเบฅเบฐเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰ cephfs เป€เบžเบทเปˆเบญเบˆเบฑเบ”เบฅเบฐเบšเบฝเบšเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ—เบตเปˆเบชเบฒเบกเบฒเบ”เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เป„เบ”เป‰เป€เบ—เบปเปˆเบฒเบ—เบฝเบกเบเบฑเบ™เบชเปเบฒเบฅเบฑเบšเบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เบ„เบปเบ‡เบ—เบตเปˆ. เป€เบญเบเบฐเบชเบฒเบ™เบ—เบฒเบ‡เบเบฒเบ™ เปเบ™เบฐเบ™เปเบฒเปƒเบซเป‰ SSD drives, เบขเปˆเบฒเบ‡เบซเบ™เป‰เบญเบเบเบฒเบ™เบˆเปเบฒเบฅเบญเบ‡เบชเบฒเบกเป€เบ—เบปเปˆเบฒเปเบฅเบฐเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ "เบซเบ™เบฒ" เบ—เบตเปˆเบซเบกเบฑเป‰เบ™เบ„เบปเบ‡เบฅเบฐเบซเบงเปˆเบฒเบ‡ nodes cluster.
  2. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เบซเบ™เป‰เบญเบเปเบกเปˆเบ™เบเบฒเบ™เบˆเบฑเบ”เบฅเบฐเบšเบฝเบšเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ NFS. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป„เบ”เป‰เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบเบฒเบ™เป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™เบ—เบตเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ‚เบญเบ‡เป€เบงเบฅเบฒเบ•เบญเบšเบชเบฐเบซเบ™เบญเบ‡เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเป‚เบ”เบเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเป€เบงเบฑเบšเป„เบŠเบ•เปŒ, เปเบฅเบฐเบ„เบงเบฒเบกเบ—เบปเบ™เบ—เบฒเบ™เบ•เปเปˆเบ„เบงเบฒเบกเบœเบดเบ”เบˆเบฐเบ›เปˆเบญเบเปƒเบซเป‰เบซเบผเบฒเบเบ—เบตเปˆเบˆเบฐเบ•เป‰เบญเบ‡เบเบฒเบ™. เบœเบปเบ™เบชเบฐเบ—เป‰เบญเบ™เบ‚เบญเบ‡เบ„เบงเบฒเบกเบฅเบปเป‰เบกเป€เบซเบผเบงเปเบกเปˆเบ™เป„เบžเบžเบดเบšเบฑเบ”: เบเบฒเบ™เบชเบนเบ™เป€เบชเบเบ‚เบญเบ‡ mount dooms เบเบธเปˆเบกเบเบฒเบ™เป€เบชเบเบŠเบตเบงเบดเบ”เบžเบฒเบเปƒเบ•เป‰เบ„เบงเบฒเบกเบเบปเบ”เบ”เบฑเบ™เบ‚เบญเบ‡เบเบฒเบ™เป‚เบซเบผเบ” LA rushing เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบ—เป‰เบญเบ‡เบŸเป‰เบฒ.

เปƒเบ™เบšเบฑเบ™เบ”เบฒเบชเบดเปˆเบ‡เบญเบทเปˆเบ™เป†, เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบฑเบ‡เบซเบกเบปเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเป‰เบฒเบ‡เบšเปˆเบญเบ™เป€เบเบฑเบšเบกเป‰เบฝเบ™เบ„เบปเบ‡เบˆเบฐเบ•เป‰เบญเบ‡เบเบฒเบ™ เบ—เปเบฒโ€‹เบ„เบงเบฒเบกโ€‹เบชเบฐโ€‹เบญเบฒเบ”โ€‹เบžเบทเป‰เบ™โ€‹เบ–เบฒเบ™โ€‹ เบŠเบธเบ”เป„เบŸเบฅเปŒเบ—เบตเปˆเบฅเป‰เบฒเบชเบฐเป„เบซเบกเบชเบฐเบชเบปเบกเปƒเบ™เป„เบฅเบเบฐเป€เบงเบฅเบฒเบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™. เบขเบนเปˆเบ—เบฒเบ‡เบซเบ™เป‰เบฒเบ‚เบญเบ‡เบšเบฑเบ™เบˆเบธเบ—เบตเปˆเบกเบต PHP เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เปƒเบชเปˆ DaemonSet เบˆเบฒเบ caching nginx, เป€เบŠเบดเปˆเบ‡เบˆเบฐเป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบชเปเบฒเป€เบ™เบปเบฒเบŠเบฑเบšเบชเบดเบ™เปƒเบ™เป„เบฅเบเบฐเป€เบงเบฅเบฒเบˆเปเบฒเบเบฑเบ”. เบžเบถเบ”โ€‹เบ•เบดโ€‹เบเปเบฒโ€‹เบ™เบตเป‰โ€‹เปเบกเปˆเบ™โ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เป„เบ”เป‰โ€‹เบขเปˆเบฒเบ‡โ€‹เบ‡เปˆเบฒเบโ€‹เบ”เบฒเบโ€‹เป‚เบ”เบโ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹ proxy_cache เบ”เป‰เบงเบเบ„เบงเบฒเบกเป€เบฅเบดเบเบ‚เบญเบ‡เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเปƒเบ™เบกเบทเป‰เบซเบผเบท gigabyte เบ‚เบญเบ‡เบžเบทเป‰เบ™เบ—เบตเปˆเบ”เบดเบ”.

เบเบฒเบ™เบฅเบงเบกเป€เบญเบปเบฒเบงเบดเบ—เบตเบเบฒเบ™เบ™เบตเป‰เบเบฑเบšเบฅเบฐเบšเบปเบšเป„เบŸเบฅเปŒเปเบˆเบเบขเบฒเบเบ—เบตเปˆเป„เบ”เป‰เบเปˆเบฒเบงเบกเบฒเบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡เบ™เบตเป‰เบชเบฐเบซเบ™เบญเบ‡เบžเบฒเบเบชเบฐเบซเบ™เบฒเบกเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบˆเบดเบ™เบ•เบฐเบ™เบฒเบเบฒเบ™, เบˆเปเบฒเบเบฑเบ”เบžเบฝเบ‡เปเบ•เปˆเบ‡เบปเบšเบ›เบฐเบกเบฒเบ™เปเบฅเบฐเบ—เปˆเบฒเปเบฎเบ‡เบ”เป‰เบฒเบ™เบงเบดเบŠเบฒเบเบฒเบ™เบ‚เบญเบ‡เบœเบนเป‰เบ—เบตเปˆเบˆเบฐเบ›เบฐเบ•เบดเบšเบฑเบ”เปเบฅเบฐเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบกเบฑเบ™. เบˆเบฒเบเบ›เบฐเบชเบปเบšเบเบฒเบ™, เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เป€เบงเบปเป‰เบฒเป„เบ”เป‰เบงเปˆเบฒเบฅเบฐเบšเบปเบšเบ—เบตเปˆเบ‡เปˆเบฒเบเบ”เบฒเบเบซเบผเบฒเบ, เบกเบฑเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ—เบตเปˆเบซเบกเบฑเป‰เบ™เบ„เบปเบ‡เบซเบผเบฒเบ. เป€เบกเบทเปˆเบญเบŠเบฑเป‰เบ™เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบ–เบทเบเป€เบžเบตเปˆเบก, เบกเบฑเบ™เบˆเบฐเบเบฒเบเป€เบ›เบฑเบ™เบ„เบงเบฒเบกเบซเบเบธเป‰เบ‡เบเบฒเบเบซเบผเบฒเบเปƒเบ™เบเบฒเบ™เบฎเบฑเบเบชเบฒเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบžเบทเป‰เบ™เบ–เบฒเบ™, เปเบฅเบฐเปƒเบ™เป€เบงเบฅเบฒเบ”เบฝเบงเบเบฑเบ™เบ—เบตเปˆเปƒเบŠเป‰เป€เบงเบฅเบฒเปƒเบ™เบเบฒเบ™เบงเบดเบ™เบดเบ”เป„เบชเปเบฅเบฐเบเบฒเบ™เบŸเบทเป‰เบ™เบ•เบปเบงเบˆเบฒเบเบ„เบงเบฒเบกเบฅเบปเป‰เบกเป€เบซเบฅเบงเปƒเบ”เป†เบเปเปˆเป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™.

เบ‚เปเป‰เบชเบฐ เป€เปœเบต เปเบ™เบฐ

เบ–เป‰เบฒเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ—เบตเปˆเบชเบฐเป€เบซเบ™เบตเบเบฑเบ‡เป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเบšเปเปˆเบเบธเบ•เบดเบ—เปเบฒเบเบฑเบšเบ—เปˆเบฒเบ™ (เบชเบฑเบšเบชเบปเบ™, เบฅเบฒเบ„เบฒเปเบžเบ‡ ...), เบกเบฑเบ™เบ„เบงเบ™เบˆเบฐเป€เบšเบดเปˆเบ‡เบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบˆเบฒเบเบญเบตเบเบ”เป‰เบฒเบ™เบซเบ™เบถเปˆเบ‡. เบ„เบท, เบเบฒเบ™เบ‚เบธเบ”เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเป‚เบ„เบ‡เบเบฒเบ™เปเบฅเบฐ เปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเปƒเบ™เบฅเบฐเบซเบฑเบ”, เบœเบนเบเบกเบฑเบ”เบเบฑเบšเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ‚เปเป‰เบกเบนเบ™เบชเบฐเบ–เบดเบ”เบขเบนเปˆเปƒเบ™เบฎเบนเบšเบžเบฒเบš, เบ„เปเบฒเบ™เบดเบเบฒเบกเบ—เบตเปˆเบšเปเปˆเบŠเบฑเบ”เป€เบˆเบ™เบ‚เบญเบ‡เป€เบ™เบทเป‰เบญเปƒเบ™เบซเบผเบทเบ‚เบฑเป‰เบ™เบ•เบญเบ™เบชเปเบฒเบฅเบฑเบš "เบเบฒเบ™เบญเบปเบšเบญเบธเปˆเบ™เบ‚เบถเป‰เบ™" เปเบฅเบฐ / เบซเบผเบท precompiling เบŠเบฑเบšเบชเบดเบ™เปƒเบ™เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบเบฒเบ™เบ›เบฐเบเบญเบšเบฎเบนเบšเบžเบฒเบš. เบงเบดเบ—เบตเบ™เบตเป‰เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบฎเบฑเบšเบžเบถเบ”เบ•เบดเบเปเบฒเบ—เบตเปˆเบ„เบฒเบ”เป€เบ”เบปเบฒเป„เบ”เป‰เบขเปˆเบฒเบ‡เปเบ—เป‰เบˆเบดเบ‡เปเบฅเบฐเบŠเบธเบ”เป„เบŸเบฅเปŒเบ”เบฝเบงเบเบฑเบ™เบชเปเบฒเบฅเบฑเบšเบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบ—เบฑเบ‡เบซเบกเบปเบ”เปเบฅเบฐเบเบฒเบ™เบˆเปเบฒเบฅเบญเบ‡เบ‚เบญเบ‡เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบ.

เบ–เป‰เบฒเบžเบงเบเป€เบฎเบปเบฒเบเบฑเบšเบ„เบทเบ™เป„เบ›เบซเบฒเบ•เบปเบงเบขเปˆเบฒเบ‡เบชเบฐเป€เบžเบฒเบฐเบเบฑเบšเบเบญเบš Yii เปเบฅเบฐเบšเปเปˆเป€เบ‚เบปเป‰เบฒเปƒเบˆเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ‚เบญเบ‡เบกเบฑเบ™ (เป€เบŠเบดเปˆเบ‡เบšเปเปˆเปเบกเปˆเบ™เบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เบ‚เบญเบ‡เบšเบปเบ”เบ„เบงเบฒเบก), เบกเบฑเบ™เบžเบฝเบ‡เบžเปเบ—เบตเปˆเบˆเบฐเบŠเบตเป‰เปƒเบซเป‰เป€เบซเบฑเบ™เบชเบญเบ‡เบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเบ™เบดเบเบปเบก:

  1. เบ›เปˆเบฝเบ™เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบชเป‰เบฒเบ‡เบฎเบนเบšเบžเบฒเบšเป€เบžเบทเปˆเบญเบงเบฒเบ‡เบŠเบฑเบšเบชเบดเบ™เปƒเบ™เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบ—เบตเปˆเบ„เบฒเบ”เป€เบ”เบปเบฒเป„เบ”เป‰. เบ™เบตเป‰เปเบกเปˆเบ™เปเบ™เบฐเบ™เปเบฒ / เบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™เบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบเป€เบŠเบฑเปˆเบ™ yii2-static-เบŠเบฑเบšเบชเบดเบ™.
  2. เบเปเบฒเบ™เบปเบ” hashes เบชเบฐเป€เบžเบฒเบฐเบชเปเบฒเบฅเบฑเบšเบฅเบฒเบเบเบฒเบ™เบŠเบฑเบšเบชเบดเบ™, เบ”เบฑเปˆเบ‡เบ—เบตเปˆเป„เบ”เป‰เบชเบปเบ™เบ—เบฐเบ™เบฒเปƒเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡เป€เบŠเบฑเปˆเบ™. เบเบฒเบ™เบ™เปเบฒเบชเบฐเป€เบซเบ™เบตเบ™เบตเป‰ (เป€เบฅเบตเปˆเบกเบˆเบฒเบเบชเบฐเป„เบฅเป‰เบ—เบต 35). เป‚เบ”เบเบงเบดเบ—เบตเบ—เบฒเบ‡เบเบฒเบ™, เบœเบนเป‰เบ‚เบฝเบ™เบšเบปเบ”เบฅเบฒเบเบ‡เบฒเบ™เปƒเบ™เบ—เบตเปˆเบชเบธเบ” (เปเบฅเบฐเบšเปเปˆเปเบกเปˆเบ™เบšเปเปˆเบกเบตเป€เบซเบ”เบœเบปเบ™!) เปเบ™เบฐเบ™เปเบฒเบงเปˆเบฒเบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบ›เบฐเบเบญเบšเบŠเบฑเบšเบชเบดเบ™เปƒเบ™เป€เบŠเบตเบŸเป€เบงเบตเบเปเปˆเบชเป‰เบฒเบ‡, เบญเบฑเบšเป‚เบซเบผเบ”เบžเบงเบเบกเบฑเบ™เปƒเบชเปˆเบšเปˆเบญเบ™เป€เบเบฑเบšเบกเป‰เบฝเบ™เบเบฒเบ‡ (เป€เบŠเบฑเปˆเบ™ S3), เบขเบนเปˆเบ—เบฒเบ‡เบซเบ™เป‰เบฒเบ‚เบญเบ‡เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆ CDN.

เบ”เบฒเบงเป‚เบซเบผเบ”

เบญเบตเบเบเปเบฅเบฐเบ™เบตเบ—เบตเปˆเบˆเบฐเป€เบ‚เบปเป‰เบฒเบกเบฒเบซเบผเบดเป‰เบ™เบขเปˆเบฒเบ‡เปเบ™เปˆเบ™เบญเบ™เป€เบกเบทเปˆเบญเบเป‰เบฒเบเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เป„เบ›เบซเบฒเบเบธเปˆเบก Kubernetes เปเบกเปˆเบ™เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเป„เบŸเบฅเปŒเบœเบนเป‰เปƒเบŠเป‰เบขเบนเปˆเปƒเบ™เบฅเบฐเบšเบปเบšเป„เบŸเบฅเปŒ. เบ•เบปเบงเบขเปˆเบฒเบ‡, เบžเบงเบเป€เบฎเบปเบฒเบกเบตเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ PHP เบญเบตเบเป€เบ—เบทเปˆเบญเบซเบ™เบถเปˆเบ‡เบ—เบตเปˆเบเบญเบกเบฎเบฑเบšเป„เบŸเบฅเปŒเบœเปˆเบฒเบ™เปเบšเบšเบŸเบญเบกเบญเบฑเบšเป‚เบซเบฅเบ”, เป€เบฎเบฑเบ”เบšเบฒเบ‡เบชเบดเปˆเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡เบเบฑเบšเบžเบงเบเป€เบ‚เบปเบฒเปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‡เบฒเบ™, เปเบฅเบฐเบชเบปเปˆเบ‡เบ„เบทเบ™.

เปƒเบ™ Kubernetes, เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบšเปˆเบญเบ™เบ—เบตเปˆเป„เบŸเบฅเปŒเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ„เบงเบ™เบˆเบฐเบ–เบทเบเบงเบฒเบ‡เป„เบงเป‰เบ„เบงเบ™เบˆเบฐเป€เบ›เบฑเบ™เบ—เบปเปˆเบงเป„เบ›เบเบฑเบšเบ—เบธเบเบ•เบปเบงเปเบšเบšเบ‚เบญเบ‡เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™. เบญเบตเบ‡เบ•เบฒเบกเบ„เบงเบฒเบกเบชเบฑเบšเบชเบปเบ™เบ‚เบญเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเปเบฅเบฐเบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เปƒเบ™เบเบฒเบ™เบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบเบฒเบ™เบ„เบปเบ‡เบ•เบปเบงเบ‚เบญเบ‡เป„เบŸเบฅเปŒเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰, เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบญเบธเบ›เบฐเบเบญเบ™เบ—เบตเปˆเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™เบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡เบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบ”เบฑเปˆเบ‡เบเปˆเบฒเบง, เปเบ•เปˆ, เบ”เบฑเปˆเบ‡เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเป€เบซเบฑเบ™, เบกเบฑเบ™เบกเบตเบ‚เปเป‰เบšเบปเบเบœเปˆเบญเบ‡เบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒ.

เบ‚เปเป‰เบชเบฐ เป€เปœเบต เปเบ™เบฐ

เบเบฒเบ™เปเบเป‰เป„เบ‚เบซเบ™เบถเปˆเบ‡เปเบกเปˆเบ™ เปƒเบŠเป‰เบšเปˆเบญเบ™เบˆเบฑเบ”เป€เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบš S3 (เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบกเบฑเบ™เป€เบ›เบฑเบ™เบšเบฒเบ‡เบ›เบฐเป€เบžเบ”เบ—เบตเปˆเป€เบ›เบฑเบ™เป€เบˆเบปเป‰เบฒเบžเบฒเบšเบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡เป€เบŠเบฑเปˆเบ™ minio). เบเบฒเบ™เบ›เปˆเบฝเบ™เป€เบ›เบฑเบ™ S3 เบˆเบฐเบฎเบฝเบเบฎเป‰เบญเบ‡เปƒเบซเป‰เบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡ เปƒเบ™เบฅเบฐเบ”เบฑเบšเบฅเบฐเบซเบฑเบ”, เปเบฅเบฐเบงเบดเบ—เบตเบเบฒเบ™เป€เบ™เบทเป‰เบญเบซเบฒเบˆเบฐเบ–เบทเบเบชเบปเปˆเบ‡เบขเบนเปˆเบ”เป‰เบฒเบ™เบซเบ™เป‰เบฒ, เบžเบงเบเป€เบฎเบปเบฒเบกเบตเบขเบนเปˆเปเบฅเป‰เบง wrote.

เบŠเปˆเบงเบ‡เป€เบงเบฅเบฒเบ‚เบญเบ‡เบœเบนเป‰เปƒเบŠเป‰

เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ, เบกเบฑเบ™เป€เบ›เบฑเบ™เบกเบนเบ™เบ„เปˆเบฒเบšเบญเบเบญเบปเบ‡เบเบฒเบ™เบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ‚เบญเบ‡เบเบญเบ‡เบ›เบฐเบŠเบธเบกเบœเบนเป‰เปƒเบŠเป‰. เป€เบฅเบทเป‰เบญเบเป†เบชเบดเปˆเบ‡เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบเบฑเบ‡เป€เบ›เบฑเบ™เป„เบŸเบฅเปŒเบขเบนเปˆเปƒเบ™เปเบœเปˆเบ™, เป€เบŠเบดเปˆเบ‡เปƒเบ™เบชเบฐเบžเบฒเบšเบเบฒเบ™เบ‚เบญเบ‡ Kubernetes เบˆเบฐเบ™เปเบฒเป„เบ›เบชเบนเปˆเบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบเบฒเบ™เบญเบฐเบ™เบธเบเบฒเบ”เบขเปˆเบฒเบ‡เบ•เปเปˆเป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบœเบนเป‰เปƒเบŠเป‰เบ–เป‰เบฒเบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเบ‚เบญเบ‡เบฅเบฒเบงเบชเบดเป‰เบ™เบชเบธเบ”เบฅเบปเบ‡เปƒเบ™เบ–เบฑเบ‡เบญเบทเปˆเบ™.

เบšเบฑเบ™เบซเบฒเปเบกเปˆเบ™เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เปเบเป‰เป„เบ‚เบšเบฒเบ‡เบชเปˆเบงเบ™เป‚เบ”เบเบเบฒเบ™เป€เบ›เบตเบ” stickySessions เบขเบนเปˆเปƒเบ™เบ‚เบฒเป€เบ‚เบปเป‰เบฒ (เบ„เบธเบ™เบ™เบฐเบชเบปเบกเบšเบฑเบ”เปเบกเปˆเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เปƒเบ™เบ•เบปเบงเบ„เบงเบšเบ„เบธเบก ingress เบ—เบตเปˆเบ™เบดเบเบปเบกเบ—เบฑเบ‡เบซเบกเบปเบ” - เบชเปเบฒเบฅเบฑเบšเบฅเบฒเบเบฅเบฐเบญเบฝเบ”เป€เบžเบตเปˆเบกเป€เบ•เบตเบก, เป€เบšเบดเปˆเบ‡ เบเบฒเบ™เบ—เบปเบšเบ—เบงเบ™เบ„เบทเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ)เป€เบžเบทเปˆเบญเบœเบนเบเบกเบฑเบ”เบœเบนเป‰เปƒเบŠเป‰เบเบฑเบšเบžเบญเบ”เบชเบฐเป€เบžเบฒเบฐเบเบฑเบšเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™:

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: nginx-test
  annotations:
    nginx.ingress.kubernetes.io/affinity: "cookie"
    nginx.ingress.kubernetes.io/session-cookie-name: "route"
    nginx.ingress.kubernetes.io/session-cookie-expires: "172800"
    nginx.ingress.kubernetes.io/session-cookie-max-age: "172800"

spec:
  rules:
  - host: stickyingress.example.com
    http:
      paths:
      - backend:
          serviceName: http-svc
          servicePort: 80
        path: /

เปเบ•เปˆเบ™เบตเป‰เบˆเบฐเบšเปเปˆเบฅเบปเบšเบฅเป‰เบฒเบ‡เบšเบฑเบ™เบซเบฒเบ—เบตเปˆเบกเบตเบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบŠเป‰เปเบฒเบŠเป‰เบญเบ™.

เบ‚เปเป‰เบชเบฐ เป€เปœเบต เปเบ™เบฐ

เบงเบดเบ—เบตเบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบเบงเปˆเบฒเปเบกเปˆเบ™เบเบฒเบ™เป‚เบญเบ™เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เป„เบ›เปƒเบชเปˆ เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบเบญเบ‡เบ›เบฐเบŠเบธเบกเปƒเบ™ memcached, Redis เปเบฅเบฐเบงเบดเบ—เบตเปเบเป‰เป„เบ‚เบ—เบตเปˆเบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™ - เป‚เบ”เบโ€‹เบ—เบปเปˆเบงโ€‹เป„เบ›โ€‹, เบซเบกเบปเบ”โ€‹เบ›เบฐโ€‹เบ–เบดเป‰เบกโ€‹เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เป„เบŸเบฅโ€‹เปŒโ€‹.

เบชเบฐเบซเบฅเบธเบš

เบเบฒเบ™เปเบเป‰เป„เบ‚เบžเบทเป‰เบ™เบ–เบฒเบ™เป‚เบ„เบ‡เบฅเปˆเบฒเบ‡เบ—เบตเปˆเบชเบปเบ™เบ—เบฐเบ™เบฒเบขเบนเปˆเปƒเบ™เบ‚เปเป‰เบ„เบงเบฒเบกเปเบกเปˆเบ™เบชเบปเบกเบ„เบงเบ™เบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰เปƒเบ™เบฎเบนเบšเปเบšเบšเบ‚เบญเบ‡ "crutches" เบŠเบปเปˆเบงเบ„เบฒเบงเป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™ (เป€เบŠเบดเปˆเบ‡เบชเบฝเบ‡เบ—เบตเปˆเบชเบงเบเบ‡เบฒเบกเบเบงเปˆเบฒเปƒเบ™เบžเบฒเบชเบฒเบญเบฑเบ‡เบเบดเบ”เป€เบ›เบฑเบ™เบเบฒเบ™เปเบเป‰เป„เบ‚). เบžเบงเบเบกเบฑเบ™เบญเบฒเบ”เบˆเบฐเบกเบตเบ„เบงเบฒเบกเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เปƒเบ™เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ—เปเบฒเบญเบดเบ”เบ‚เบญเบ‡เบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เบเป‰เบฒเบเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เป„เบ›เบซเบฒ Kubernetes, เปเบ•เปˆเบšเปเปˆเบ„เบงเบ™เบฎเบฒเบ.

เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบ—เบตเปˆเปเบ™เบฐเบ™เปเบฒเป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›เปเบกเปˆเบ™เป€เบžเบทเปˆเบญเบเปเบฒเบˆเบฑเบ”เบžเบงเบเบกเบฑเบ™เบญเบญเบเปƒเบ™เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบ‚เบญเบ‡เบเบฒเบ™เปเบเป‰เป„เบ‚เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบ‚เบญเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ—เบตเปˆเบชเบญเบ”เบ„เปˆเบญเบ‡เบเบฑเบšเบชเบดเปˆเบ‡เบ—เบตเปˆเบซเบผเบฒเบเบ„เบปเบ™เบฎเบนเป‰เบˆเบฑเบเปเบฅเป‰เบง. 12-Factor App. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบ™เบตเป‰ - เบเบฒเบ™เบ™เปเบฒเป€เบญเบปเบฒเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเป„เบ›เบชเบนเปˆเบฎเบนเบšเปเบšเบšเบ—เบตเปˆเบšเปเปˆเบกเบตเบฅเบฑเบ” - inevitably เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เปƒเบ™เบฅเบฐเบซเบฑเบ”เบˆเบฐเบ•เป‰เบญเบ‡, เปเบฅเบฐเปƒเบ™เบ—เบตเปˆเบ™เบตเป‰เบกเบฑเบ™เป€เบ›เบฑเบ™เบชเบดเปˆเบ‡เบชเปเบฒเบ„เบฑเบ™เบ—เบตเปˆเบˆเบฐเบŠเบญเบเบซเบฒเบ„เบงเบฒเบกเบชเบปเบกเบ”เบนเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ” / เบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เบ‚เบญเบ‡เบ—เบธเบฅเบฐเบเบดเบ”เปเบฅเบฐเบ„เบงเบฒเบกเบชเบปเบ”เปƒเบชเบ”เป‰เบฒเบ™เปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เปเบฅเบฐเบฎเบฑเบเบชเบฒเป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบ—เบตเปˆเป€เบฅเบทเบญเบ. .

PS

เบญเปˆเบฒเบ™เบเบฑเบ‡เบขเบนเปˆเปƒเบ™ blog เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ:

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™