āϕ⧁āĻŦāĻžāϰāύ⧇āϟāϏ⧇ āĻāĻ•āϟāĻŋ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āĻ¸ā§āĻĨāĻžāύāĻžāĻ¨ā§āϤāϰ āĻ•āϰāĻžāϰ āϏāĻŽāϝāĻŧ āĻ¸ā§āĻĨāĻžāύ⧀āϝāĻŧ āĻĢāĻžāχāϞāϗ⧁āϞāĻŋ

āϕ⧁āĻŦāĻžāϰāύ⧇āϟāϏ⧇ āĻāĻ•āϟāĻŋ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āĻ¸ā§āĻĨāĻžāύāĻžāĻ¨ā§āϤāϰ āĻ•āϰāĻžāϰ āϏāĻŽāϝāĻŧ āĻ¸ā§āĻĨāĻžāύ⧀āϝāĻŧ āĻĢāĻžāχāϞāϗ⧁āϞāĻŋ

Kubernetes āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻāĻ•āϟāĻŋ CI/CD āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻž āϤ⧈āϰāĻŋ āĻ•āϰāĻžāϰ āϏāĻŽāϝāĻŧ, āĻ•āĻ–āύāĻ“ āĻ•āĻ–āύāĻ“ āύāϤ⧁āύ āĻĒāϰāĻŋāĻ•āĻžāĻ āĻžāĻŽā§‹āϰ āĻĒā§āϰāϝāĻŧā§‹āϜāύ⧀āϝāĻŧāϤāĻž āĻāĻŦāĻ‚ āĻāϤ⧇ āĻ¸ā§āĻĨāĻžāύāĻžāĻ¨ā§āϤāϰāĻŋāϤ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ⧇āϰ āĻŽāĻ§ā§āϝ⧇ āĻ…āϏāĻžāĻŽāĻžā§āϜāĻ¸ā§āϝāϤāĻžāϰ āϏāĻŽāĻ¸ā§āϝāĻž āĻĻ⧇āĻ–āĻž āĻĻ⧇āϝāĻŧāĨ¤ āĻŦāĻŋāĻļ⧇āώ āĻ•āϰ⧇, āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āĻŦāĻŋāĻ˛ā§āĻĄ āĻĒāĻ°ā§āϝāĻžāϝāĻŧ⧇ āĻāϟāĻŋ āĻĒ⧇āϤ⧇ āϗ⧁āϰ⧁āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖ ОдиĐŊ āχāĻŽā§‡āϜ āϝāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻšāĻŦ⧇ Đ˛ŅĐĩŅ… āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ āĻĒāϰāĻŋāĻŦ⧇āĻļ āĻāĻŦāĻ‚ āĻ•ā§āϞāĻžāĻ¸ā§āϟāĻžāϰ. āĻāχ āύ⧀āϤāĻŋ āϏāĻ āĻŋāĻ• āĻ…āĻ¨ā§āϤāĻ°ā§āύāĻŋāĻšāĻŋāϤ āϗ⧁āĻ—āϞ āĻ…āύ⧁āϝāĻžāϝāĻŧā§€ āϧāĻžāϰāĻ• āĻŦā§āϝāĻŦāĻ¸ā§āĻĨāĻžāĻĒāύāĻž (āĻ āĻŦāĻŋāώāϝāĻŧ⧇ āĻāĻ•āĻžāϧāĻŋāĻ•āĻŦāĻžāϰ āϤāĻŋāύāĻŋ āĻŦāϞ⧇āύ, āĻāĻŦāĻ‚ āφāĻŽāĻžāĻĻ⧇āϰ āĻĒā§āϰāϝ⧁āĻ•ā§āϤāĻŋāĻ—āϤ āĻŦāĻŋāĻ­āĻžāĻ—)āĨ¤

āϝāĻžāχāĻšā§‹āĻ•, āφāĻĒāύāĻŋ āĻāĻŽāύ āĻĒāϰāĻŋāĻ¸ā§āĻĨāĻŋāϤāĻŋāϤ⧇ āĻ•āĻžāωāϕ⧇ āĻĻ⧇āĻ–āϤ⧇ āĻĒāĻžāĻŦ⧇āύ āύāĻž āϝ⧇āĻ–āĻžāύ⧇ āϏāĻžāχāĻŸā§‡āϰ āϕ⧋āĻĄ āĻāĻ•āϟāĻŋ āϤ⧈āϰāĻŋ āĻĢā§āϰ⧇āĻŽāĻ“āϝāĻŧāĻžāĻ°ā§āĻ• āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇, āϝāĻžāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϟāĻŋāϰ āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āĻŦā§āϝāĻŦāĻšāĻžāϰ⧇āϰ āωāĻĒāϰ āĻŦāĻŋāϧāĻŋāύāĻŋāώ⧇āϧ āφāϰ⧋āĻĒ āĻ•āϰ⧇āĨ¤ āĻāĻŦāĻ‚ āϝāĻ–āύ āĻāĻ•āϟāĻŋ "āĻ¸ā§āĻŦāĻžāĻ­āĻžāĻŦāĻŋāĻ• āĻĒāϰāĻŋāĻŦ⧇āĻļ⧇" āĻāϟāĻŋ āĻŽā§‹āĻ•āĻžāĻŦ⧇āϞāĻž āĻ•āϰāĻž āϏāĻšāϜ, āϕ⧁āĻŦāĻžāϰāύ⧇āϟāϏ⧇ āĻāχ āφāϚāϰāĻŖāϟāĻŋ āĻāĻ•āϟāĻŋ āϏāĻŽāĻ¸ā§āϝāĻž āĻšāϝāĻŧ⧇ āωāĻ āϤ⧇ āĻĒāĻžāϰ⧇, āĻŦāĻŋāĻļ⧇āώ āĻ•āϰ⧇ āϝāĻ–āύ āφāĻĒāύāĻŋ āĻĒā§āϰāĻĨāĻŽāĻŦāĻžāϰ āĻāϟāĻŋāϰ āĻŽā§āĻ–ā§‹āĻŽā§āĻ–āĻŋ āĻšāύāĨ¤ āϝāĻĻāĻŋāĻ“ āĻāĻ•āϟāĻŋ āωāĻĻā§āĻ­āĻžāĻŦāύ⧀ āĻŽāύ āĻĒāϰāĻŋāĻ•āĻžāĻ āĻžāĻŽā§‹āĻ—āϤ āϏāĻŽāĻžāϧāĻžāύ āύāĻŋāϝāĻŧ⧇ āφāϏāϤ⧇ āĻĒāĻžāϰ⧇ āϝāĻž āĻĒā§āϰāĻĨāĻŽ āύāϜāϰ⧇ āϏ⧁āĻ¸ā§āĻĒāĻˇā§āϟ āĻŦāĻž āĻāĻŽāύāĻ•āĻŋ āĻ­āĻžāϞ āĻŦāϞ⧇ āĻŽāύ⧇ āĻšāϝāĻŧ... āĻāϟāĻž āĻŽāύ⧇ āϰāĻžāĻ–āĻž āϗ⧁āϰ⧁āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖ āϝ⧇ āĻŦ⧇āĻļāĻŋāϰāĻ­āĻžāĻ— āĻĒāϰāĻŋāĻ¸ā§āĻĨāĻŋāϤāĻŋāϤ⧇ āĻšāϤ⧇ āĻĒāĻžāϰ⧇ āĻāĻŦāĻ‚ āĻ•āϰāĻž āωāϚāĻŋāϤ āĻ¸ā§āĻĨāĻžāĻĒāĻ¤ā§āϝāĻ—āϤāĻ­āĻžāĻŦ⧇ āϏāĻŽāĻžāϧāĻžāύ āĻ•āϰāĻž.

āφāϏ⧁āύ āĻĢāĻžāχāϞāϗ⧁āϞāĻŋ āϏāĻ‚āϰāĻ•ā§āώāϪ⧇āϰ āϜāĻ¨ā§āϝ āϜāύāĻĒā§āϰāĻŋāϝāĻŧ āϏāĻŽāĻžāϧāĻžāύāϗ⧁āϞāĻŋ āĻĻ⧇āϖ⧁āύ āϝāĻž āĻāĻ•āϟāĻŋ āĻ•ā§āϞāĻžāĻ¸ā§āϟāĻžāϰ āĻĒāϰāĻŋāϚāĻžāϞāύāĻž āĻ•āϰāĻžāϰ āϏāĻŽāϝāĻŧ āĻ…āĻĒā§āϰ⧀āϤāĻŋāĻ•āϰ āĻĒāϰāĻŋāĻŖāϤāĻŋāϰ āĻĻāĻŋāϕ⧇ āύāĻŋāϝāĻŧ⧇ āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇ āĻāĻŦāĻ‚ āφāϰāĻ“ āϏāĻ āĻŋāĻ• āĻĒāĻĨ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰ⧇āĨ¤

āĻ¸ā§āĻŸā§āϝāĻžāϟāĻŋāĻ• āĻ¸ā§āĻŸā§‹āϰ⧇āϜ

āĻŦā§āϝāĻžāĻ–ā§āϝāĻž āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ, āĻāĻ•āϟāĻŋ āĻ“āϝāĻŧ⧇āĻŦ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āĻŦāĻŋāĻŦ⧇āϚāύāĻž āĻ•āϰ⧁āύ āϝāĻž āϚāĻŋāĻ¤ā§āϰ, āĻļ⧈āϞ⧀ āĻāĻŦāĻ‚ āĻ…āĻ¨ā§āϝāĻžāĻ¨ā§āϝ āϜāĻŋāύāĻŋāϏāϗ⧁āϞāĻŋāϰ āĻāĻ•āϟāĻŋ āϏ⧇āϟ āĻĒ⧇āϤ⧇ āĻ•āĻŋāϛ⧁ āϧāϰāϪ⧇āϰ āĻ¸ā§āĻŸā§āϝāĻžāϟāĻŋāĻ• āĻœā§‡āύāĻžāϰ⧇āϟāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇āĨ¤ āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, Yii PHP āĻĢā§āϰ⧇āĻŽāĻ“āϝāĻŧāĻžāĻ°ā§āϕ⧇āϰ āĻāĻ•āϟāĻŋ āĻ…āĻ¨ā§āϤāĻ°ā§āύāĻŋāĻ°ā§āĻŽāĻŋāϤ āϏāĻŽā§āĻĒāĻĻ āĻŦā§āϝāĻŦāĻ¸ā§āĻĨāĻžāĻĒāĻ• āϰāϝāĻŧ⧇āϛ⧇ āϝāĻž āĻ…āύāĻ¨ā§āϝ āĻĄāĻŋāϰ⧇āĻ•ā§āϟāϰāĻŋ āύāĻžāĻŽ āϤ⧈āϰāĻŋ āĻ•āϰ⧇āĨ¤ āϤāĻĻāύ⧁āϏāĻžāϰ⧇, āφāωāϟāĻĒ⧁āϟ āĻšāϞ āĻ¸ā§āĻŸā§āϝāĻžāϟāĻŋāĻ• āϏāĻžāχāĻŸā§‡āϰ āĻĒāĻžāĻĨ⧇āϰ āĻāĻ•āϟāĻŋ āϏ⧇āϟ āϝāĻž āĻ¸ā§āĻĒāĻˇā§āϟāϤāχ āĻāϕ⧇ āĻ…āĻĒāϰ⧇āϰ āϏāĻžāĻĨ⧇ āϛ⧇āĻĻ āĻ•āϰ⧇ āύāĻž (āĻāϟāĻŋ āĻŦ⧇āĻļ āĻ•āϝāĻŧ⧇āĻ•āϟāĻŋ āĻ•āĻžāϰāϪ⧇ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āĻ›āĻŋāϞ - āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, āϝāĻ–āύ āĻāĻ•āĻžāϧāĻŋāĻ• āωāĻĒāĻžāĻĻāĻžāύ āĻāĻ•āχ āϏāĻ‚āĻ¸ā§āĻĨāĻžāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āϤāĻ–āύ āϏāĻĻ⧃āĻļāϗ⧁āϞāĻŋ āĻĻā§‚āϰ āĻ•āϰāϤ⧇)āĨ¤ āϏ⧁āϤāϰāĻžāĻ‚, āĻŦāĻžāĻ•ā§āϏ⧇āϰ āĻŦāĻžāχāϰ⧇, āφāĻĒāύāĻŋ āϝāĻ–āύ āĻĒā§āϰāĻĨāĻŽāĻŦāĻžāϰ āĻāĻ•āϟāĻŋ āĻ“āϝāĻŧ⧇āĻŦ āϰāĻŋāϏ⧋āĻ°ā§āϏ āĻŽāĻĄāĻŋāωāϞ āĻ…ā§āϝāĻžāĻ•ā§āϏ⧇āϏ āĻ•āϰ⧇āύ, āĻ¸ā§āĻŸā§āϝāĻžāϟāĻŋāĻ• āĻĢāĻžāχāϞāϗ⧁āϞāĻŋ (āφāϏāϞ⧇, āĻĒā§āϰāĻžāϝāĻŧāĻļāχ āϏāĻŋāĻŽāϞāĻŋāĻ™ā§āĻ•, āϤāĻŦ⧇ āĻĒāϰ⧇ āφāϰāĻ“ āĻŦ⧇āĻļāĻŋ) āĻāχ āĻ¸ā§āĻĨāĻžāĻĒāύāĻžāϰ āϜāĻ¨ā§āϝ āĻ…āύāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āϏāĻžāϧāĻžāϰāĻŖ āϰ⧁āϟ āĻĄāĻŋāϰ⧇āĻ•ā§āϟāϰāĻŋāϰ āϏāĻžāĻĨ⧇ āϤ⧈āϰāĻŋ āĻāĻŦāĻ‚ āĻŦāĻŋāĻ¨ā§āϝāĻ¸ā§āϤ āĻšāϝāĻŧ:

  • webroot/assets/2072c2df/css/â€Ļ
  • webroot/assets/2072c2df/images/â€Ļ
  • webroot/assets/2072c2df/js/â€Ļ

āĻāĻ•āϟāĻŋ āĻ•ā§āϞāĻžāĻ¸ā§āϟāĻžāϰ āĻĒāϰāĻŋāĻĒā§āϰ⧇āĻ•ā§āώāĻŋāϤ⧇ āĻāχ āĻŽāĻžāύ⧇ āĻ•āĻŋ?

āϏāĻšāϜ āωāĻĻāĻžāĻšāϰāĻŖ

āĻāĻ•āϟāĻŋ āĻŽā§‹āϟāĻžāĻŽā§āϟāĻŋ āϏāĻžāϧāĻžāϰāĻŖ āϘāϟāύāĻž āϧāϰāĻž āϝāĻžāĻ•, āϝāĻ–āύ āĻ¸ā§āĻŸā§āϝāĻžāϟāĻŋāĻ• āĻĄā§‡āϟāĻž āĻŦāĻŋāϤāϰāĻŖ āĻāĻŦāĻ‚ āϏāĻžāϧāĻžāϰāĻŖ āĻ…āύ⧁āϰ⧋āϧāϗ⧁āϞāĻŋ āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻž āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻĒāĻŋāĻāχāϚāĻĒāĻŋ-āĻāϰ āφāϗ⧇ 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

āĻāĻ•āϟāĻŋ āϏāϰāϞ⧀āĻ•ā§ƒāϤ āφāĻ•āĻžāϰ⧇, 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;
        }
    }

āφāĻĒāύāĻŋ āϝāĻ–āύ āĻĒā§āϰāĻĨāĻŽ āϏāĻžāχāϟāϟāĻŋ āĻ…ā§āϝāĻžāĻ•ā§āϏ⧇āϏ āĻ•āϰ⧇āύ, āϤāĻ–āύ āϏāĻŽā§āĻĒāĻĻāϗ⧁āϞāĻŋ āĻĒāĻŋāĻāχāϚāĻĒāĻŋ āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ⧇ āωāĻĒāĻ¸ā§āĻĨāĻŋāϤ āĻšāϝāĻŧāĨ¤ āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻāĻ•āϟāĻŋ āĻĒāĻĄā§‡āϰ āĻŽāĻ§ā§āϝ⧇ āĻĻ⧁āϟāĻŋ āĻĒāĻžāĻ¤ā§āϰ⧇āϰ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇, nginx āĻāχ āĻ¸ā§āĻŸā§āϝāĻžāϟāĻŋāĻ• āĻĢāĻžāχāϞāϗ⧁āϞāĻŋ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āĻ•āĻŋāϛ⧁āχ āϜāĻžāύ⧇ āύāĻž, āϝāĻž (āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύ āĻ…āύ⧁āϏāĻžāϰ⧇) āϤāĻžāĻĻ⧇āϰ āĻĻ⧇āĻ“āϝāĻŧāĻž āωāϚāĻŋāϤāĨ¤ āĻĢāϞāĻ¸ā§āĻŦāϰ⧂āĻĒ, āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ CSS āĻāĻŦāĻ‚ JS āĻĢāĻžāχāϞāϗ⧁āϞāĻŋāϰ āϏāĻŽāĻ¸ā§āϤ āĻ…āύ⧁āϰ⧋āϧ⧇āϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ 404 āĻ¤ā§āϰ⧁āϟāĻŋ āĻĻ⧇āĻ–āϤ⧇ āĻĒāĻžāĻŦ⧇⧎ āĻāĻ–āĻžāύ⧇ āϏāĻŦāĻšā§‡āϝāĻŧ⧇ āϏāĻšāϜ āϏāĻŽāĻžāϧāĻžāύ āĻšāϞ āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰāϗ⧁āϞāĻŋāϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āϏāĻžāϧāĻžāϰāĻŖ āĻĄāĻŋāϰ⧇āĻ•ā§āϟāϰāĻŋ āϏāĻ‚āĻ—āĻ āĻŋāϤ āĻ•āϰāĻžā§ˇ āφāĻĻāĻŋāĻŽ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ - āϏāĻžāϧāĻžāϰāĻŖ 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 āĻĻā§āĻŦāĻžāϰāĻž āϏāĻ āĻŋāĻ•āĻ­āĻžāĻŦ⧇ āĻĒāϰāĻŋāĻŦ⧇āĻļāύ āĻ•āϰāĻž āĻšāϝāĻŧāĨ¤ āϤāĻŦ⧇ āφāĻŽāĻŋ āφāĻĒāύāĻžāϕ⧇ āĻŽāύ⧇ āĻ•āϰāĻŋāϝāĻŧ⧇ āĻĻāĻŋāχ āϝ⧇ āĻāϟāĻŋ āĻāĻ•āϟāĻŋ āφāĻĻāĻŋāĻŽ āϏāĻŽāĻžāϧāĻžāύ, āϝāĻžāϰ āĻ…āĻ°ā§āĻĨ āĻāϟāĻŋ āφāĻĻāĻ°ā§āĻļ āĻĨ⧇āϕ⧇ āĻ…āύ⧇āĻ• āĻĻā§‚āϰ⧇ āĻāĻŦāĻ‚ āĻāϰ āύāĻŋāϜāĻ¸ā§āĻŦ āϏ⧂āĻ•ā§āĻˇā§āĻŽāϤāĻž āĻāĻŦāĻ‚ āĻ¤ā§āϰ⧁āϟāĻŋ āϰāϝāĻŧ⧇āϛ⧇, āϝāĻž āύ⧀āĻšā§‡ āφāϞ⧋āϚāύāĻž āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇āĨ¤

āφāϰāĻ“ āωāĻ¨ā§āύāϤ āĻ¸ā§āĻŸā§‹āϰ⧇āϜ

āĻāĻ–āύ āĻāĻŽāύ āĻāĻ•āϟāĻŋ āĻĒāϰāĻŋāĻ¸ā§āĻĨāĻŋāϤāĻŋ āĻ•āĻ˛ā§āĻĒāύāĻž āĻ•āϰ⧁āύ āϝ⧇āĻ–āĻžāύ⧇ āĻāĻ•āϜāύ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀ āϏāĻžāχāϟāϟāĻŋ āĻĒāϰāĻŋāĻĻāĻ°ā§āĻļāύ āĻ•āϰ⧇āϛ⧇āύ, āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ⧇ āωāĻĒāϞāĻŦā§āϧ āĻļ⧈āϞ⧀ āϏāĻš āĻāĻ•āϟāĻŋ āĻĒ⧃āĻˇā§āĻ āĻž āϞ⧋āĻĄ āĻ•āϰ⧇āϛ⧇āύ āĻāĻŦāĻ‚ āϝāĻ–āύ āϤāĻŋāύāĻŋ āĻāχ āĻĒ⧃āĻˇā§āĻ āĻžāϟāĻŋ āĻĒāĻĄāĻŧāϛ⧇āύ, āϤāĻ–āύ āφāĻŽāϰāĻž āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰāϟāĻŋ āĻĒ⧁āύāϰāĻžāϝāĻŧ āĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰ⧇āĻ›āĻŋāĨ¤ āϏāĻŽā§āĻĒāĻĻ⧇āϰ āĻ•ā§āϝāĻžāϟāĻžāϞāĻ— āĻ–āĻžāϞāĻŋ āĻšāϝāĻŧ⧇ āϗ⧇āϛ⧇ āĻāĻŦāĻ‚ āύāϤ⧁āύāϗ⧁āϞāĻŋ āϤ⧈āϰāĻŋ āĻ•āϰāĻž āĻļ⧁āϰ⧁ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ PHP-āϕ⧇ āĻāĻ•āϟāĻŋ āĻ…āύ⧁āϰ⧋āϧ⧇āϰ āĻĒā§āϰāϝāĻŧā§‹āϜāύ⧎ āϝāĻžāχāĻšā§‹āĻ•, āĻāϰ āĻĒāϰ⧇āĻ“, āĻĒ⧁āϰāĻžāύ⧋ āĻ¸ā§āĻŸā§āϝāĻžāϟāĻŋāĻ•ā§āϏ⧇āϰ āϞāĻŋāĻ™ā§āĻ•āϗ⧁āϞāĻŋ āĻ…āĻĒā§āϰāĻžāϏāĻ™ā§āĻ—āĻŋāĻ• āĻšāĻŦ⧇, āϝāĻž āĻ¸ā§āĻŸā§āϝāĻžāϟāĻŋāĻ•ā§āϏ āĻĒā§āϰāĻĻāĻ°ā§āĻļāύ⧇ āĻ¤ā§āϰ⧁āϟāĻŋāϰ āĻ•āĻžāϰāĻŖ āĻšāĻŦ⧇āĨ¤

āωāĻĒāϰāĻ¨ā§āϤ⧁, āφāĻŽāĻžāĻĻ⧇āϰ āϏāĻŽā§āĻ­āĻŦāϤ āĻāĻ•āϟāĻŋ āĻ•āĻŽ āĻŦāĻž āĻ•āĻŽ āϞ⧋āĻĄ āĻ•āϰāĻž āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ āφāϛ⧇, āϝāĻžāϰ āĻŽāĻžāύ⧇ āĻšāϞ āϝ⧇ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύāϟāĻŋāϰ āĻāĻ•āϟāĻŋ āĻ…āύ⧁āϞāĻŋāĻĒāĻŋ āϝāĻĨ⧇āĻˇā§āϟ āĻšāĻŦ⧇ āύāĻž:

  • āĻāϰ āĻ¸ā§āϕ⧇āϞ āφāĻĒ āĻ•āϰāĻž āϝāĻžāĻ• āĻŦāĻŋāĻ¸ā§āϤ⧃āϤāĻŋ āĻĻ⧁āϟāĻŋ āĻĒā§āϰāϤāĻŋāϞāĻŋāĻĒāĻŋ āĻĒāĻ°ā§āϝāĻ¨ā§āϤāĨ¤
  • āϝāĻ–āύ āϏāĻžāχāϟāϟāĻŋ āĻĒā§āϰāĻĨāĻŽ āĻ…ā§āϝāĻžāĻ•ā§āϏ⧇āϏ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āĻ›āĻŋāϞ, āϤāĻ–āύ āĻāĻ•āϟāĻŋ āĻĒā§āϰāϤāĻŋāϞāĻŋāĻĒāĻŋāϤ⧇ āϏāĻŽā§āĻĒāĻĻ āϤ⧈āϰāĻŋ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āĻ›āĻŋāϞāĨ¤
  • āĻ•āĻŋāϛ⧁ āϏāĻŽāϝāĻŧ⧇, āχāύāĻ—ā§āϰ⧇āϏ āϏāĻŋāĻĻā§āϧāĻžāĻ¨ā§āϤ āύāĻŋāϝāĻŧ⧇āĻ›āĻŋāϞ (āϞ⧋āĻĄ āĻ­āĻžāϰāϏāĻžāĻŽā§āϝ⧇āϰ āωāĻĻā§āĻĻ⧇āĻļā§āϝ⧇) āĻĻā§āĻŦāĻŋāϤ⧀āϝāĻŧ āĻĒā§āϰāϤāĻŋāϞāĻŋāĻĒāĻŋāϤ⧇ āĻāĻ•āϟāĻŋ āĻ…āύ⧁āϰ⧋āϧ āĻĒāĻžāĻ āĻžāύ⧋āϰ āϜāĻ¨ā§āϝ, āĻāĻŦāĻ‚ āĻāχ āϏāĻŽā§āĻĒāĻĻāϗ⧁āϞāĻŋ āĻāĻ–āύāĻ“ āϏ⧇āĻ–āĻžāύ⧇ āĻ›āĻŋāϞ āύāĻžāĨ¤ āĻ…āĻĨāĻŦāĻž āĻšāϝāĻŧāϤ⧋ āϤāĻžāϰāĻž āφāϰ āύ⧇āχ āĻ•āĻžāϰāĻŖ āφāĻŽāϰāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻŋ RollingUpdate āĻāĻŦāĻ‚ āĻāχ āĻŽā§āĻšā§‚āĻ°ā§āϤ⧇ āφāĻŽāϰāĻž āĻ¸ā§āĻĨāĻžāĻĒāύāĻž āĻ•āϰāĻ›āĻŋāĨ¤

āϏāĻžāϧāĻžāϰāĻŖāĻ­āĻžāĻŦ⧇, āĻĢāϞāĻžāĻĢāϞ āφāĻŦāĻžāϰ āϭ⧁āϞāĨ¤

āĻĒ⧁āϰāĻžāύ⧋ āϏāĻŽā§āĻĒāĻĻ āĻšāĻžāϰāĻžāύ⧋ āĻāĻĄāĻŧāĻžāϤ⧇, āφāĻĒāύāĻŋ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύ emptyDir āωāĻĒāϰ hostPath, āĻāĻ•āϟāĻŋ āĻ•ā§āϞāĻžāĻ¸ā§āϟāĻžāϰ āύ⧋āĻĄā§‡ āĻļāĻžāϰ⧀āϰāĻŋāĻ•āĻ­āĻžāĻŦ⧇ āĻ¸ā§āĻŸā§āϝāĻžāϟāĻŋāĻ• āϝ⧋āĻ— āĻ•āϰāĻž āĻšāĻšā§āϛ⧇āĨ¤ āĻāχ āĻĒāĻĻā§āϧāϤāĻŋ āĻ–āĻžāϰāĻžāĻĒ āĻ•āĻžāϰāĻŖ āφāĻŽāϰāĻž āφāϏāϞ⧇ āφāϛ⧇ āĻāĻ•āϟāĻŋ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻ•ā§āϞāĻžāĻ¸ā§āϟāĻžāϰ āύ⧋āĻĄā§‡ āφāĻŦāĻĻā§āϧ āφāĻĒāύāĻžāϰ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ, āĻ•āĻžāϰāĻŖ - āĻ…āĻ¨ā§āϝ āύ⧋āĻĄāϗ⧁āϞāĻŋāϤ⧇ āϝāĻžāĻ“āϝāĻŧāĻžāϰ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ - āĻĄāĻŋāϰ⧇āĻ•ā§āϟāϰāĻŋāϤ⧇ āĻĒā§āϰāϝāĻŧā§‹āϜāύ⧀āϝāĻŧ āĻĢāĻžāχāϞ āĻĨāĻžāĻ•āĻŦ⧇ āύāĻžāĨ¤ āĻ…āĻĨāĻŦāĻž āύ⧋āĻĄāϗ⧁āϞāĻŋāϰ āĻŽāĻ§ā§āϝ⧇ āĻ•āĻŋāϛ⧁ āϧāϰāϪ⧇āϰ āĻŦā§āϝāĻžāĻ•āĻ—ā§āϰāĻžāωāĻ¨ā§āĻĄ āĻĄāĻŋāϰ⧇āĻ•ā§āϟāϰāĻŋ āϏāĻŋāĻ™ā§āĻ•ā§āϰ⧋āύāĻžāχāĻœā§‡āĻļāύ āĻĒā§āϰāϝāĻŧā§‹āϜāύāĨ¤

āϏāĻŽāĻžāϧāĻžāύ āĻ•āĻŋ?

  1. āĻšāĻžāĻ°ā§āĻĄāĻ“āϝāĻŧā§āϝāĻžāϰ āĻāĻŦāĻ‚ āϏāĻ‚āĻ¸ā§āĻĨāĻžāύ āĻ…āύ⧁āĻŽāϤāĻŋ āĻĻāĻŋāϞ⧇, āφāĻĒāύāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύ cephs āĻ¸ā§āĻŸā§āϝāĻžāϟāĻŋāĻ• āĻĒā§āϰāϝāĻŧā§‹āϜāύ⧇āϰ āϜāĻ¨ā§āϝ āϏāĻŽāĻžāύāĻ­āĻžāĻŦ⧇ āĻ…ā§āϝāĻžāĻ•ā§āϏ⧇āϏāϝ⧋āĻ—ā§āϝ āĻĄāĻŋāϰ⧇āĻ•ā§āϟāϰāĻŋ āϏāĻ‚āĻ—āĻ āĻŋāϤ āĻ•āϰāϤ⧇āĨ¤ āĻ…āĻĢāĻŋāϏāĻŋāϝāĻŧāĻžāϞ āĻĄāϕ⧁āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāύ SSD āĻĄā§āϰāĻžāχāĻ­, āĻ…āĻ¨ā§āϤāϤ āϤāĻŋāύāϗ⧁āĻŖ āĻĒā§āϰāϤāĻŋāϞāĻŋāĻĒāĻŋ āĻāĻŦāĻ‚ āĻ•ā§āϞāĻžāĻ¸ā§āϟāĻžāϰ āύ⧋āĻĄāϗ⧁āϞāĻŋāϰ āĻŽāĻ§ā§āϝ⧇ āĻāĻ•āϟāĻŋ āĻ¸ā§āĻĨāĻŋāϤāĻŋāĻļā§€āϞ "āĻĒ⧁āϰ⧁" āϏāĻ‚āϝ⧋āϗ⧇āϰ āϏ⧁āĻĒāĻžāϰāĻŋāĻļ āĻ•āϰ⧇āĨ¤
  2. āĻāĻ•āϟāĻŋ āĻ•āĻŽ āϚāĻžāĻšāĻŋāĻĻāĻžāĻĒā§‚āĻ°ā§āĻŖ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ āĻāĻ•āϟāĻŋ NFS āϏāĻžāĻ°ā§āĻ­āĻžāϰ āϏāĻ‚āĻ—āĻ āĻŋāϤ āĻšāĻŦ⧇. āϝāĻžāχāĻšā§‹āĻ•, āϤāĻžāϰāĻĒāϰ⧇ āφāĻĒāύāĻžāϕ⧇ āĻ“āϝāĻŧ⧇āĻŦ āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇āϰ āĻĻā§āĻŦāĻžāϰāĻž āĻ…āύ⧁āϰ⧋āϧāϗ⧁āϞāĻŋ āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻž āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻĒā§āϰāϤāĻŋāĻ•ā§āϰāĻŋāϝāĻŧāĻž āϏāĻŽāϝāĻŧ⧇āϰ āϏāĻŽā§āĻ­āĻžāĻŦā§āϝ āĻŦ⧃āĻĻā§āϧāĻŋ āĻŦāĻŋāĻŦ⧇āϚāύāĻž āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ āĻāĻŦāĻ‚ āĻ¤ā§āϰ⧁āϟāĻŋ āϏāĻšāύāĻļā§€āϞāϤāĻž āĻĒāĻ›āĻ¨ā§āĻĻāϏāχ āĻšāϤ⧇ āĻ…āύ⧇āĻ• āĻ•āĻŋāϛ⧁ āϛ⧇āĻĄāĻŧ⧇ āĻĻ⧇āĻŦ⧇āĨ¤ āĻŦā§āϝāĻ°ā§āĻĨāϤāĻžāϰ āĻĒāϰāĻŋāĻŖāϤāĻŋāϗ⧁āϞāĻŋ āĻŦāĻŋāĻĒāĻ°ā§āϝāϝāĻŧāĻ•āϰ: āĻŽāĻžāωāĻ¨ā§āϟ āĻĄā§āĻŽ āĻšāĻžāϰāĻžāύ⧋ LA āϞ⧋āĻĄā§‡āϰ āϚāĻžāĻĒ⧇ āφāĻ•āĻžāĻļ⧇ āϛ⧁āĻŸā§‡ āφāϏāĻž āĻ•ā§āϞāĻžāĻ¸ā§āϟāĻžāϰāϟāĻŋāϕ⧇ āĻŽā§ƒāĻ¤ā§āϝ⧁āϰ āĻĻāĻŋāϕ⧇ āύāĻŋāϝāĻŧ⧇ āϝāĻžāϝāĻŧāĨ¤

āĻ…āĻ¨ā§āϝāĻžāĻ¨ā§āϝ āϜāĻŋāύāĻŋāϏāϗ⧁āϞāĻŋāϰ āĻŽāĻ§ā§āϝ⧇, āĻ…āĻŦāĻŋāϰāĻžāĻŽ āĻ¸ā§āĻŸā§‹āϰ⧇āϜ āϤ⧈āϰāĻŋāϰ āϜāĻ¨ā§āϝ āϏāĻŽāĻ¸ā§āϤ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ⧇āϰ āĻĒā§āϰāϝāĻŧā§‹āϜāύ āĻšāĻŦ⧇ āĻĒāϟāĻ­ā§‚āĻŽāĻŋ āĻĒāϰāĻŋāĻˇā§āĻ•āĻžāϰ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āϏāĻŽāϝāĻŧ⧇āϰ āĻŽāĻ§ā§āϝ⧇ āϜāĻŽāĻž āĻšāĻ“āϝāĻŧāĻž āĻĢāĻžāχāϞ⧇āϰ āϏ⧇āϕ⧇āϞ⧇ āϏ⧇āϟāĨ¤ āĻĒāĻŋāĻāχāϚāĻĒāĻŋ āϏāĻš āĻĒāĻžāĻ¤ā§āϰ⧇āϰ āϏāĻžāĻŽāύ⧇ āϰāĻžāĻ–āϤ⧇ āĻĒāĻžāϰ⧇āύ āĻĄā§‡āĻŽāύāϏ⧇āϟ āĻ•ā§āϝāĻžāĻļāĻŋāĻ‚ nginx āĻĨ⧇āϕ⧇, āϝāĻž āĻāĻ•āϟāĻŋ āϏ⧀āĻŽāĻŋāϤ āϏāĻŽāϝāĻŧ⧇āϰ āϜāĻ¨ā§āϝ āϏāĻŽā§āĻĒāĻĻ⧇āϰ āĻ•āĻĒāĻŋ āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰāĻŦ⧇āĨ¤ āĻāχ āφāϚāϰāĻŖāϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āϏāĻšāĻœā§‡āχ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ āĻ•āϰāĻž āϝāĻžāϝāĻŧ proxy_cache āĻĻāĻŋāύ āĻŦāĻž āĻ—āĻŋāĻ—āĻžāĻŦāĻžāχāϟ āĻĄāĻŋāĻ¸ā§āĻ• āĻ¸ā§āĻĒ⧇āϏ āĻ¸ā§āĻŸā§‹āϰ⧇āϜ āĻ—āĻ­ā§€āϰāϤāĻž āϏāĻ™ā§āϗ⧇.

āωāĻĒāϰ⧇ āωāĻ˛ā§āϞāĻŋāĻ–āĻŋāϤ āĻŦāĻŋāϤāϰāĻŖāĻ•ā§ƒāϤ āĻĢāĻžāχāϞ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āϰ āϏāĻžāĻĨ⧇ āĻāχ āĻĒāĻĻā§āϧāϤāĻŋāϰ āϏāĻ‚āĻŽāĻŋāĻļā§āϰāĻŖ āĻ•āĻ˛ā§āĻĒāύāĻž āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āĻŦāĻŋāĻļāĻžāϞ āĻ•ā§āώ⧇āĻ¤ā§āϰ āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰ⧇, āϝāĻžāϰāĻž āĻāϟāĻŋ āĻŦāĻžāĻ¸ā§āϤāĻŦāĻžāϝāĻŧāύ āĻāĻŦāĻ‚ āϏāĻŽāĻ°ā§āĻĨāύ āĻ•āϰāĻŦ⧇ āϤāĻžāĻĻ⧇āϰ āĻŦāĻžāĻœā§‡āϟ āĻāĻŦāĻ‚ āĻĒā§āϰāϝ⧁āĻ•ā§āϤāĻŋāĻ—āϤ āϏāĻŽā§āĻ­āĻžāĻŦāύāĻž āĻĻā§āĻŦāĻžāϰāĻž āϏ⧀āĻŽāĻžāĻŦāĻĻā§āϧāĨ¤ āĻ…āĻ­āĻŋāĻœā§āĻžāϤāĻž āĻĨ⧇āϕ⧇, āφāĻŽāϰāĻž āĻŦāϞāϤ⧇ āĻĒāĻžāϰāĻŋ āϝ⧇ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽāϟāĻŋ āϝāϤ āϏāĻšāϜ, āĻāϟāĻŋ āϤāϤ āĻŦ⧇āĻļāĻŋ āĻ¸ā§āĻĨāĻŋāϤāĻŋāĻļā§€āϞ āĻ•āĻžāϜ āĻ•āϰ⧇āĨ¤ āϝāĻ–āύ āĻāχ āϧāϰāύ⧇āϰ āĻ¸ā§āϤāϰāϗ⧁āϞāĻŋ āϝ⧋āĻ— āĻ•āϰāĻž āĻšāϝāĻŧ, āϤāĻ–āύ āĻĒāϰāĻŋāĻ•āĻžāĻ āĻžāĻŽā§‹ āĻŦāϜāĻžāϝāĻŧ āϰāĻžāĻ–āĻž āĻ…āύ⧇āĻ• āĻŦ⧇āĻļāĻŋ āĻ•āĻ āĻŋāύ āĻšāϝāĻŧ⧇ āĻĒāĻĄāĻŧ⧇ āĻāĻŦāĻ‚ āĻāĻ•āχ āϏāĻŽāϝāĻŧ⧇ āϝ⧇ āϕ⧋āύāĻ“ āĻŦā§āϝāĻ°ā§āĻĨāϤāĻž āύāĻŋāĻ°ā§āĻŖāϝāĻŧ āĻāĻŦāĻ‚ āĻĒ⧁āύāϰ⧁āĻĻā§āϧāĻžāϰ⧇āϰ āϜāĻ¨ā§āϝ āĻŦā§āϝāϝāĻŧ āĻ•āϰāĻž āϏāĻŽāϝāĻŧ āĻŦ⧃āĻĻā§āϧāĻŋ āĻĒāĻžāϝāĻŧāĨ¤

āϏ⧁āĻĒāĻžāϰāĻŋāĻļ

āϝāĻĻāĻŋ āĻĒā§āϰāĻ¸ā§āϤāĻžāĻŦāĻŋāϤ āĻ¸ā§āĻŸā§‹āϰ⧇āϜ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒāϗ⧁āϞāĻŋāϰ āĻŦāĻžāĻ¸ā§āϤāĻŦāĻžāϝāĻŧāύ āφāĻĒāύāĻžāϰ āĻ•āĻžāϛ⧇ āĻ…āϝ⧌āĻ•ā§āϤāĻŋāĻ• āĻŦāϞ⧇ āĻŽāύ⧇ āĻšāϝāĻŧ (āϜāϟāĻŋāϞ, āĻŦā§āϝāϝāĻŧāĻŦāĻšā§āϞ ...), āϤāĻŦ⧇ āĻĒāϰāĻŋāĻ¸ā§āĻĨāĻŋāϤāĻŋāϟāĻŋ āĻ…āĻ¨ā§āϝ āĻĻāĻŋāĻ• āĻĨ⧇āϕ⧇ āĻĻ⧇āĻ–āĻžāϰ āĻŽāϤ⧋āĨ¤ āϝāĻĨāĻž, āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ āĻ¸ā§āĻĨāĻžāĻĒāĻ¤ā§āϝ āĻŽāĻ§ā§āϝ⧇ āĻ–āύāύ āĻāĻŦāĻ‚ āϕ⧋āĻĄā§‡ āϏāĻŽāĻ¸ā§āϝāĻžāϟāĻŋ āĻ āĻŋāĻ• āĻ•āϰ⧁āύ, āϚāĻŋāĻ¤ā§āϰ⧇āϰ āĻ•āĻŋāϛ⧁ āĻ¸ā§āĻŸā§āϝāĻžāϟāĻŋāĻ• āĻĄāĻžāϟāĻž āĻ¸ā§āĻŸā§āϰāĻžāĻ•āϚāĻžāϰ⧇āϰ āϏāĻžāĻĨ⧇ āφāĻŦāĻĻā§āϧ, āĻŦāĻŋāώāϝāĻŧāĻŦāĻ¸ā§āϤ⧁āϰ āĻāĻ•āϟāĻŋ āĻĻā§āĻŦā§āϝāĻ°ā§āĻĨāĻšā§€āύ āϏāĻ‚āĻœā§āĻžāĻž āĻŦāĻž "āĻ“āϝāĻŧāĻžāĻ°ā§āĻŽāĻŋāĻ‚ āφāĻĒ" āĻāĻŦāĻ‚/āĻ…āĻĨāĻŦāĻž āχāĻŽā§‡āϜ āĻ…ā§āϝāĻžāϏ⧇āĻŽā§āĻŦāϞāĻŋ āĻĒāĻ°ā§āϝāĻžāϝāĻŧ⧇ āϏāĻŽā§āĻĒāĻĻ⧇āϰ āĻĒā§āϰāĻŋ-āĻ•āĻŽā§āĻĒāĻžāχāϞ āĻ•āϰāĻžāϰ āĻĒāĻĻā§āϧāϤāĻŋāĨ¤ āĻāχāĻ­āĻžāĻŦ⧇ āφāĻŽāϰāĻž āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻ…āύ⧁āĻŽāĻžāύāϝ⧋āĻ—ā§āϝ āφāϚāϰāĻŖ āĻāĻŦāĻ‚ āϚāϞāĻŽāĻžāύ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ⧇āϰ āϏāĻŽāĻ¸ā§āϤ āĻĒāϰāĻŋāĻŦ⧇āĻļ āĻāĻŦāĻ‚ āĻĒā§āϰāϤāĻŋāϞāĻŋāĻĒāĻŋāϗ⧁āϞāĻŋāϰ āϜāĻ¨ā§āϝ āĻĢāĻžāχāϞāϗ⧁āϞāĻŋāϰ āĻāĻ•āχ āϏ⧇āϟ āĻĒāĻžāχāĨ¤

āϝāĻĻāĻŋ āφāĻŽāϰāĻž Yii āĻĢā§āϰ⧇āĻŽāĻ“āϝāĻŧāĻžāĻ°ā§āϕ⧇āϰ āϏāĻžāĻĨ⧇ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āωāĻĻāĻžāĻšāϰāϪ⧇ āĻĢāĻŋāϰ⧇ āφāϏāĻŋ āĻāĻŦāĻ‚ āĻāϰ āĻ•āĻžāĻ āĻžāĻŽā§‹āϰ (āϝāĻž āύāĻŋāĻŦāĻ¨ā§āϧ⧇āϰ āωāĻĻā§āĻĻ⧇āĻļā§āϝ āύāϝāĻŧ) āĻ…āύ⧁āϏāĻ¨ā§āϧāĻžāύ āύāĻž āĻ•āϰāĻŋ āϤāĻŦ⧇ āĻĻ⧁āϟāĻŋ āϜāύāĻĒā§āϰāĻŋāϝāĻŧ āĻĒāĻ¨ā§āĻĨāĻž āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰāĻž āϝāĻĨ⧇āĻˇā§āϟ:

  1. āĻāĻ•āϟāĻŋ āĻ…āύ⧁āĻŽāĻžāύāϝ⧋āĻ—ā§āϝ āĻ…āĻŦāĻ¸ā§āĻĨāĻžāύ⧇ āϏāĻŽā§āĻĒāĻĻ āĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰāϤ⧇ āϚāĻŋāĻ¤ā§āϰ āύāĻŋāĻ°ā§āĻŽāĻžāĻŖ āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻž āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰ⧁āύāĨ¤ āĻāϟāĻŋāϰ āĻŽāϤ āĻāĻ•ā§āϏāĻŸā§‡āύāĻļāύ⧇ āĻĒā§āϰāĻ¸ā§āϤāĻžāĻŦāĻŋāϤ/āĻŦāĻžāĻ¸ā§āϤāĻŦāĻžāϝāĻŧāύ āĻ•āϰāĻž āĻšāϝāĻŧ yii2-āĻ¸ā§āĻŸā§āϝāĻžāϟāĻŋāĻ•-āϏāĻŽā§āĻĒāĻĻ.
  2. āϏāĻŽā§āĻĒāĻĻ āĻĄāĻŋāϰ⧇āĻ•ā§āϟāϰāĻŋāϰ āϜāĻ¨ā§āϝ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻšā§āϝāĻžāĻļ āϏāĻ‚āĻœā§āĻžāĻžāϝāĻŧāĻŋāϤ āĻ•āϰ⧁āύ, āϝ⧇āĻŽāύ āφāϞ⧋āϚāύāĻž āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇ āĻāχ āωāĻĒāĻ¸ā§āĻĨāĻžāĻĒāύāĻž (āĻ¸ā§āϞāĻžāχāĻĄ āύāĻ‚ 35 āĻĨ⧇āϕ⧇ āĻļ⧁āϰ⧁)āĨ¤ āϝāĻžāχāĻšā§‹āĻ•, āĻĒā§āϰāϤāĻŋāĻŦ⧇āĻĻāύ⧇āϰ āϞ⧇āĻ–āĻ• āĻļ⧇āώ āĻĒāĻ°ā§āϝāĻ¨ā§āϤ (āĻāĻŦāĻ‚ āĻ•āĻžāϰāĻŖ āĻ›āĻžāĻĄāĻŧāĻžāχ āύāϝāĻŧ!) āĻĒāϰāĻžāĻŽāĻ°ā§āĻļ āĻĻāĻŋāϝāĻŧ⧇āϛ⧇āύ āϝ⧇ āĻŦāĻŋāĻ˛ā§āĻĄ āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇ āϏāĻŽā§āĻĒāĻĻ āĻāĻ•āĻ¤ā§āϰāĻŋāϤ āĻ•āϰāĻžāϰ āĻĒāϰ⧇, āϏ⧇āϗ⧁āϞāĻŋāϕ⧇ āĻāĻ•āϟāĻŋ āϕ⧇āĻ¨ā§āĻĻā§āϰ⧀āϝāĻŧ āĻ¸ā§āĻŸā§‹āϰ⧇āĻœā§‡ (āϝ⧇āĻŽāύ S3) āφāĻĒāϞ⧋āĻĄ āĻ•āϰ⧁āύ, āϝāĻžāϰ āϏāĻžāĻŽāύ⧇ āĻāĻ•āϟāĻŋ CDN āϰāĻžāϖ⧁āύāĨ¤

āĻĄāĻžāωāύāϞ⧋āĻĄāϝ⧋āĻ—ā§āϝ āĻĢāĻžāχāϞ

āĻāĻ•āϟāĻŋ āϕ⧁āĻŦāĻžāϰāύ⧇āϟāϏ āĻ•ā§āϞāĻžāĻ¸ā§āϟāĻžāϰ⧇ āĻāĻ•āϟāĻŋ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āĻ¸ā§āĻĨāĻžāύāĻžāĻ¨ā§āϤāϰ āĻ•āϰāĻžāϰ āϏāĻŽāϝāĻŧ āĻ…āĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ āϝāĻž āĻ…āĻŦāĻļā§āϝāχ āĻ•āĻžāĻ°ā§āϝāĻ•āϰ āĻšāĻŦ⧇ āϤāĻž āĻšāϞ āĻĢāĻžāχāϞ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀āϰ āĻĢāĻžāχāϞāϗ⧁āϞāĻŋ āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰāĻžāĨ¤ āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, āφāĻŽāĻžāĻĻ⧇āϰ āφāĻŦāĻžāϰ āĻāĻ•āϟāĻŋ āĻĒāĻŋāĻāχāϚāĻĒāĻŋ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āϰāϝāĻŧ⧇āϛ⧇ āϝāĻž āĻāĻ•āϟāĻŋ āφāĻĒāϞ⧋āĻĄ āĻĢāĻ°ā§āĻŽā§‡āϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āĻĢāĻžāχāϞāϗ⧁āϞāĻŋ āĻ—ā§āϰāĻšāĻŖ āĻ•āϰ⧇, āĻ…āĻĒāĻžāϰ⧇āĻļāύ āϚāϞāĻžāĻ•āĻžāϞ⧀āύ āϤāĻžāĻĻ⧇āϰ āϏāĻžāĻĨ⧇ āĻ•āĻŋāϛ⧁ āĻ•āϰ⧇ āĻāĻŦāĻ‚ āϏ⧇āϗ⧁āϞāĻŋāϕ⧇ āĻĢ⧇āϰāϤ āĻĒāĻžāĻ āĻžāϝāĻŧāĨ¤

Kubernetes-āĻ, āĻāχ āĻĢāĻžāχāϞāϗ⧁āϞāĻŋ āϝ⧇āĻ–āĻžāύ⧇ āĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰāĻž āωāϚāĻŋāϤ āϤāĻž āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ⧇āϰ āϏāĻŽāĻ¸ā§āϤ āĻĒā§āϰāϤāĻŋāϞāĻŋāĻĒāĻŋāϗ⧁āϞāĻŋāϰ āϜāĻ¨ā§āϝ āϏāĻžāϧāĻžāϰāĻŖ āĻšāĻ“āϝāĻŧāĻž āωāϚāĻŋāϤāĨ¤ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ⧇āϰ āϜāϟāĻŋāϞāϤāĻž āĻāĻŦāĻ‚ āĻāχ āĻĢāĻžāχāϞāϗ⧁āϞāĻŋāϰ āĻ…āĻ§ā§āϝāĻŦāϏāĻžāϝāĻŧāϕ⧇ āϏāĻ‚āĻ—āĻ āĻŋāϤ āĻ•āϰāĻžāϰ āĻĒā§āϰāϝāĻŧā§‹āϜāύ⧀āϝāĻŧāϤāĻžāϰ āωāĻĒāϰ āύāĻŋāĻ°ā§āĻ­āϰ āĻ•āϰ⧇, āωāĻĒāϰ⧇ āωāĻ˛ā§āϞāĻŋāĻ–āĻŋāϤ āĻļ⧇āϝāĻŧāĻžāĻ°ā§āĻĄ āĻĄāĻŋāĻ­āĻžāχāϏ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒāϗ⧁āϞāĻŋ āĻāĻŽāύ āĻāĻ•āϟāĻŋ āϜāĻžāϝāĻŧāĻ—āĻž āĻšāϤ⧇ āĻĒāĻžāϰ⧇, āϤāĻŦ⧇, āφāĻŽāϰāĻž āĻĻ⧇āĻ–āϤ⧇ āĻĒāĻžāĻšā§āĻ›āĻŋ, āϤāĻžāĻĻ⧇āϰ āĻ¤ā§āϰ⧁āϟāĻŋ āϰāϝāĻŧ⧇āϛ⧇āĨ¤

āϏ⧁āĻĒāĻžāϰāĻŋāĻļ

āĻāĻ•āϟāĻžāχ āϏāĻŽāĻžāϧāĻžāύ S3-āϏāĻžāĻŽāĻžā§āϜāĻ¸ā§āϝāĻĒā§‚āĻ°ā§āĻŖ āĻ¸ā§āĻŸā§‹āϰ⧇āϜ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ (āĻāĻŽāύāĻ•āĻŋ āϝāĻĻāĻŋ āĻāϟāĻŋ āĻŽāĻŋāύāĻŋāĻ“āϰ āĻŽāϤ⧋ āĻ¸ā§āĻŦ-āĻšā§‹āĻ¸ā§āĻŸā§‡āĻĄ āĻŦāĻŋāĻ­āĻžāĻ—āĻ“ āĻšāϝāĻŧ)āĨ¤ S3 āĻ āĻ¸ā§āϝ⧁āχāϚ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ⧇āϰ āĻĒā§āϰāϝāĻŧā§‹āϜāύ āĻšāĻŦ⧇ āϕ⧋āĻĄ āĻ¸ā§āϤāϰ⧇, āĻāĻŦāĻ‚ āϏāĻžāĻŽāύ⧇āϰ āĻĒā§āϰāĻžāĻ¨ā§āϤ⧇ āϕ⧀āĻ­āĻžāĻŦ⧇ āϏāĻžāĻŽāĻ—ā§āϰ⧀ āĻŦāĻŋāϤāϰāĻŖ āĻ•āϰāĻž āĻšāĻŦ⧇, āφāĻŽāϰāĻž āχāϤāĻŋāĻŽāĻ§ā§āϝ⧇āχ āĻ•āϰ⧇āĻ›āĻŋ āϞāĻŋāϖ⧇āϛ⧇āύ.

āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀āϰ āϏ⧇āĻļāύ

āφāϞāĻžāĻĻāĻžāĻ­āĻžāĻŦ⧇, āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀āϰ āϏ⧇āĻļāύ⧇āϰ āĻ¸ā§āĻŸā§‹āϰ⧇āĻœā§‡āϰ āϏāĻ‚āĻ—āĻ āύāϟāĻŋ āϞāĻ•ā§āĻˇā§āϝ āĻ•āϰāĻžāϰ āĻŽāϤ⧋āĨ¤ āĻĒā§āϰāĻžāϝāĻŧāĻļāχ āĻāϗ⧁āϞāĻŋ āĻĄāĻŋāĻ¸ā§āϕ⧇ āĻĨāĻžāĻ•āĻž āĻĢāĻžāχāϞāϗ⧁āϞāĻŋāĻ“ āĻĨāĻžāϕ⧇, āϝāĻž āϕ⧁āĻŦāĻžāϰāύ⧇āϟāϏ⧇āϰ āĻĒāϰāĻŋāĻĒā§āϰ⧇āĻ•ā§āώāĻŋāϤ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀āϰ āĻ•āĻžāĻ› āĻĨ⧇āϕ⧇ āĻ•ā§āϰāĻŽāĻžāĻ—āϤ āĻ…āύ⧁āĻŽā§‹āĻĻāύ⧇āϰ āĻ…āύ⧁āϰ⧋āϧ⧇āϰ āĻĻāĻŋāϕ⧇ āύāĻŋāϝāĻŧ⧇ āϝāĻžāϝāĻŧ āϝāĻĻāĻŋ āϤāĻžāϰ āĻ…āύ⧁āϰ⧋āϧ āĻ…āĻ¨ā§āϝ āĻĒāĻžāĻ¤ā§āϰ⧇ āĻļ⧇āώ āĻšāϝāĻŧāĨ¤

āϏāĻŽāĻ¸ā§āϝāĻžāϟāĻŋ āφāĻ‚āĻļāĻŋāĻ•āĻ­āĻžāĻŦ⧇ āϚāĻžāϞ⧁ āĻ•āϰ⧇ āϏāĻŽāĻžāϧāĻžāύ āĻ•āϰāĻž āĻšāϝāĻŧ stickySessions āĻĒā§āϰāĻŦ⧇āĻļ⧇āϰ āωāĻĒāϰ (āĻŦ⧈āĻļāĻŋāĻˇā§āĻŸā§āϝāϟāĻŋ āϏāĻŽāĻ¸ā§āϤ āϜāύāĻĒā§āϰāĻŋāϝāĻŧ āχāύāĻ—ā§āϰ⧇āϏ āĻ•āĻ¨ā§āĻŸā§āϰ⧋āϞāĻžāϰ⧇ āϏāĻŽāĻ°ā§āĻĨāĻŋāϤ - āφāϰ⧋ āĻŦāĻŋāĻ¸ā§āϤāĻžāϰāĻŋāϤ āϜāĻžāύāĻžāϰ āϜāĻ¨ā§āϝ, āĻĻ⧇āϖ⧁āύ āφāĻŽāĻžāĻĻ⧇āϰ āĻĒāĻ°ā§āϝāĻžāϞ⧋āϚāύāĻž)āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύāϟāĻŋāϰ āϏāĻžāĻĨ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀āϕ⧇ āĻāĻ•āϟāĻŋ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻĒāĻĄā§‡āϰ āϏāĻžāĻĨ⧇ āφāĻŦāĻĻā§āϧ āĻ•āϰāϤ⧇:

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: /

āϤāĻŦ⧇ āĻāϟāĻŋ āĻŦāĻžāϰāĻŦāĻžāϰ āĻ¸ā§āĻĨāĻžāĻĒāύāĻžāϰ āϏāĻžāĻĨ⧇ āϏāĻŽāĻ¸ā§āϝāĻžāϗ⧁āϞāĻŋ āĻĻā§‚āϰ āĻ•āϰāĻŦ⧇ āύāĻžāĨ¤

āϏ⧁āĻĒāĻžāϰāĻŋāĻļ

āĻāĻ•āϟāĻŋ āφāϰ⧋ āϏāĻ āĻŋāĻ• āωāĻĒāĻžāϝāĻŧ āφāĻŦ⧇āĻĻāύ āĻ¸ā§āĻĨāĻžāύāĻžāĻ¨ā§āϤāϰ āĻ•āϰāĻž āĻšāĻŦ⧇ āĻŽā§‡āĻŽāĻ•ā§āϝāĻžāĻļ⧇āĻĄ, āϰ⧇āĻĄāĻŋāϏ āĻāĻŦāĻ‚ āĻ…āύ⧁āϰ⧂āĻĒ āϏāĻŽāĻžāϧāĻžāύāϗ⧁āϞāĻŋāϤ⧇ āϏ⧇āĻļāύ āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰāĻž - āϏāĻžāϧāĻžāϰāĻŖāĻ­āĻžāĻŦ⧇, āĻĢāĻžāχāϞ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒāϗ⧁āϞāĻŋ āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖāϰ⧂āĻĒ⧇ āĻĒāϰāĻŋāĻ¤ā§āϝāĻžāĻ— āĻ•āϰ⧁āύāĨ¤

āωāĻĒāϏāĻ‚āĻšāĻžāϰ

āĻŸā§‡āĻ•ā§āϏāĻŸā§‡ āφāϞ⧋āϚāύāĻž āĻ•āϰāĻž āĻ…āĻŦāĻ•āĻžāĻ āĻžāĻŽā§‹ āϏāĻŽāĻžāϧāĻžāύāϗ⧁āϞāĻŋ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āĻ…āĻ¸ā§āĻĨāĻžāϝāĻŧā§€ "āĻ•ā§āĻ°ā§āϝāĻžāϚ" āĻāϰ āĻŦāĻŋāĻ¨ā§āϝāĻžāϏ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻžāϰ āϝ⧋āĻ—ā§āϝ (āϝ⧇āϟāĻŋ āχāĻ‚āϰ⧇āϜāĻŋāϤ⧇ āĻ“āϝāĻŧāĻžāĻ°ā§āĻ•āĻ…ā§āϝāĻžāϰāĻžāωāĻ¨ā§āĻĄ āĻšāĻŋāϏāĻžāĻŦ⧇ āφāϰāĻ“ āϏ⧁āĻ¨ā§āĻĻāϰ āĻļā§‹āύāĻžāĻšā§āϛ⧇)āĨ¤ āĻāϗ⧁āϞāĻŋ āϕ⧁āĻŦāĻžāϰāύ⧇āĻŸā§‡ āĻāĻ•āϟāĻŋ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āĻ¸ā§āĻĨāĻžāύāĻžāĻ¨ā§āϤāϰ āĻ•āϰāĻžāϰ āĻĒā§āϰāĻĨāĻŽ āĻĒāĻ°ā§āϝāĻžāϝāĻŧ⧇ āĻĒā§āϰāĻžāϏāĻ™ā§āĻ—āĻŋāĻ• āĻšāϤ⧇ āĻĒāĻžāϰ⧇, āĻ•āĻŋāĻ¨ā§āϤ⧁ āϰ⧁āϟ āĻ•āϰāĻž āωāϚāĻŋāϤ āύāϝāĻŧāĨ¤

āϏāĻžāϧāĻžāϰāĻŖ āĻĒā§āϰāĻ¸ā§āϤāĻžāĻŦāĻŋāϤ āĻĒāĻĨ āĻšāϞ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύāϟāĻŋāϰ āφāĻ°ā§āĻ•āĻŋāĻŸā§‡āĻ•āϚāĻžāϰāĻžāϞ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ⧇āϰ āĻĒāĻ•ā§āώ⧇ āϤāĻžāĻĻ⧇āϰ āĻĒāϰāĻŋāĻ¤ā§āϰāĻžāĻŖ āĻĒ⧇āϤ⧇ āϝāĻž āχāϤāĻŋāĻŽāĻ§ā§āϝ⧇ āĻ…āύ⧇āϕ⧇āϰ āĻ•āĻžāϛ⧇ āĻĒāϰāĻŋāϚāĻŋāϤāĨ¤ 12-āĻĢā§āϝāĻžāĻ•ā§āϟāϰ āĻ…ā§āϝāĻžāĻĒ. āϝāĻžāχāĻšā§‹āĻ•, āĻāϟāĻŋ - āφāĻŦ⧇āĻĻāύāϟāĻŋāϕ⧇ āĻāĻ•āϟāĻŋ āϰāĻžāĻˇā§āĻŸā§āϰāĻšā§€āύ āφāĻ•āĻžāϰ⧇ āύāĻŋāϝāĻŧ⧇ āφāϏāĻž - āĻ…āύāĻŋāĻŦāĻžāĻ°ā§āϝāĻ­āĻžāĻŦ⧇ āĻāϰ āĻ…āĻ°ā§āĻĨ āĻšāϞ āϕ⧋āĻĄā§‡ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ⧇āϰ āĻĒā§āϰāϝāĻŧā§‹āϜāύ āĻšāĻŦ⧇ āĻāĻŦāĻ‚ āĻāĻ–āĻžāύ⧇ āĻŦā§āϝāĻŦāϏāĻžāϰ āϏāĻ•ā§āώāĻŽāϤāĻž/āĻĒā§āϰāϝāĻŧā§‹āϜāύ⧀āϝāĻŧāϤāĻž āĻāĻŦāĻ‚ āύāĻŋāĻ°ā§āĻŦāĻžāϚāĻŋāϤ āĻĒāĻĨāϟāĻŋ āĻŦāĻžāĻ¸ā§āϤāĻŦāĻžāϝāĻŧāύ āĻ“ āĻŦāϜāĻžāϝāĻŧ āϰāĻžāĻ–āĻžāϰ āϏāĻŽā§āĻ­āĻžāĻŦāύāĻžāϰ āĻŽāĻ§ā§āϝ⧇ āĻāĻ•āϟāĻŋ āĻ­āĻžāϰāϏāĻžāĻŽā§āϝ āϖ⧁āρāĻœā§‡ āĻĒāĻžāĻ“āϝāĻŧāĻž āϗ⧁āϰ⧁āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖāĨ¤ .

āĻĻā§āϰāĻˇā§āϟāĻŦā§āϝ

āφāĻŽāĻžāĻĻ⧇āϰ āĻŦā§āϞāϗ⧇āĻ“ āĻĒāĻĄāĻŧ⧁āύ:

āωāĻ¤ā§āϏ: www.habr.com

āĻāĻ•āϟāĻŋ āĻŽāĻ¨ā§āϤāĻŦā§āϝ āϜ⧁āĻĄāĻŧ⧁āύ