Skip to content

Commit

Permalink
Merge pull request #14 from a3888s/dev
Browse files Browse the repository at this point in the history
Додано розгортання  через Helm для моніторингу кластеру Kubernetes.
  • Loading branch information
a3888s authored Dec 24, 2024
2 parents 493345a + c2b6730 commit 9712ffd
Show file tree
Hide file tree
Showing 9 changed files with 65 additions and 7 deletions.
2 changes: 1 addition & 1 deletion .env
Original file line number Diff line number Diff line change
@@ -1 +1 @@
DOCKER_TAG=v1.0.0
DOCKER_TAG=v1.0.1
8 changes: 8 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -150,6 +150,14 @@
![CI/CD](screens/5.png)
---

## 💻 Моніторинг

Додано розгортання `kube-prometheus-stack` через Helm для моніторингу кластеру Kubernetes.

![Prometheus](screens/6.png)

---

## 🏁 Висновок

Проект демонструє ефективний підхід до автоматизації DevOps 🔧. Використання Terraform 📜 для управління інфраструктурою, Kubernetes 🐳 для оркестрації контейнерів та CI/CD ⚙️ забезпечує швидкість ⏩, надійність 🛡️ і масштабованість 📈 для сучасних розробників 👨‍💻.
Expand Down
4 changes: 2 additions & 2 deletions app/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ def do_GET(self):
</style>
</head>
<body>
<h1>StepFinalProject v1.0.0</h1>
<h1>StepFinalProject v1.0.1</h1>
</body>
</html>
"""
Expand All @@ -41,6 +41,6 @@ def do_GET(self):
# Основна частина програми
if __name__ == "__main__":
server = HTTPServer(("0.0.0.0", 8080), SimpleHandler) # Ініціалізація сервера на порту 8080
version = "v1.0.0"
version = "v1.0.1"
print(f"StepFinalProject {version}") # Виведення інформації про запуск у консоль
server.serve_forever() # Запуск сервера для обробки запитів
2 changes: 1 addition & 1 deletion app/k8s/dev/deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,6 @@ spec:
spec:
containers:
- name: python-backend
image: a3888s/step-final-project:v1.0.0
image: a3888s/step-final-project:v1.0.1
ports:
- containerPort: 8080 # Відкритий порт контейнера
2 changes: 1 addition & 1 deletion app/k8s/prod/deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,6 @@ spec:
spec:
containers:
- name: python-backend
image: a3888s/step-final-project-prod:v1.0.0
image: a3888s/step-final-project-prod:v1.0.1
ports:
- containerPort: 8080 # Відкритий порт контейнера
2 changes: 1 addition & 1 deletion app/requirements.txt
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
flask==2.1.2
requests==2.28.1
requests==2.28.1
Binary file added screens/6.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion terraform/eks/eks-worker-nodes.tf
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ resource "aws_eks_node_group" "danit-amd" {

# Налаштування вузлів
ami_type = "AL2_x86_64" # Тип AMI для вузлів (Amazon Linux 2 для x86)
instance_types = ["t3.medium"] # Тип інстанса для вузлів
instance_types = ["t3.large"] # Тип інстанса для вузлів

# Додавання міток для вузлів
labels = {
Expand Down
50 changes: 50 additions & 0 deletions terraform/eks/prometheus-stack.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
resource "helm_release" "prometheus_stack" {
name = "kube-prometheus-stack" # Назва релізу Helm
repository = "https://prometheus-community.github.io/helm-charts" # Репозиторій Helm для Prometheus
chart = "kube-prometheus-stack" # Назва чарту
version = "45.15.0" # Версія чарту
namespace = "monitoring" # Kubernetes namespace для розгортання
create_namespace = true # Створення namespace, якщо його не існує

timeout = 900 # Тайм-ауту для уникнення помилок перевищення часу

values = [
<<EOF
# Налаштування Grafana
grafana:
enabled: true
adminPassword: "admin" # Пароль для входу в Grafana
ingress:
enabled: true # Увімкнення Ingress для Grafana
annotations:
kubernetes.io/ingress.class: nginx # Клас Ingress nginx
hosts:
- "grafana.a3888s.test-danit.com" # Хост для доступу до Grafana
tls: [] # Якщо потрібен TLS, додайте конфігурацію
# Налаштування Prometheus
prometheus:
ingress:
enabled: true # Увімкнення Ingress для Prometheus
annotations:
kubernetes.io/ingress.class: nginx # Клас Ingress nginx
hosts:
- "prometheus.a3888s.test-danit.com" # Хост для доступу до Prometheus
tls: [] # Якщо потрібен TLS, додайте конфігурацію
# Налаштування Alertmanager
alertmanager:
ingress:
enabled: true # Увімкнення Ingress для Alertmanager
annotations:
kubernetes.io/ingress.class: nginx # Клас Ingress nginx
hosts:
- "alertmanager.a3888s.test-danit.com" # Хост для доступу до Alertmanager
tls: [] # Якщо потрібен TLS, додайте конфігурацію
# Налаштування Node Exporter
nodeExporter:
enabled: true # Увімкнення Node Exporter для збору метрик вузлів
EOF
]
}

0 comments on commit 9712ffd

Please sign in to comment.