TGViewer
DeVops Библиотека DeVops Библиотека @devops_teleg · 9.46K subscribers
Post #129 2.34K
🔁 CI/CD и Kubernetes: как внедрить лучшие практики контейнеров

☸️ Пример манифеста для Kubernetes


apiVersion: apps/v1
kind: Deployment
metadata:
name: app-deployment
spec:
replicas: 3
selector:
matchLabels:
app: your-app
template:
metadata:
labels:
app: your-app
spec:
containers:
- name: app
image: yourrepo/app:latest
resources:
limits:
memory: "512Mi"
cpu: "1000m"
requests:
memory: "256Mi"
cpu: "500m"
securityContext:
readOnlyRootFilesystem: true
allowPrivilegeEscalation: false
runAsNonRoot: true
capabilities:
drop:
- ALL
livenessProbe:
httpGet:
path: /health
port: 8080
initialDelaySeconds: 10
periodSeconds: 20
readinessProbe:
httpGet:
path: /ready
port: 8080
initialDelaySeconds: 5
periodSeconds: 10


🛡 Безопасность, ограничение ресурсов, probes — всё в боевом шаблоне.

---

### 🛠 Пример CI-пайплайна (GitLab CI)


stages:
- build
- test
- push

variables:
DOCKER_BUILDKIT: 1

build:
stage: build
image: docker:latest
services:
- docker:dind
script:
- docker build --target production -t yourrepo/app:$CI_COMMIT_SHA .
- docker tag yourrepo/app:$CI_COMMIT_SHA yourrepo/app:latest

test:
stage: test
image: yourrepo/app:$CI_COMMIT_SHA
script:
- ./run_tests.sh

push:
stage: push
script:
- echo "$CI_REGISTRY_PASSWORD" | docker login -u "$CI_REGISTRY_USER" --password-stdin
- docker push yourrepo/app:$CI_COMMIT_SHA
- docker push yourrepo/app:latest
only:
- main


⚡ Использует:
- BuildKit для кэширования и ускорения сборки
- multi-stage Dockerfile
- Тестирует контейнер перед пушем
- Пушит только из main

📌 На заметку
- Используй opa-gatekeeper или Kyverno для валидации безопасности в Kubernetes
- В CI сканируй образы через Trivy, Grype или Snyk
- Для прода лучше использовать immutable теги, например yourrepo/app:1.4.23

🧠 Контейнер — это артефакт, который живёт дальше: в k8s, CI/CD, observability. Поэтому его здоровье — это здоровье всего DevOps-процесса.
  • 👍 7
  • 🔥 4
More from @devops_teleg
  1. Sep 23, 202620 примеров кода на Rust: чистый и идиоматичный код от функций до traits и многопоточности…
  2. Sep 13, 2026🔥 askWAM - инструмент для тихого получения Microsoft Entra access tokens через Windows We…
  3. Sep 13, 2026🔥 Хочешь быстрее расти в IT? Хватит учиться в одиночку Окружение решает больше, чем кажет…
  4. Sep 9, 2026📌 GPT-6 Astra прошла Portal за сутки Твиттерский пользователь cozyblaze запустил GPT-6 As…
  5. Sep 2, 2026Записал 1 ГБ, а SSD принял 10. Что такое write amplification В LSM-tree запись не ложится…
  6. Aug 24, 2026Физически корректный ray tracer всего в 99 строках C++ smallpt от Kevin Beason - один из с…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →