[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-kubernetes-chto-takoe-helm":3},{"id":4,"slug":5,"topicId":6,"topicSlug":7,"topicName":8,"topicEmoji":9,"question":10,"answer":11,"codeLang":12,"codeSrc":12,"important":12,"commonMistakes":12,"modernUsage":12,"difficulty":13,"tags":14,"related":15,"progress":16,"seo":17},879,"chto-takoe-helm",26,"kubernetes","Kubernetes","☸️","Что такое Helm?","Helm — пакетный менеджер для Kubernetes, аналог apt\u002Fyum для Linux или Maven для Java. Позволяет описывать, устанавливать и обновлять приложения в Kubernetes как единый пакет.\n\n### Основные понятия\n\n| Понятие | Описание | Аналогия |\n|---|---|---|\n| Chart | Пакет Helm с шаблонами K8s-ресурсов | Maven-артефакт |\n| Values | Файл параметров (`values.yaml`) для шаблонов | application.properties |\n| Release | Конкретная установка Chart'а в кластер | Запущенное приложение |\n| Repository | Хранилище Chart'ов | Maven Repository |\n\n### Структура Chart'а\n\n```\nmy-spring-app\u002F\n  Chart.yaml          # Метаданные (имя, версия, описание)\n  values.yaml         # Значения по умолчанию\n  templates\u002F          # Шаблоны Kubernetes-ресурсов\n    deployment.yaml\n    service.yaml\n    ingress.yaml\n    configmap.yaml\n    hpa.yaml\n    _helpers.tpl      # Вспомогательные шаблонные функции\n  charts\u002F             # Зависимости (sub-charts)\n```\n\n\u003Cdetails>\n\u003Csummary>Пример templates\u002Fdeployment.yaml и values.yaml\u003C\u002Fsummary>\n\ntemplates\u002Fdeployment.yaml:\n```yaml\napiVersion: apps\u002Fv1\nkind: Deployment\nmetadata:\n  name: {{ include \"my-app.fullname\" . }}\n  labels:\n    {{- include \"my-app.labels\" . | nindent 4 }}\nspec:\n  replicas: {{ .Values.replicaCount }}\n  selector:\n    matchLabels:\n      {{- include \"my-app.selectorLabels\" . | nindent 6 }}\n  template:\n    metadata:\n      labels:\n        {{- include \"my-app.selectorLabels\" . | nindent 8 }}\n    spec:\n      containers:\n        - name: {{ .Chart.Name }}\n          image: \"{{ .Values.image.repository }}:{{ .Values.image.tag }}\"\n          ports:\n            - containerPort: {{ .Values.service.targetPort }}\n          resources:\n            {{- toYaml .Values.resources | nindent 12 }}\n```\n\nvalues.yaml:\n```yaml\nreplicaCount: 3\n\nimage:\n  repository: my-registry\u002Fmy-spring-app\n  tag: \"1.0.0\"\n  pullPolicy: Always\n\nservice:\n  type: ClusterIP\n  port: 80\n  targetPort: 8080\n\ningress:\n  enabled: true\n  host: api.example.com\n\nresources:\n  requests:\n    memory: \"512Mi\"\n    cpu: \"250m\"\n  limits:\n    memory: \"1Gi\"\n    cpu: \"1000m\"\n\nautoscaling:\n  enabled: true\n  minReplicas: 3\n  maxReplicas: 10\n  targetCPUUtilization: 70\n```\n\n\u003C\u002Fdetails>\n\n### Основные команды Helm\n\n```bash\n# Добавить репозиторий\nhelm repo add bitnami https:\u002F\u002Fcharts.bitnami.com\u002Fbitnami\nhelm repo update\n\n# Установить Chart\nhelm install my-release my-spring-app\u002F -f values-prod.yaml -n production\n\n# Обновить Release\nhelm upgrade my-release my-spring-app\u002F -f values-prod.yaml -n production\n\n# Установить или обновить\nhelm upgrade --install my-release my-spring-app\u002F -f values-prod.yaml\n\n# Откатить к предыдущей версии\nhelm rollback my-release 1\n\n# Список установленных Release\nhelm list -n production\n\n# Посмотреть сгенерированные манифесты без установки\nhelm template my-release my-spring-app\u002F -f values-prod.yaml\n```\n\n### Зачем Helm Java-разработчику\n\n- Один Chart для всех окружений (dev, staging, prod) — разные `values.yaml`\n- Управление зависимостями (PostgreSQL, Redis, Kafka — готовые Chart'ы из публичных репозиториев)\n- Версионирование и откат деплоев\n- Стандартизация инфраструктуры в команде\n\n> **На собеседовании:** достаточно объяснить концепцию Chart + Values + Release и привести пример, зачем это нужно (один Chart, разные окружения). Частая ошибка — путать Helm с kubectl apply и не понимать, что Helm добавляет шаблонизацию и управление релизами поверх обычных манифестов.","","middle",[7],[],null,{"title":18,"description":19,"ogTitle":18,"ogDescription":20,"keywords":21,"schemaAnswer":22,"featuredSnippetReady":23},"Что такое Helm? — Gymterview","Helm — пакетный менеджер для Kubernetes, аналог apt\u002Fyum для Linux или Maven для Java. Позволяет описывать, устанавливать и обновлять приложения в Kubernetes как","Helm — пакетный менеджер для Kubernetes, аналог apt\u002Fyum для Linux или Maven для Java. Позволяет описывать, устанавливать",[7,13],"Helm — пакетный менеджер для Kubernetes, аналог apt\u002Fyum для Linux или Maven для Java. Позволяет описывать, устанавливать и обновлять приложения в Kubernetes как единый пакет.",true]