текст перекладу
Огляд проєкту
У цьому проєкті ми розгортаємо 10 мікросервісів на кластері Kubernetes за допомогою конвеєра Jenkins. Процес починається з запуску базового сервера EC2, на якому виконуються всі завдання. Після підключення до сервера через SSH, ми встановлюємо необхідні інструменти, такі як Docker, Jenkins, Java, eksctl
та kubectl
. Далі ми налаштовуємо кластер Kubernetes за допомогою AWS Elastic Kubernetes Service (EKS). Нарешті, ми конфігуруємо багатогілковий конвеєр Jenkins для отримання коду з GitHub і розгортання мікросервісів на кластері EKS, ефективно завершуючи процес розгортання… почнемо
Кроки для налаштування робочого процесу 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: Запуск базового інстансу
- Перейдіть в консоль AWS і запустіть інстанс з наступними налаштуваннями:
а. AMI = ubuntu 24
б. Тип = t2.large
в. Зберігання = 30GB
г. Відкриті порти = 22, 80, 443, 8080
- Підключіться до вашого EC2 через SSH >> натисніть на "Connect" >> "SSH Client"
- Скопіюйте команду і відкрийте командний рядок, розташувавши його в папці "Downloads", де зберігається ваш ключ (.pem файл)
Запустіть команду
Крок 2: Налаштування IAM користувача з правами доступу
- Перейдіть в консоль AWS і шукайте IAM, потім натискайте "User" >> "Create User"
Дотримуйтесь вказівок, як показано вище
Прикріпіть специфічні політики, як показано вище
AmazonEC2FullAccess
AmazonEKSClusterPolicy
AmazonEKSWorkerNodePolicy
AWSCloudFormationFullAccess
IAMFullAccess
Завантажте ім’я користувача і пароль
2. Створіть вбудовану політику для eks
Натисніть на "Create Inline Policy" >> JSON і введіть наступний скрипт
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "eks:*",
"Resource": "*"
}
]
}
3. Після цього створіть ключі доступу та секретні ключі для роботи з AWS CLI на базовому EC2
- Завантажте ваші секретні і ключі доступу, які ми використовуватимемо пізніше в проєкті.
Крок 3: Розгортання кластера Kubernetes
1.
текст перекладу
перейдіть до вашого EC2 і запустіть
aws configure
відкрийте .csv файл для надання ключів доступу та секретних ключів
-
Тепер ви увійшли в AWS через CLI з обмеженими правами доступу, наданими на попередніх етапах
-
Створіть кластер EKS за допомогою наступної команди
eksctl create cluster --name=EKS-1 --region=ap-south-1 --zones=ap-south-1a,ap-south-1b --without-nodegroup
- Ассоціація OIDC постачальника → OIDC постачальник (OpenID Connect provider) є чимось на зразок служби перевірки особистості для додатків. Він гарантує, що люди або системи, які отримують доступ до вашого додатку або хмарних ресурсів, є тими, за кого вони себе видають.
Уявіть, що ви хочете потрапити в безпечну будівлю. На вході:
- Ви показуєте свій ID картку, щоб підтвердити свою особистість.
- Охоронець перевіряє вашу ID картку в надійній базі даних.
У цьому випадку:
- Ваша ID картка — це ідентифікаційний токен.
- OIDC постачальник — це надійна система (база даних), яка підтверджує, що ваша ID картка дійсна.
eksctl utils associate-iam-oidc-provider --region ap-south-1 --cluster EKS-1 --approve
- Створення 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
6. оновіть kubeconfig → Ця команда aws eks update-kubeconfig
використовується для налаштування вашого локального інструменту командного рядка Kubernetes kubectl
для взаємодії з кластером Amazon EKS (Elastic Kubernetes Service).
aws eks update-kubeconfig --region ap-south-1 --name EKS-1
кластер створений за допомогою aws-cli
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