⢠á¨ááŹáľ á°ááľá°á á ááŤáŁáá˝ áĽá á áŠá áááľáľ ááááŠáĄ áááąá áááá áአáááľ á áŤáľááááᢠ⢠á¨áŤáľáá ááááá˝ áŤááą ááá á¨áá°áłá°á á¨áŠá áááľáľ á áááááľá á¨á áááᣠá¨ááá áĽá á¨ááá˝á ááá¨áĄ ⢠á¨ááŤáŁ á¨á
áááľ áĄá°áľá áĽá á¨ááĽáľ áááłá ááááŁá á Kubernetes áá ááᢠ⢠áľáĽáľáŚá˝á áááᣠáá ááťá¸áᣠáá á°á ááááᣠáá á
á áĽá áááľáááľ áŤááťášá˘ ⢠á¨áĽááľáá áá°áá áŞáŤáá˝ áááłá áᣠáááá¨á áĽá ááá°ááŤáľ áááĄá ááłáŞáŤáá˝á áááᢠ⢠áá°á
áááľ áĽá áááĽáĽá á¨áá
áąá á¨á˘ááąáľáľáŞ áááśá˝á áá ááᢠ⢠á¨áááľ áĄáľáá˝á á¨á áá áááŁáᣠááŁá áĽá áááŁá áááľá¨á á¨DevOps ááááá˝á á áľáá
áľá ááľáĽ áá°ááĽáŠá˘
áá˝áá ááá áá?
áá˝áá áá ááááŽá˝áŁ á áááŹá˝áá˝ áĽá á áááááśá˝ áááááľ ááá¸á á¨á áľá°áłá°á áááá˝ áĽáá˛áá á á˛áľ á¨á°áá á áááááśá˝á á ááááŁáľ ááá ááŁá áá°áá áŞáŤáá˝á áá° áŠá áááľáľ áĽá á°áá ááááá áááłá°á ááá˘áá˝ á áŁá á áá ááᢠá áá¨áá, ᨠKubernetes áĽá áŽáá´áááŽá˝ áá áĽáá´áľ áĽáá°áá አááá á áŤáľáááááľá - áááá ááá áĽááľá°ááŤáá.
áááľ áŤáŤá áą á¨áŠá áááľáľ á°á áááá˝ áĽáá° RBACᣠááŁáááľ áŤáá áá°ááŤáľáŁ ááľáĽáŤáááľ áŤáá á¨ááἠá áľá°áłá°á áĽá áłáá˘ááľ áŁá ááĽáśá˝ áĽáá á˝áá áŤáá¸á áĽá áĽá´áľ áŤáááᢠá˝ááłá áĽá áááľá ááá ááá áá á áá˝áá ááá˝ áá á áĽááá áááľ ááĽááľá á ááľ á áľá°áłá˝ ááá áĽáá°ááá á°áľá áĽáá°ááááá˘
áá˝áá áá áĽáŤááá˝á ááááłá?
á áá áá˝áá áĽá áľ áĽá á˝áá áá áľáŁ á¨á˘ááąáľáľáŞ ááŞáá˝ áĽá áŁáááŤáá˝ áĽáľá¨ á á ááá á á˛áľ áááŞáá˝ áľá¨áľ á ááś á¨ááá አá°áá˝ áá áľá á°áá áľááľ áĽá áŠá áááľáľ á°ááŤáá°ááᢠá áá áĽáľá ááľáĽ áĽáá˛áááą á¨ááááá¸á á ááłááľ áĽáŤááá˝ á¨áá á áłá˝ á áá˘
- "á áá á´áááá áá ááá áá ááłáá áĽááłááĽá áááá ááááľ á ááᢠáĽáá áĽá áĄáľáá áá á˝ááŽá˝ ááááłáľ áá¨áłáá? â
- "Kubernetes á¨ááľáĽ áááľááᣠáá ááááŁáľ á áŁá á¨áá°á á¨áá áĽáá ááľ á ááᢠááá ááłá áááááľ á áľá¸á᪠á áá°áá, ááá áá á°á¨á᪠á áľá°áłá°á áĽá áá¨á á áľá᪠áá. á°áá˝ á áááą á áá á¨áŠá áááľáľ áľáĽáľáŚá˝á áĽáá´áľ áĽáá°ááŤáľá°áłáľáŠ áĽá áá á áááľ á˝ááŽá˝ ááááĽáá¸á áĽáá°ááá˝á á ááłááľ á ááŤáŤ áááŽá˝á áĽáááłááá˘
- âááá°-ááłá ááá á áá ááááᢠá¨áŠá áááľáľ áĽá-áá áłá ááłáłá áĄáľáá˝ áááá¨áĽ áĽá á ááŤáŽá˝á áá°áŁáᢠá°ááłáłá ááá á á°ááŤáŠ ááááśá˝ áá¨ááá áá˝áá, á¨áľáá á¨á°áťá áĽáá°áá áĽáá´áľ áŤááá? áĽáá´áľ áá፠ááľá¨á ááťáá?
áĽá ááááŁáľá á¨áĽáŤááá˝ áá á áŁá á áľáááá-
- "áŠáŁááŤáŹá áłááľá°ááá áŠá áááľáľá áĽáá´áľ áá áá áĽá˝ááá?"
á áááĽááĽá˘ áááá áĽá ááľáĽáŤá áááŽá˝
á¨áŠá áááľáľ á áááŹá˝áá á áááᎠá¨á áááአá¨ááá¨áľ á˝ááł (áá á á áá áá°áľ áááᥠá¨áá˝á á¨ááááá áĽá´áśá˝ ááá ááźáśá˝) á áŁá á áá ááᢠá¨áááá áááá˝ á á°áááś á áŤáŁá˘á-á°áŽá á ááĽáŽá˝áᣠá¨DNS á áľáŤáťáá˝á ááśáľá°á ááá á áááááśá˝ áĽá á¨áá¨áá፠ááľááááśá˝á áŤáŤáľáłáá˘
á áĽááἠáá áá á áŽáą ááľáĽ á ááĽáł áááἠáá˝áá, ááá áá áá á ááŤá¨áĽ á á á°áááá á áá°áá. áááłáᣠá¨áá á¨áľ áĽá´áľ ááá¨á áŽáľáá áĽáá°áá áĽáá˛ááᥠáĽá áĽáá˛áŤá°áአáá áááᢠá áŁá á¨á°áťáá áááľá á ááááŠá á¨áŽáą ááá¨áľ áĽá á¨ááá ááá á¨á áŤáŁá˘ á°ááááŽá˝ ááá ἠáá.
Kubernetes áá á¨áľá áááľá°áłá°á áĽá á¨á°ááŤáŠ ááááśá˝á áá°áŁáᢠá ááááŞáŤ á ááľ áźá áááá ááľáĽ á á°ááášáľ á¨á áŤáŁá˘ á°ááááŽá˝ á áŠá ááá°áá áŞáŤá áĽá´áśá˝á ááá áá˝áá (á áá˝ 192 áá "á¨á áŤáŁá˘ á°ááááŽá˝" áááá¨áą)ᢠá ááá°á á°á¨á á¨áá á¨áľ ááἠConfigMap áĽá ááľáĽáŤá áááŽá˝á á áá áá á áŠá áááľáľ ááľáĽ á ááĽáł áá¨áá˝ áá˝ááá˘
á áá ááĽáŤá ááľáĽ áĽááá á áááŽá˝ á áááá áĽááá¨ááŤáá áĽá á¨ááłáŤ áá°áá áŞáŤá áĽáá° ááłá á áá áá áá á¨áľá áĽá ááľáĽáŤá áá¨áá áááľá°áłá°á á ááłááľ á°ááŁáŤá á ááŤá¨áŚá˝á áĽáááá¨áłááá˘
á áááá ááἠáá ááśá˝á áŤááá
á áááľá°áá ááľáĽ áá°ááŤáľ áĽááłáá á áľáĽ áĽá á ConfigMap ááľáĽ á ááłááľ áĽá´áśá˝á ááá¨á áĽáá°ááľááá á áľáĽá˘ á¨ááá áťááľá áĽá¨á°á áá á¨áá ("Helm: Package Manager for Kubernetes" á áá˝ 102 áááá¨áą) á¨áá á¨áľ áááĽá á áŤáľ-á°á ááá á á ááľ áášá áĽáááľ á áŤáľ á°á ááľáá ááŤá áá˝ááᢠá¨áá¨á°ááá ááĽáŤáŞáŤ áá° áĽááľá á¨áá°ááŤáľ áááá ááá፠áŤááá˘
checksum/config: {{ include (print $.Template.BasePath "/configmap.yaml") .
| sha256sum }}
á¨áá°ááŤáą á áĽááľ á áá á¨áá á áááŞáŤáá˝á áźá áľáá áááᥠáááŞáŤááš á¨á°áá¨áŠ áľáአáááááᢠá¨helm ááťáťáŤ áľáááá á¨ááłááą á¨ááᣠHelm á¨áá°ááŤáą áááá ááá¨áŠá á áá áĽá áááá ááśá˝ áĽáá°áá áŤáľáááŤá¸ááá˘
á Kubernetes ááľáĽ ááľáĽáŤáááľ áŤáá áááĽ
á¨ConfigMap ááá á áááľá°á ááľáĽ á¨áá á¨áľ áááĽá ááá¨áá¸áľ áĽá áááááľ á°áááá áá´á áĽáá°áá°áĽ á áľááľáá áĽáááááᢠááá ááᣠá áĽáááš á áááŹá˝áá˝ áĽáá° á¨ááá ááá˝ ááá á¤áá á áááá˝ áŤá ááľáĽáŤá áĽá ááľáĽáŤá á¨áá áá¨ááá˝ á áá¸áᢠáĽáá˛áá á ConfigMap ááľáĽ áá¨áá˝ áá˝áá, ááá áá áá áááľá á°áľáá á áá°áá.
á ááľáŠ áŠá áááľáľ ááľáĽáŤá áá¨ááá˝á ááá¨áá¸áľ áአá áááľ áááá áá°áŁáᢠá ááá áᣠáá ááá á áĽá á¨ááłáŤ áá°áá áŞáŤ ááľáĽ áĽáá´áľ áĽá á áá áĽáá°ááá á¨ááŤáłá ááłá áĽáááá¨áľá˘
á ááááŞáŤáŁ áááľáĽá ááá á¨áŠá áááľáľ ááááŤá áááá¨áą (áá-ááľáĽá-env/k8s/secret.yaml áááá¨áą)áĄ-
apiVersion: v1
kind: Secret
metadata:
name: demo-secret
stringData:
magicWord: xyzzy
á áá ááłáᣠmagicWord á¨áá ááá xyzzy áá (en.wikipedia.org/wiki/Xyzzy_(computing))ᢠá á á ááá xyzzy á¨ááá áá á áŽáááá°áŽá˝ ááá ááľáĽ á áŁá á áá ááᢠáĽáá° ConfigMapᣠá ááľáĽá ááá ááľáĽ áĽá áááá˝á áĽá áĽá´áśá˝á áá¨áá¸áľ áľá˝ááá ᢠáĽáá ᣠááááááľáŁ á ááľ ááá-áĽá´áľ áĽááľ áĽáť áĽáá ááááá˘
ááľáĽáŤá áááŽá˝á áĽáá° á¨á áŤáŁá˘ á°ááááŽá˝ áá áá
áĽáá° ConfigMapᣠááľáĽáŤáá ááá á ááŤáŁá ááľáĽ áĽáá° á áŤáŁá˘ á°ááááŽá˝ ááá á á˛áľá áá áĽáá° ááá áááἠáá˝ááᢠá áá¨á°áá ááłá áĽá´áąá á¨ááľá˘á áá° á¨á áŤáŁá˘ á°áááá áĽáááľáŁáááĄ
spec:
containers:
- name: demo
image: cloudnatived/demo:hello-secret-env
ports:
- containerPort: 8888
env:
- name: GREETING
valueFrom:
secretKeyRef:
name: demo-secret
key: magicWord
ááááŤáá˝á ááá°áá á á¨áá¨á°ááá áľááá á ááłáŤ áá¨ááť ááľáĽ áŤááąáĄ-
kubectl apply -f hello-secret-env/k8s/
deployment.extensions "demo" configured
secret "demo-secret" created
áĽáá°á ááąáŁ áá¤áąá á á áłá˝á ááľáĽ ááá¨áľ á¨á áŤáŁá˘áá áá°áĽ áá° áá°ááŤáą áŤáľá°ááááĄ-
kubectl port-forward deploy/demo 9999:8888
Forwarding from 127.0.0.1:9999 -> 8888
Forwarding from [::1]:9999 -> 8888
á áľáŤáť á˛á¨ááą
The magic word is "xyzzy"
ááľáĽáŤá áááŽá˝á áá° áááá˝ ááá
á áá ááłá, ááľáĽáŤááá ááá áá° ááŤáŁá áĽáá° ááá áĽááŤáááá. áŽáą á ááłáŤ áá¨ááťá ááľáĽ á á áá-ááľáĽáŤá-ááá á áá ááľáĽ ááááá˘
ááľá˘áŠá áĽáá° ááá áááŤá°áľ á¨áá¨á°ááá ááľáá፠áá áááĄ-
spec:
containers:
- name: demo
image: cloudnatived/demo:hello-secret-file
ports:
- containerPort: 8888
volumeMounts:
- name: demo-secret-volume
mountPath: "/secrets/"
readOnly: true
volumes:
- name: demo-secret-volume
secret:
secretName: demo-secret
á áá˝ áá áŁáá âá¨ConfigMap áááŽá˝ á¨áá á¨áľ áááá˝á á áááá¨áľ ááâ á ááá áááľ ááá áá áĽááłáᢠ240, á¨áľáá˝ áá á áĽáááĽáŤáá (á áá áááł á˛á-ááľáĽáŤá-áĽáŤá) áĽá á áŽááŠáááľ áááá ááá፠ááá ááľáĽ áá° ááŤáŁá áĽáááááá. á¨MountPath ááľáŠ áá°/ááľáĽá á°áááĽáŻááŁáľááá Kubernetes á ááľáĽá ááá ááľáĽ áá°ááášáľ ááĽáŤááłááą ááá/áĽá´áľ áĽááľ á ááľ ááá á áá á áá ááľáĽ áááĽáŤáá˘
á áĽá ááłáᣠMagicWord á¨ááŁá á ááľ á¨ááá/áá áĽááľ áĽáť áá á¨ááá ááᣠáľááá á áá¸áŁáŤáá á ááľ á°ááŁá˘-áĽáť/ááľá˘á/magicWord ááá á áŽáá´ááá ááľáĽ áľáą áá¨ááá˝á áááĽáŤáá˘
áá áá á áá¸áŁáŤá á¨ááłáá ááłá áá á á°ááłáłá ááááľ á¨á°á ááá áľ á°ááłáłá áá¤áľ ááááľ á ááĽááľá˘
The magic word is "xyzzy"
ááľáĽáŤá áááŽá˝á ááá áĽ
áŁááá ááá á¨ConfigMapá áááśá˝ áááłá¨áľ ᨠkubectl ááá፠áľáĽááá á°á áááᢠá ááľá˘á á°ááłáłá ááá ááľá¨á ááťáá?
kubectl describe secret/demo-secret
Name: demo-secret
Namespace: default
Labels: <none>
Annotations:
Type: Opaque
Data
====
magicWord: 5 bytes
ááᥠáŤáą áĽááłááłá¨ áἠáá á. á Kubernetes ááľáĽ áŤá ááľáĽáŤá áááŽá˝ áŚáá á áááľ áá¸áᣠáá áááľ áááłá¸á á kubectl ááľáĽ áľááááłá áá ááľáᣠáá áá¤áśá˝á áĽá á°ááááá áááááᣠáá á ááľáĽáŤá áá¨áá á á ááŁá áááłá¨áľ á¨áááťá áŤá°ááááá˘
á áŽáľ á¨á°á°á¨ááá ᨠYAML áľáŞáąá ááľáĽáŤá ááἠááá¨áľ ᨠkubectl áŤáá áľáááá áá áááĄ-
kubectl get secret/demo-secret -o yaml
apiVersion: v1
data:
magicWord: eHl6enk=
kind: Secret
metadata:
...
type: Opaque
á¤á 64
áá eHl6enk= á¨ááá áĽá´áłá˝á áá˝á á¨á°áᨠáááľáá? áĽáą á áĽáááą á¤á64 áŽáľ á¨á°á°á¨á ááľáĽáŤá ááá ááᢠBase64 á¨áááá° á¨áááľáŽá˝ áááĽá áĽáá° á¨ááá ááĽá¨ááá á¨ááá¨áŞáŤ áĽá áľ ááá˘
ááľáĽáŤáááľ áŤáá áá¨á áááľáŽá˝ áĽá á¨áááłá°á ááá áľááá˝á (áááłá áĽáá° TLS ááľá ፠ááá) ááľáĽáŤá áááŽá˝ áá áá á base64 á áá¸áľ ááááŁáá˘
á˝áá beHl6enk=á¨áĽá ááľáĽáŤá áááłá˝á xyzzy base64 áŽáľ áľáŞáľ ááᢠá á°áááá ááľáĽ ᨠbase64 --decode áľáááá á áááľ áá áá áá¨ááἠáá˝áááĄ-
echo "eHl6enk=" | base64 --decode
xyzzy
áľááá áŠá áááľáľ á á°áááá ááá á áá ááááš ááľáĽ ááľáĽáŤáááľ áŤáá áá¨á áĽááłááᣠá¨áá¨áá¨ááááľ á˘áááᣠááľáĽáŤá áááŽá˝á á á°áá°á á¨áľá áŚáł áááá ἠáááľ áŤááľáŁ áá áá¨á á base64 á áá¸áľ ááá áĽá á ááá á á˛áŽáľ ááľá¨á áá˝ááá˘
á ááłááľ á ááá˝á á¤á64 ááá°áĽ á¨ááá (áááłá ᣠá ááľá˘á ááľáĽ áááľáááĽ) ᨠbase64 áľáááá áŤáááá áá¨áŤá¨áŞáŤ áá ááá˘
echo xyzzy | base64
eHl6enkK
ááľáĽáŤá áááŽá˝á ááľá¨áľ
ááľáĽáŤá áááŽá˝á áá ááá ἠáĽá áááľá áá˝áá? áá á¨ááá°áá á RBAC, á¨ááłá¨áť áááŁá áŞáŤ áá´ áá (á áá˝ 258 áá "á áá áá á¨á°áá°á¨á° á¨ááá˘áŤ ááĽáĽá ááá˘áŤ" á ááá áááľ ááá ááľáĽ á áááá áĽáááááŤáá). RBAC á¨ááá ááá á¨ááá áááľá°á áĽáŤáľáŹáą á¨áá ááá ááľáĽáŽá˝á áááááá á°á áá áĽá áŽáá´áááŽá˝ áááá (á¨RBAC á᪠ááá á áááľ á¨áááľ áááľá°á áááááľ áĽáá°áááᣠá áá áĽááĽáŤáŤáá)á˘
á°ááĽáŽ ááἠááľá áŤ
Kubernetes áááá áá¨á á¨ááŤá¨áá˝á ᾠᨠetcd áłáłá¤á ááłá¨áť áľááá¸ááľ? ááľáĽáŤá áááŽá˝á á á¤áá á á áŠá áłáŤáᥠááľáĽáŤáááľ áŤáá áá¨á ááá ἠáá˝áá?
ᨠ1.7 áľáŞáľ ááᎠáŠá áááľáľ á°ááĽáŽ á¨ááἠááľá áŤá áá°áááᢠáá áááľ á etcd ááľáĽ áŤá ááľáĽáŤáááľ áŤáá¸á áá¨ááá˝ á á˛áľá áá á°ááľáĽá¨á áá¨ááťá áĽá áá° áłáłá¤á ááĽá°á ááłá¨áť áŤáá á°á áĽááłá ááá ἠá áá˝ááᢠá˛ááŞááľ áááľá¨á ᨠKubernetes API á áááá áĽáť áŤáá ááá áŤáľáááááłáᢠá áľááá á¨á°ááᨠáááľá°á á°ááĽáŽ ááľá ፠ááááľ á áá áľá˘
á°ááĽáŽ ááľá ፠á áááľá°áá ááľáĽ áĽáá°áá°áŤ áá¨ááἠáľá˝ááá áĄ-
kubectl describe pod -n kube-system -l component=kube-apiserver |grep encryption
--experimental-encryption-provider-config=...
á¨áá¨áŤ-á˘áááŞáá˝á-á á áŤá˘-áá á áŁáá˛áŤáá áŤáአá°ááĽáŽ ááľá ፠á ááááᢠááá áŠá áááľáľ á˘áááá ááá ááá˝ á¨áŠá áááľáľ á áľá°áłá°á á áááááśá˝á áľáľá áá á¨á áá° ááἠá¨á°áá°á á¨á áá áá´ á áá áá ááᣠáľááá áŁáá˛áŤ á ááááᢠááá°d áááľ á¨á°áá°á ᨠáááá ááá¨áľ á¨áŠá áááľáľ á á áŤá˘áá áŤááááŠá˘
ááľáĽáŤáááľ áŤáá ááἠáá¨ááť
áĽáá° ááłá ááľáĽáŤá áááŽá˝ áŤá á¨áĽá á ááľáĽ áá˝á ááááľ á¨áááŁá¸á á ááłááľ á¨áŠá áááľáľ ááĽáśá˝ á áᢠá Helm á áľá°áłáłáŞ á áá¨á á ááĽáŤáŞáŤ á ááľ ááĽá áľ áĽááłáá°á¨á ááľá¨á áľá˝ááá áĄ-
kind: Secret
metadata:
annotations:
"helm.sh/resource-policy": keep
ááľáĽáŤá áááŽá˝á á¨áááŁá á áľááśá˝
áŁááá ááá ááľáĽ áŤáá ááłáᣠááľáĽáŤáááľ áŤáá áá¨á á áááľá°á ááľáĽ á¨á°á¨áḠá áá áá˛áŤáá áŤáá°ááá° ááłá¨áť á°á áĽááᢠá á áá¸áŁáŤá á°ááśá˝ ááľáĽ áá á ááá á˝áá ááľáĽ á°á¨áá˝á°ááá˘
ááľáĽáŤáááľ áŤáá áá¨á á ááá ááĽáĽá ááľáĽ áŁá áááá˝ ááľáĽ á ááŤá˝ ááľááἠá¨ááĽááľáᢠáľááá áá áá áá¨á áá° Kubernetes ááá á¨áá°áá አá ááľ áĽáá´áľ á°á áááą á á°á á á áááł áŤáľá°áłáľáŤá áĽá áŤá¨áášáľ?
á áá°áá áŞáŤáá˝á ááľáĽ ááľáĽáŤá áá¨ááá˝á áááľá°áááľ áááááá ááłáŞáŤ ááá áľááśá˝á ááá¨áĽ áá˝áááŁááá áá á ááá á˘áŤááľ á¨áá¨á°ááľá áĽáŤááá˝ ááááľ áŤáľáááááłáá˘
- á áŁá á°á°áŤá˝ áĽáá˛áá ááľáĽáŤáááľ áŤáá áá¨á á¨áľ áá¨áá¸áľ?
- ááľáĽáŤáááľ áŤáá áá¨á áĽáá´áľ ááĽááľá áá áá°áá áŞáŤáá˝ á¨ááá ááľá¨á ááťáá?
- ááľáĽáŤáááľ áŤáá ááἠá˛ááአááá á˛áŤááľá á¨áĽááľá áá°áá áŞáŤáá˝ áá ááá á ááŁá¸á?
áľá á°áŤá˛áŤá
áá á áŠáá°á á áŽáááŠá°á á˘ááąáľáľáŞ ááľáĽ á¨30 áááłáľ áááľ áŤáá á ááŤáŞ ááᢠáĽáą áĽá áá˝ááá˝á áťá áĽá á ááá ááŞáŤ áŤá áĽá áŠáŁááŤáá˝ áá áľá á°áá áá á¨á° áááľ áĽá áŠá áááľáľ ááá á°áĽáˇáᢠá áľáá áááᣠá°áááá áŤáľá°áľá°ááᣠá á˝áἠá á°áἠáá°áŠáłá áĽá ááŤáá á áá°á ááŤááłáᢠá áŽááááᣠáĽáááá ááľáĽ á ááŤáľá°áá áá ááľáĽ áááŤáá˘
Justin Domingus á DevOps á áŤáŁá˘ á¨áŠá áááľáľ áĽá á¨á°áá á´áááááá˝ áá á¨áá°áŤ á¨áľáá áľ á áľá°áłá°á áááá˛áľ ááᢠá¨á¤áľ áá áá ááłááᣠáĄá áá áŁáľáŁ á¸ááŁáá˝á á ááŤá áĽá á áŽáááŠá°á áá áááἠáááłáᢠá á˛áŤáľáᣠáá˝ááá°á á¨áá°áá áľááľ áĽá á¨á áá á áľá°áá ááľáľ áĽá á¨á áἠáá°á á áľáŞá áá áááŤáá˘
Âť áľá áá˝áá á°á¨á᪠áá¨á áĽáŁááá áááĽá
Âť
Âť
á Khabrozhiteli á áŠáá áá 25% á áá˝ - áŠáŁááŤáśá˝
á¨áá˝ááá á¨áá¨ááľ áľáŞáľ á˛á¨áá, á˘-áá˝áá áá° á˘áá áááŤá.
ááá: hab.com