Skip to content

Commit aeb637a

Browse files
committed
sync upstream
1 parent 40bdf30 commit aeb637a

File tree

8 files changed

+209
-126
lines changed

8 files changed

+209
-126
lines changed

content/uk/docs/reference/access-authn-authz/authentication.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ weight: 10
2222

2323
У цьому відношенні _Kubernetes не має обʼєктів, які представляють звичайні облікові записи користувачів._ Звичайні користувачі не можуть бути додані до кластера через API виклик.
2424

25-
Хоча звичайного користувача не можна додати через API виклик, будь-який користувач, який предʼявляє дійсний сертифікат, підписаний центром сертифікації (CA) кластера, вважається автентифікованим. У цій конфігурації Kubernetes визначає імʼя користувача з поля загального імені (CN) у сертифікаті (наприклад, "/CN=bob"). Після цього підсистема контролю доступу на основі ролей (RBAC) визначає, чи авторизований користувач для виконання певної операції з ресурсом. Детальніше про це можна прочитати у темі про звичайних користувачів у [запиті сертифікатів](/docs/reference/access-authn-authz/certificate-signing-requests/#normal-user).
25+
Хоча звичайного користувача не можна додати через API виклик, будь-який користувач, який предʼявляє дійсний сертифікат, підписаний центром сертифікації (CA) кластера, вважається автентифікованим. У цій конфігурації Kubernetes визначає імʼя користувача з поля загального імені (CN) у сертифікаті (наприклад, "/CN=bob"). Після цього підсистема контролю доступу на основі ролей (RBAC) визначає, чи авторизований користувач для виконання певної операції з ресурсом.
2626

2727
На відміну від цього, службові облікові записи є користувачами, якими керує Kubernetes API. Вони привʼязані до певних просторів імен і створюються автоматично API сервером або вручну через API виклики. Службові облікові записи привʼязані до набору облікових даних, збережених як `Secrets`, які монтуються в Podʼи, що дозволяє процесам всередині кластера взаємодіяти з Kubernetes API.
2828

@@ -1602,5 +1602,6 @@ API-сервер Kubernetes заповнює `userInfo` після застос
16021602

16031603
## {{% heading "whatsnext" %}}
16041604

1605+
- Щоб дізнатися про випуск сертифікатів для користувачів, прочитайте [Випуск сертифіката для клієнта Kubernetes API за допомогою CertificateSigningRequest](/docs/tasks/tls/certificate-issue-client-csr/)
16051606
- Прочитайте [довідник з автентифікації клієнта (v1beta1)](/docs/reference/config-api/client-authentication.v1beta1/)
16061607
- Прочитайте [довідник з автентифікації клієнта (v1)](/docs/reference/config-api/client-authentication.v1/)

content/uk/docs/reference/access-authn-authz/certificate-signing-requests.md

Lines changed: 8 additions & 122 deletions
Large diffs are not rendered by default.

content/uk/docs/setup/production-environment/tools/kubeadm/high-availability.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ _Дивіться [Топологія зовнішнього etcd](/docs/setup/p
113113
2. Додайте перший вузол панелі управління до балансувальника та перевірте зʼєднання:
114114

115115
```shell
116-
nc -v <LOAD_BALANCER_IP> <PORT>
116+
nc -zv -w 2 <LOAD_BALANCER_IP> <PORT>
117117
```
118118

119119
Помилка "connection refused" є очікуваною, оскільки API-сервер ще не запущено. Проте тайм-аут означає, що балансувальник не може взаємодіяти з вузлом панелі управління. Якщо виникає тайм-аут, повторно налаштуйте балансувальник

content/uk/docs/setup/production-environment/tools/kubeadm/install-kubeadm.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ card:
4747
Ці [необхідні порти](/docs/reference/networking/ports-and-protocols/) повинні бути відкриті для взаємодії компонентів Kubernetes між собою. Ви можете використовувати інструменти, такі як [netcat](https://netcat.sourceforge.net), щоб перевірити, чи відкритий порт. Наприклад:
4848

4949
```shell
50-
nc 127.0.0.1 6443 -v
50+
nc 127.0.0.1 6443 -zv -w 2
5151
```
5252

5353
Мережевий втулок Podʼа, який ви використовуєте, також може вимагати, щоб певні порти були відкриті. Оскільки це відрізняється для кожного мережевого втулка, будь ласка, перегляньте їх документацію про те, які порти їм потрібні.
Lines changed: 171 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,171 @@
1+
---
2+
title: Випуск сертифіката для клієнта Kubernetes API за допомогою CertificateSigningRequest
3+
api_metadata:
4+
- apiVersion: "certificates.k8s.io/v1"
5+
kind: "CertificateSigningRequest"
6+
override_link_text: "CSR v1"
7+
weight: 80
8+
9+
# Docs maintenance note
10+
#
11+
# If there is a future page /docs/tasks/tls/certificate-issue-client-manually/ then this page
12+
# should link there, and the new page should link back to this one.
13+
---
14+
15+
<!-- overview -->
16+
17+
Kubernetes дозволяє використовувати інфраструктуру відкритих ключів (PKI) для автентифікації у кластері в якості клієнта.
18+
19+
Для того, щоб звичайний користувач міг автентифікуватися і викликати API, потрібно виконати кілька кроків. По-перше, цей користувач повинен мати сертифікат [X.509](https://www.itu.int/rec/T-REC-X.509), виданий органом, якому довіряє ваш кластер Kubernetes. Потім клієнт повинен предʼявити цей сертифікат API Kubernetes.
20+
21+
Ви використовуєте запит [CertificateSigningRequest](/concepts/security/certificate-signing-requests/) як частину цього процесу, і ви або інша довірена особа маєте схвалити запит.
22+
23+
Ви створите приватний ключ, а потім отримаєте виданий сертифікат і, нарешті, налаштуєте цей приватний ключ для клієнта.
24+
25+
## {{% heading "prerequisites" %}}
26+
27+
* {{< include "task-tutorial-prereqs.md" >}}
28+
29+
* Вам знадобляться утиліти `kubectl`, `openssl` та `base64`.
30+
31+
Ця сторінка передбачає, що ви використовуєте Kubernetes {{< glossary_tooltip term_id="rbac" text="контроль доступу на основі ролей" >}} (RBAC). Якщо ви використовуєте альтернативні або додаткові механізми безпеки для авторизації, вам також потрібно врахувати їх.
32+
33+
<!-- steps -->
34+
35+
## Створення приватного ключа {#create-private-key}
36+
37+
На цьому кроці ви створюєте приватний ключ. Ви повинні тримати його в таємниці; будь-хто, хто його має, може видавати себе за користувача.
38+
39+
```shell
40+
# Створіть приватний ключ
41+
openssl genrsa -out myuser.key 3072
42+
```
43+
44+
## Створіть запит на підписання сертифіката X.509 {#create-x.509-certificatessigningrequest}
45+
46+
{{< note >}}
47+
Це не те саме, що API CertificateSigningRequest з подібною назвою; файл, який ви генеруєте тут, входить до CertificateSigningRequest.
48+
{{< /note >}}
49+
50+
Важливо встановити атрибути CN та O для CSR. CN — це імʼя користувача, а O — група, до якої цей користувач буде належати. Ви можете ознайомитися з [RBAC](/docs/reference/access-authn-authz/rbac/) для отримання інформації про стандартні групи.
51+
52+
```shell
53+
# Змініть загальне ім’я "myuser" на фактичне ім’я користувача, яке ви хочете використовувати
54+
openssl req -new -key myuser.key -out myuser.csr -subj "/CN=myuser"
55+
```
56+
57+
## Створіть CertificateSigningRequest Kubernetes {#create-k8s-certificatessigningrequest}
58+
59+
Закодуйте документ CSR, використовуючи цю команду:
60+
61+
```shell
62+
cat myuser.csr | base64 | tr -d "\n"
63+
```
64+
65+
Створіть [CertificateSigningRequest](/docs/reference/kubernetes-api/authentication-resources/certificate-signing-request-v1/) та надішліть його до кластера Kubernetes через kubectl. Нижче наведено уривок коду оболонки, який ви можете використати для генерації CertificateSigningRequest.
66+
67+
```shell
68+
cat <<EOF | kubectl apply -f -
69+
apiVersion: certificates.k8s.io/v1
70+
kind: CertificateSigningRequest
71+
metadata:
72+
name: myuser # example
73+
spec:
74+
# Це закодований CSR. Змініть його на вміст myuser.csr у кодуванні base64
75+
request: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURSBSRVFVRVNULS0tLS0KTUlJQ1ZqQ0NBVDRDQVFBd0VURVBNQTBHQTFVRUF3d0dZVzVuWld4aE1JSUJJakFOQmdrcWhraUc5dzBCQVFFRgpBQU9DQVE4QU1JSUJDZ0tDQVFFQTByczhJTHRHdTYxakx2dHhWTTJSVlRWMDNHWlJTWWw0dWluVWo4RElaWjBOCnR2MUZtRVFSd3VoaUZsOFEzcWl0Qm0wMUFSMkNJVXBGd2ZzSjZ4MXF3ckJzVkhZbGlBNVhwRVpZM3ExcGswSDQKM3Z3aGJlK1o2MVNrVHF5SVBYUUwrTWM5T1Nsbm0xb0R2N0NtSkZNMUlMRVI3QTVGZnZKOEdFRjJ6dHBoaUlFMwpub1dtdHNZb3JuT2wzc2lHQ2ZGZzR4Zmd4eW8ybmlneFNVekl1bXNnVm9PM2ttT0x1RVF6cXpkakJ3TFJXbWlECklmMXBMWnoyalVnald4UkhCM1gyWnVVV1d1T09PZnpXM01LaE8ybHEvZi9DdS8wYk83c0x0MCt3U2ZMSU91TFcKcW90blZtRmxMMytqTy82WDNDKzBERHk5aUtwbXJjVDBnWGZLemE1dHJRSURBUUFCb0FBd0RRWUpLb1pJaHZjTgpBUUVMQlFBRGdnRUJBR05WdmVIOGR4ZzNvK21VeVRkbmFjVmQ1N24zSkExdnZEU1JWREkyQTZ1eXN3ZFp1L1BVCkkwZXpZWFV0RVNnSk1IRmQycVVNMjNuNVJsSXJ3R0xuUXFISUh5VStWWHhsdnZsRnpNOVpEWllSTmU3QlJvYXgKQVlEdUI5STZXT3FYbkFvczFqRmxNUG5NbFpqdU5kSGxpT1BjTU1oNndLaTZzZFhpVStHYTJ2RUVLY01jSVUyRgpvU2djUWdMYTk0aEpacGk3ZnNMdm1OQUxoT045UHdNMGM1dVJVejV4T0dGMUtCbWRSeEgvbUNOS2JKYjFRQm1HCkkwYitEUEdaTktXTU0xMzhIQXdoV0tkNjVoVHdYOWl4V3ZHMkh4TG1WQzg0L1BHT0tWQW9FNkpsYWFHdTlQVmkKdjlOSjVaZlZrcXdCd0hKbzZXdk9xVlA3SVFjZmg3d0drWm89Ci0tLS0tRU5EIENFUlRJRklDQVRFIFJFUVVFU1QtLS0tLQo=
76+
signerName: kubernetes.io/kube-apiserver-client
77+
expirationSeconds: 86400 # one day
78+
usages:
79+
- client auth
80+
EOF
81+
```
82+
83+
Деякі моменти, на які слід звернути увагу:
84+
85+
* `usages` має бути `client auth` (від імені клієнта)
86+
* `expirationSeconds` можна зробити довшим (наприклад, `864000` для десяти днів) або коротшим (наприклад, `3600` для однієї години). Ви не можете подати запит тривалістю менше ніж 10 хвилин.
87+
* `request` — це закодоване в base64 значення вмісту файлу CSR.
88+
89+
## Схваліть CertificateSigningRequest {#approve-certificate-signing-request}
90+
91+
Використовуйте kubectl, щоб знайти CSR, який ви створили, і вручну схвалити його.
92+
93+
Отримайте список CSR:
94+
95+
```shell
96+
kubectl get csr
97+
```
98+
99+
Схваліть CSR:
100+
101+
```shell
102+
kubectl certificate approve myuser
103+
```
104+
105+
## Отримайте сертифікат {#get-the-certificate}
106+
107+
Отримайте сертифікат із CSR, щоб перевірити, чи виглядає він правильно.
108+
109+
```shell
110+
kubectl get csr/myuser -o yaml
111+
```
112+
113+
Значення сертифікату знаходиться в Base64-кодованому форматі в розділі `.status.certificate`.
114+
115+
Експортуйте виданий сертифікат з CertificateSigningRequest.
116+
117+
```shell
118+
kubectl get csr myuser -o jsonpath='{.status.certificate}'| base64 -d > myuser.crt
119+
```
120+
121+
## Налаштуйте сертифікат у kubeconfig {#configure-the-certificate-into-kubeconfig}
122+
123+
Наступним кроком буде додавання цього користувача до файлу kubeconfig.
124+
125+
Спочатку потрібно додати нові облікові дані:
126+
127+
```shell
128+
kubectl config set-credentials myuser --client-key=myuser.key --client-certificate=myuser.crt --embed-certs=true
129+
130+
```
131+
132+
Потім потрібно додати контекст:
133+
134+
```shell
135+
kubectl config set-context myuser --cluster=kubernetes --user=myuser
136+
```
137+
138+
Перевірте:
139+
140+
```shell
141+
kubectl --context myuser auth whoami
142+
```
143+
144+
Ви повинні побачити вивід, який підтверджує, що ви є «myuser».
145+
146+
## Створіть Role та RoleBinding {#create-role-and-rolebinding}
147+
148+
{{< note >}}
149+
Якщо ви не використовуєте Kubernetes RBAC, пропустіть цей крок і внесіть відповідні зміни до механізму авторизації який використовується у вашому кластері.
150+
{{< /note >}}
151+
152+
Після створення сертифіката настав час визначити Role і RoleBinding для цього користувача для доступу до ресурсів кластера Kubernetes.
153+
154+
Це приклад команди для створення Role для цього нового користувача:
155+
156+
```shell
157+
kubectl create role developer --verb=create --verb=get --verb=list --verb=update --verb=delete --resource=pods
158+
```
159+
160+
Це приклад команди для створення RoleBinding для цього нового користувача:
161+
162+
```shell
163+
kubectl create rolebinding developer-binding-myuser --role=developer --user=myuser
164+
```
165+
166+
## {{% heading "whatsnext" %}}
167+
168+
* Прочитайте [Керування сертифікатами TLS у кластері](/docs/tasks/tls/managing-tls-in-a-cluster/)
169+
* Для отримання детальної інформації про сам X.509 зверніться до [RFC 5280](https://tools.ietf.org/html/rfc5280#section-3.1), розділ 3.1
170+
* Інформацію про синтаксис запитів на підписання сертифікатів PKCS#10 наведено в [RFC 2986](https://tools.ietf.org/html/rfc2986)
171+
* Прочитайте про [ClusterTrustBundles](/docs/reference/access-authn-authz/certificate-signing-requests/#cluster-trust-bundles)
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
Вам треба мати кластер Kubernetes, а також інструмент командного рядка kubectl має бути налаштований для роботи з вашим кластером. Рекомендується виконувати ці настанови у кластері, що має щонайменше два вузли, які не виконують роль вузлів управління. Якщо у вас немає кластера, ви можете створити його, за допомогою [minikube](https://minikube.sigs.k8s.io/docs/tutorials/multi_node/) або використовувати одну з цих пісочниць:
22

33
* [Killercoda](https://killercoda.com/playgrounds/scenario/kubernetes)
4-
* [Play with Kubernetes](https://labs.play-with-k8s.com/)
4+
* [KodeKloud](https://kodekloud.com/public-playgrounds)
5+
* [Play with Kubernetes](https://labs.play-with-k8s.com/)

content/uk/training/_index.html

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,27 @@ <h5>
144144
</div>
145145
</section>
146146

147+
<section class="call-to-action">
148+
<div class="main-section">
149+
<div class="call-to-action" id="cta-kubestronaut">
150+
<div class="cta-text">
151+
<h2>Програма Kubestronaut: Підвищуйте свою експертизу в Kubernetes</h2>
152+
<p> Програма CNCF Kubestronaut відзначає та нагороджує виняткових лідерів спільноти, які продемонстрували глибоку
153+
прихильність до оволодіння Kubernetes. Ця престижна ініціатива відзначає людей, які постійно інвестують у своє навчання
154+
та досягли найвищого рівня майстерності. Щоб отримати почесне звання Kubestronaut, люди повинні успішно отримати та
155+
підтримувати всі пʼять сертифікатів CNCF Kubernetes: Сертифікований адміністратор Kubernetes (CKA), Сертифікований
156+
розробник застосунків Kubernetes (CKAD), Сертифікований спеціаліст з безпеки Kubernetes (CKS), Kubernetes та Cloud
157+
Native Associate (KCNA) та Kubernetes та Cloud Security Associate (KCSA).</p>
158+
</div>
159+
<div class="cta-img-container">
160+
<div class="logo-certification cta-image" id="logo-kubestronaut">
161+
<img src="/images/training/kubestronaut-stacked-color.svg" />
162+
</div>
163+
</div>
164+
</div>
165+
</div>
166+
</section>
167+
147168
<div class="padded lighter-gray-bg">
148169
<div class="main-section two-thirds-centered">
149170
<center>

i18n/uk/uk.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -458,6 +458,9 @@ other = "Цій статті вже більше одного року. Стар
458458
[page_deprecated]
459459
other = "(застаріла сторінка)"
460460

461+
[parentoptions_heading]
462+
other = "Успадковані батьківські параметри"
463+
461464
[patch_release]
462465
other = "Патч"
463466

0 commit comments

Comments
 (0)