VK Cloud logo

Canary Deployment Ingress баптауы

Бұл мақала Kubernetes кластерін жайып орналастыруға және онда Canary Deployment баптауға Nginx Ingress Annotations көмегімен көмектеседі: echo-сервер үшін Canary Deployment сценарийін орындауға және трафиктің конфигурациялық файлға сәйкес бөлінетініне көз жеткізуге мүмкіндік береді.

Дайындық қадамдары

  1. Жасаңыз Kubernetes кластерін өзекті нұсқада, егер бұл әлі жасалмаған болса.

  2. kubectl көмегімен кластерге қосылыңыз.

  3. Тесттік қосымша жасаңыз:

    1. Жоба үшін жаңа аттар кеңістігін жасаңыз:

      kubectl create ns echo-production
    2. Мысалы, http-svc манифесі негізінде Kubernetes ресурсін жасаңыз:

    kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/docs/examples/http-svc.yaml -n echo-production

1. Ingress ресурсін жасаңыз

  1. http-svc.ingress манифест файлын келесі мазмұнмен жасаңыз:

  2. Манифесті кластерде қолданыңыз:

    kubectl apply -f http-svc.ingress -n echo-production

    Нәтижесінде қосымша жасалады және сервер echo.com адресінен келетін барлық сұрауларға жауап бере бастайды.

2. Жайып орналастырылған қосымшаның көшірмесін жасаңыз

  1. Қосымша үшін аттар кеңістігінің Canary-нұсқасын жасаңыз:

    kubectl create ns echo-canary
  2. Қосымшаның Canary-нұсқасын жайып орналастырыңыз:

    kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/docs/examples/http-svc.yaml -n echo-canary
  3. Ingress конфигурация файлының Canary-нұсқасын жасаңыз:

  4. Манифесті кластерде қолданыңыз:

    kubectl apply -f http-svc.ingress.canary -n echo-canary

3. Трафиктің бөлінуінің жұмысқа қабілеттілігін тексеріңіз

  1. Kubernetes Dashboard көмегімен кластерге қосылыңыз.

  2. Namespaces бөліміне өтіңіз.

  3. Namespace сүзгісін All мәніне ауыстырыңыз.

  4. Бүйірлік мәзірдің төменгі бөлігінде Ingresses таңдаңыз.

    Барлық қолжетімді Ingresses тізімі көрсетіледі.

  5. http-svc үшін Endpoints бағанында бір IP-мекенжай көрсетілгеніне көз жеткізіңіз.

  6. Орнатылған конфигурацияға сәйкес сұраулардың бөлінуін count.rb скриптін орындап тексеріңіз:

    ruby count.rb

Сәтті нәтиженің мысалы:

{"echo-production"=>896, "echo-canary"=>104}

Пайдаланылмайтын ресурстарды жойыңыз

Жұмыс істеп тұрған кластер тарификацияланады және есептеу ресурстарын тұтынады. Егер сіз кластерді тестілеу мақсатында жасап, ол енді қажет болмаса: