Розгортання 10 мікросервісів на кластері Kubernetes через CI/CD конвеєр Jenkins

текст перекладу

Огляд проєкту

У цьому проєкті ми розгортаємо 10 мікросервісів на кластері Kubernetes за допомогою конвеєра Jenkins. Процес починається з запуску базового сервера EC2, на якому виконуються всі завдання. Після підключення до сервера через SSH, ми встановлюємо необхідні інструменти, такі як Docker, Jenkins, Java, eksctl та kubectl. Далі ми налаштовуємо кластер Kubernetes за допомогою AWS Elastic Kubernetes Service (EKS). Нарешті, ми конфігуруємо багатогілковий конвеєр Jenkins для отримання коду з GitHub і розгортання мікросервісів на кластері EKS, ефективно завершуючи процес розгортання… почнемо

pic

Кроки для налаштування робочого процесу DevOps з Kubernetes і Jenkins →

Крок 1: Запуск базового інстансу

  • Ініціалізуйте ваше середовище, створивши хмарний інстанс або сервер для розміщення вашого налаштування.

Крок 2: Налаштування IAM користувача з правами доступу

  • Створіть IAM користувача з конкретними ролями і політиками для керування доступом.

Крок 3: Розгортання кластера Kubernetes

  • Налаштуйте і конфігуруйте кластер Kubernetes для управління контейнеризованими додатками.

Крок 4: Встановлення необхідних інструментів DevOps

  • Встановіть необхідні інструменти, такі як Docker, kubectl та Helm для управління вашим робочим процесом.

Крок 5: Налаштування Jenkins

  • Розгорніть і налаштуйте Jenkins як ваш інструмент для безперервної інтеграції та безперервного розгортання (CI/CD).

Крок 6: Створення і налаштування Jenkins Pipeline

  • Спроектуйте конвеєр Jenkins для автоматизації процесів збірки, тестування та розгортання.

Крок 1: Запуск базового інстансу

  1. Перейдіть в консоль AWS і запустіть інстанс з наступними налаштуваннями:

а. AMI = ubuntu 24

б. Тип = t2.large

в. Зберігання = 30GB

г. Відкриті порти = 22, 80, 443, 8080

pic

pic

pic

pic

  1. Підключіться до вашого EC2 через SSH >> натисніть на "Connect" >> "SSH Client"

pic

  1. Скопіюйте команду і відкрийте командний рядок, розташувавши його в папці "Downloads", де зберігається ваш ключ (.pem файл)

pic

Запустіть команду

pic

Крок 2: Налаштування IAM користувача з правами доступу

  1. Перейдіть в консоль AWS і шукайте IAM, потім натискайте "User" >> "Create User"

pic

Дотримуйтесь вказівок, як показано вище

pic

Прикріпіть специфічні політики, як показано вище

  • AmazonEC2FullAccess
  • AmazonEKSClusterPolicy
  • AmazonEKSWorkerNodePolicy
  • AWSCloudFormationFullAccess
  • IAMFullAccess

pic

Завантажте ім’я користувача і пароль

2. Створіть вбудовану політику для eks

pic

Натисніть на "Create Inline Policy" >> JSON і введіть наступний скрипт

{  
 "Version": "2012-10-17",  
 "Statement": [  
 {  
 "Effect": "Allow",  
 "Action": "eks:*",  
 "Resource": "*"  
 }  
 ]  
}

pic

pic

pic

3. Після цього створіть ключі доступу та секретні ключі для роботи з AWS CLI на базовому EC2

pic

pic

  1. Завантажте ваші секретні і ключі доступу, які ми використовуватимемо пізніше в проєкті.

Крок 3: Розгортання кластера Kubernetes

1.
текст перекладу
перейдіть до вашого EC2 і запустіть

aws configure

pic

відкрийте .csv файл для надання ключів доступу та секретних ключів

  1. Тепер ви увійшли в AWS через CLI з обмеженими правами доступу, наданими на попередніх етапах

  2. Створіть кластер EKS за допомогою наступної команди

eksctl create cluster --name=EKS-1 --region=ap-south-1 --zones=ap-south-1a,ap-south-1b --without-nodegroup

pic

  1. Ассоціація OIDC постачальника → OIDC постачальник (OpenID Connect provider) є чимось на зразок служби перевірки особистості для додатків. Він гарантує, що люди або системи, які отримують доступ до вашого додатку або хмарних ресурсів, є тими, за кого вони себе видають.

Уявіть, що ви хочете потрапити в безпечну будівлю. На вході:

  1. Ви показуєте свій ID картку, щоб підтвердити свою особистість.
  2. Охоронець перевіряє вашу ID картку в надійній базі даних.

У цьому випадку:

  • Ваша ID картка — це ідентифікаційний токен.
  • OIDC постачальник — це надійна система (база даних), яка підтверджує, що ваша ID картка дійсна.
eksctl utils associate-iam-oidc-provider --region ap-south-1 --cluster EKS-1 --approve

pic

  1. Створення Node Group:
eksctl create nodegroup --cluster=EKS-1 --region=ap-south-1 --name=node2 --node-type=t3.medium --nodes=3 --nodes-min=2 --nodes-max=4 --node-volume-size=20 --ssh-access --ssh-public-key=DevOps --managed --asg-access --external-dns-access --full-ecr-access --appmesh-access --alb-ingress-access

pic

6. оновіть kubeconfig → Ця команда aws eks update-kubeconfig використовується для налаштування вашого локального інструменту командного рядка Kubernetes kubectl для взаємодії з кластером Amazon EKS (Elastic Kubernetes Service).

aws eks update-kubeconfig --region ap-south-1 --name EKS-1

pic

кластер створений за допомогою aws-cli

pic

Node створений кластером

а. Створіть namespace:

Namespace в Kubernetes — це як папка для організації ресурсів. Вона допомагає групувати і керувати об'єктами Kubernetes (наприклад, подами, сервісами або секретами), які належать до тієї ж команди, проєкту чи середовища.

kubectl create namespace webapps  
kubectl get namespaces

b. Створення Service Account:

Перекладено з: Deploying -10 Microservices on Kubernetes cluster via Jenkins CI/CD Pipeline

Leave a Reply

Your email address will not be published. Required fields are marked *