Skip to content

Commit f470c97

Browse files
committed
[uk] Best practices - pods.md
Signed-off-by: Andrii Holovin <[email protected]>
1 parent 85cb7e0 commit f470c97

File tree

1 file changed

+66
-0
lines changed
  • i18n/uk/docusaurus-plugin-content-docs/current/chart_best_practices

1 file changed

+66
-0
lines changed
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
---
2+
title: Pods та PodTemplates
3+
description: Розглядається форматування частин Pod і PodTemplate в маніфестах чартів.
4+
sidebar_position: 6
5+
---
6+
7+
У цій частині посібника з найкращих практик розглядається форматування частин Pod і PodTemplate у маніфестах чартів.
8+
9+
Наступний (неповний) список ресурсів використовує PodTemplates:
10+
11+
- Deployment
12+
- ReplicationController
13+
- ReplicaSet
14+
- DaemonSet
15+
- StatefulSet
16+
17+
## Образи {#images}
18+
19+
Образ контейнера повинен використовувати фіксований теґ або SHA образу. Він не повинен використовувати теги `latest`, `head`, `canary` або інші теґи, які призначені для "плаваючих" версій.
20+
21+
Образи _можуть_ бути визначені у файлі `values.yaml`, щоб спростити заміну образів.
22+
23+
```yaml
24+
image: {{ .Values.redisImage | quote }}
25+
```
26+
27+
Образ та теґ можуть бути визначені у файлі `values.yaml` як два окремі поля:
28+
29+
```yaml
30+
image: "{{ .Values.redisImage }}:{{ .Values.redisTag }}"
31+
```
32+
33+
## ImagePullPolicy
34+
35+
`helm create` стандартно встановлює `imagePullPolicy` на `IfNotPresent`, роблячи це у вашому `deployment.yaml`:
36+
37+
```yaml
38+
imagePullPolicy: {{ .Values.image.pullPolicy }}
39+
```
40+
41+
А у `values.yaml`:
42+
43+
```yaml
44+
image:
45+
pullPolicy: IfNotPresent
46+
```
47+
48+
Аналогічно, Kubernetes стандартно встановлює `imagePullPolicy` на `IfNotPresent`, якщо він зовсім не визначений. Якщо вам потрібне інше значення, просто оновіть його в `values.yaml` на потрібне значення.
49+
50+
## PodTemplates повинні оголошувати селектори {#podtemplates-should-declare-selectors}
51+
52+
Усі розділи PodTemplate повинні містити селектор. Наприклад:
53+
54+
```yaml
55+
selector:
56+
matchLabels:
57+
app.kubernetes.io/name: MyName
58+
template:
59+
metadata:
60+
labels:
61+
app.kubernetes.io/name: MyName
62+
```
63+
64+
Це хороша практика, оскільки вона встановлює звʼязок між набором і podʼом.
65+
66+
Але це ще важливіше для таких наборів, як Deployment. Без цього, _весь_ набір міток використовується для вибору відповідних podʼів, і це може зламатися, якщо ви використовуєте мітки, які змінюються, такі як версія або дата релізу.

0 commit comments

Comments
 (0)