โข ืืชืื ืขื ืงืื ืืืื ืจืื ื-Kubernetes ืืืืกืืืืช: ืืื ืฆืืจื ืื ืืกืืื ืืืืื ืืื ืืืืื ืืช ืื ืืฉื. โข ืืคืขื ืืฉืืืืืช ืืฉืื ืื ืืืจ ืฉืืจืืช Kubernetes ืื ืืื ืืืืืื, ืืืื ืืื'. โข ืืฉืชืืฉ ื-Kubernetes ืื ืืืื ืืืืืจ ืืืืื ืฉื ืืืื ืืฆืจืืืช ืืฉืืืื. โข ืืฆืข ืืืคืืืืืืฆืื ืฉื ืืฉืืืืืช ืขื ืกืื ืขืืืช, ืืืฆืืขืื, ืืืืฉืืช, ืืื ืืืืจืืืืช. โข ืืื ืืช ืืืืื ืืืืืื ืืืืชืจ ืืคืืชืื, ืืืืงื ืืคืจืืกื ืฉื ืืืืฉืืืื ืฉืื. โข ืืื ืฃ ืืช ืฉืืืืช ืืชืขืฉืืื ืื ืืืืืืช ืืื ืืืืืื ืืืืื ืืืงืจื. โข ืืืืขืช ืขืงืจืื ืืช DevOps ืืื ืืืืจื ืฉืื ืื ืฉืฆืืืชื ืืคืืชืื ืืืืื ืืคืขืื ืืฆืืจื ืืืืฉื, ืืืืจื ืืืขืืื ืืืชืจ.
ืืื ืืืืขื ืืกืคืจ?
ืืกืคืจ ืจืืืื ืื ืืืืชืจ ืืขืืืื ืืืืงืืช ืืืืื ืืกืืจืฆืื ืืืืจืืืืช ืขื ืฉืจืชืื, ืืคืืืงืฆืืืช ืืฉืืจืืชืื, ืืื ืื ืืืคืชืืื ืืืขืืจืืื ืืื ืืืช ืฉืืจืืชื ืขื ื ืืืฉืื ืื ืืืขืืจืช ืืคืืืงืฆืืืช ืงืืืืืช ื-Kubernetes ืืืขื ื. ืื ืืืื, ืืื ื ืฆืจืื ืืืขืช ืืื ืืขืืื ืขื Kubernetes ืื ืงืื ืืืื ืจืื - ืื ืื ื ื ืืื ืืืชื ืืื.
ืืฉืชืืฉื Kubernetes ืื ืืกืื ืืืฆืื ืื ืขืจื ืจื, ืขื ืกืืงืืจ ืืขืืืง ืฉื ื ืืฉืืื ืืืื RBAC, ืคืจืืกื ืจืฆืืคื, ื ืืืื ื ืชืื ืื ืจืืืฉืื ืืฆืคืืื. ืื ื ืืงืืืื ืฉืืคื ืืกืคืจ ืืืืื ืืืืื ืืฉืื ืืขื ืืื ืขืืืจื, ืืื ืงืฉืจ ืืืืฉืืจืื ืืื ืืกืืื ืฉืื.
ืขื ืืืื ืฉืืืืช ืขืื ื ืืกืคืจ?
ืชืื ืืื ืชืื ืื ืืืชืืืช ืืกืคืจ, ืื ื ืืืื ืืืืืืืช ืืขื ื ืื-Kubernetes ืขื ืืืืช ืื ืฉืื, ืฉืืืื ื ืขื ืืืืืื ืชืขืฉืืื ืืืืืืื ืืื ืื ืขื ืืืจืื ืื. ืืืื ืฉืืืืช ื ืืืจืืช ืฉืื ืืื ืจืืฆืื ืืงืื ืืขื ื ืืคืจืกืื ืื.
- "ืื ื ืืชืขื ืืื ืืืืข ืืืื ืืืฉืงืืข ืืื ืืืื ืืืืืื ืืื. ืืืื ืืขืืืช ืื ืืขืืืจ ืื ืืืฆืืืช ืฉืื ืืคืชืืจ?"
- "Kubernetes ื ืจืื ืืขื ืืื, ืืื ืืฉ ืื ืืืกืื ืื ืืกื ืืืื ืืืื. ืืื ืช ืืืืื ืคืฉืืื ืืื ื ืงืฉื, ืื ื ืืืื ืื ืืคืื ื ืืกืฃ ืืจืชืืข. ืื ืื ื ืจืืฆืื ืืงืื ืขืฆืืช ืืืืื ืืช ืืืื ืืืืคื ืฉืื ืื ืฉืื ืื ืืืื ืืฉืืืืืช Kubernetes ืืขืืื ืืืืืชื ืืืืืื ืืขืืืช ืื ืื ื ืฆืคืืืื ืืืืชืงื".
- "ืืืขืืฅ ืกืืืืืงืืืื ืืขืืืจ. ืืืขืจืืช ืืืงืืืืืืช ืฉื Kubernetes ืืขื ืืงื ืืฆืืืชืื ืืืฉืื ืืืชืจ ืืื ืืคืฉืจืืืืช ืืืืืจื. ืืฉืืฉ ืืื ืืจืืื ืืขืฉืืช ืืช ืืืชื ืืืืจ, ืืื ืืืืขืื ืืืื ืืื ืืื ืืืื? ืืื ืืขืฉืืช ืืืืจื?
ืืืืื ืืืฉืืื ืืื ืืฉืืืืช:
- "ืืืฆื ืืืื ืืืฉืชืืฉ ื-Kubernetes ืืืื ืืืคืจืืข ืืืืจื ืฉืื?"
ืงืืข. ืชืฆืืจื ืืืืืืืงืืื ืกืืืืื
ืืืืืืช ืืืคืจืื ืืช ืืืืืืื ืฉื ืืืฉืื Kubernetes ืืืชืฆืืจื ืฉืื (ืืืืืจ, ืืื ืขืจืืื ืื ืืืืจืืช ืฉืขืฉืืืื ืืืฉืชื ืืช ืขื ืืืื) ืฉืืืืฉืืช ืืืื. ืขืจืื ืชืฆืืจื ืืืืืื ืืืจื ืืื ืืืืจืืช ืกืคืฆืืคืืืช ืืกืืืื, ืืชืืืืช DNS ืฉื ืฉืืจืืช ืฆื ืฉืืืฉื ืืืืฉืืจื ืืืืืช.
ืืืืื ืฉื ืืชื ืืืื ืืก ืืช ืื ืื ืืฉืืจืืช ืืงืื, ืื ืืืฉื ืื ืืื ื ืืืืฉื ืืกืคืืง. ืืืืืื, ืฉืื ืื ืขืจื ืชืฆืืจื ืืืืื ืืืชื ืืื ืืช ืืืคืจืืก ืฉืื ืืช ืืงืื ืฉืื. ืคืชืจืื ืืจืื ืืืชืจ ืืื ืืืื ืืืคืจืื ืืช ืืชืฆืืจื ืืืงืื ืืืงืจืื ืืืชื ืืงืืืฅ ืื ืืฉืชื ื ืกืืืื.
Kubernetes ืืกืคืงืช ืืกืคืจ ืืจืืื ืฉืื ืืช ืื ืืืื ืชืฆืืจื. ืจืืฉืืช, ืืชื ืืืื ืืืขืืืจ ืขืจืืื ืืืืฉืื ืืจื ืืฉืชื ื ืกืืืื ืฉืฆืืื ื ืืืคืจื ืขืืืคืช ืืคืื (ืจืื "ืืฉืชื ื ืกืืืื" ืืขืืื 192). ืฉื ืืช, ื ืืชื ืืืืกื ื ืชืื ื ืชืฆืืจื ืืฉืืจืืช ื-Kubernetes ืืืืฆืขืืช ConfigMap ืืืืืืืงืืื ืกืืืืื.
ืืคืจืง ืื, ืื ื ืืืงืจืื ืืช ืืืืืืืงืืื ืืืื ืืคืืจืื ืืืืื ืื ืืื ืืืฉืืช ืืขืฉืืืช ืื ืืืื ืชืฆืืจื ืื ืชืื ืื ืจืืืฉืื ืืืืฆืขืืช ืืืฉืื ืืืืื.
ืขืืืื ืงืืืคืืช ืคืื ืืืฉืจ ืืชืฆืืจื ืืฉืชื ื
ืชืืจ ืืขืฆืื ืฉืืฉ ืื ืคืจืืกื ืืืฉืืื ืฉืื ืืืชื ืจืืฆื ืืฉื ืืช ืืื ืขืจืืื ื-ConfigMap ืฉืื. ืื ืืชื ืืฉืชืืฉ ืืชืจืฉืื ืืืื (ืจืื "ืืื: ืื ืื ืืืืืืืช ืขืืืจ Kubernetes" ืืขืืื 102), ืชืืื ืืืืืช ืืืืคื ืืืืืืื ืฉืื ืื ืชืฆืืจื ืืืืขืื ืืืืฉ ืืช ืงืื ืืืืช ืืคืื ืฉืื ืืืจืืง ืืื ืืกืืืจ. ืืืกืฃ ืืช ืืืขืจื ืืืื ืืืคืจื ืืคืจืืกื ืฉืื:
checksum/config: {{ include (print $.Template.BasePath "/configmap.yaml") .
| sha256sum }}
ืชืื ืืช ืืคืจืืกื ืืืืื ืืขืช ืกืืื ืืืืงื ืฉื ืคืจืืืจื ืชืฆืืจื: ืื ืืคืจืืืจืื ืืฉืชื ื, ืืกืืื ืืขืืืื. ืื ืชืคืขืื ืฉืืจืื ืืืื, Helm ืืืื ืฉืืคืจื ืืคืจืืกื ืืฉืชื ื ืืืคืขืื ืืืืฉ ืืช ืื ืืขืืคืืช ืืคืื.
ื ืชืื ืื ืจืืืฉืื ื-Kubernetes
ืื ืื ื ืืืจ ืืืืขืื ืฉืืืืืืงื ConfigMap ืืกืคืง ืื ืื ืื ืืืืฉ ืืืืกืื ืืืืฉื ืื ืชืื ื ืชืฆืืจื ืืืฉืืื. ืขื ืืืช, ืืจืื ืืืืฉืืืื ืืฉ ืืืืข ืจืืืฉ ืืจืืืฉ, ืืืื ืกืืกืืืืช ืื ืืคืชืืืช API. ื ืืชื ืืืืกื ืืืชื ืื ื-ConfigMap, ืื ืคืชืจืื ืื ืืื ื ืืืืืืื.
ืืืงืื ืืืช, Kubernetes ืืฆืืขื ืกืื ืืืืื ืฉื ืืืืืืงื ืฉื ืืขื ืืืืกื ื ืชืื ืื ืจืืืฉืื: ืกืื. ืืืืจ ืืื, ืืืื ื ืกืชืื ืขื ืืืืื ืืืฆื ื ืืชื ืืืฉืชืืฉ ืืืืืืืงื ืื ืืืคืืืงืฆืืืช ืืืืืื ืฉืื ื.
ืืื ืืืชืืื, ืขืืื ืืื ืืคืกื Kubernetes ืขืืืจ ืืืืืืืงื ืืกืืื (ืจืื hello-secret-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, ื ืืชื ืืืคืื ืืช ืืืืืืืงื Secret ืืืืื ืืืืื ืืืฉืชื ื ืกืืืื ืื ืืงืืืฅ ืืืืกืง ืฉืื. ืืืืืื ืืืื, ื ืงืฆื ืืฉืชื ื ืกืืืื ืืขืจื ืืชืื Secret:
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"
ืืชืืืช ืืืืืืงืืื ืกืืืืื ืืงืืฆืื
ืืืืืื ืื, ื ืฆืจืฃ ืืช ืืืืืืืงื Secret ื-container ืืงืืืฅ. ืืงืื ืืืืงื ืืชืืงืืืช hello-secret-file ืฉื ืืืืจ ืืืืืื.
ืืื ืืืืจ ืืช ืกืื ืืงืืืฅ, ื ืฉืชืืฉ ืืคืจืืกื ืืืื:
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, ืื ื ืืืฆืจืื ื ืคื (ืืืงืจื ืื demo-secret-volume) ืืืจืืืืื ืืืชื ืืืืื ืืงืืข volumeMounts ืฉื ืืืคืจื. ืืฉืื mountPath ืืื /secrets, ืื Kubernetes ืชืืฆืืจ ืงืืืฅ ืืื ืืชืืงืืื ืื ืขืืืจ ืื ืืื ืืคืชื/ืขืจื ืืืืืืจ ืืืืืืืงื ืืกืืื.
ืืืืืื ืฉืื ื, ืืืืจื ื ืจืง ืืื ืืคืชื-ืขืจื ืืื ืืฉื magicWord, ืื ืฉืืื ืืคืกื ืืฆืืจ ืงืืืฅ ืงืจืืื ืืืื /secrets/magicWord ืขื ื ืชืื ืื ืจืืืฉืื ืืืืื.
ืื ืชืืื ืืช ืืื ืืคืกื ืืื ืืืืชื ืืืคื ืืื ืืืืืื ืืงืืืืช, ืืชื ืืืืจ ืืงืื ืืช ืืืชื ืชืืฆืื:
The magic word is "xyzzy"
ืงืจืืืช ืืคืฆืื ืกืืืืื
ืืกืขืืฃ ืืงืืื, ืืฉืชืืฉื ื ืืคืงืืื kubectl describe ืืื ืืืฆืื ืืช ืืชืืื ืฉื ConfigMap. ืืื ื ืืชื ืืขืฉืืช ืืช ืืืชื ืืืืจ ืขื Secret?
kubectl describe secret/demo-secret
Name: demo-secret
Namespace: default
Labels: <none>
Annotations:
Type: Opaque
Data
====
magicWord: 5 bytes
ืฉืืื ืื ืฉืื ืชืื ืื ืขืฆืื ืืื ื ืืืฆืืื. ืืืืืืงืืื ืกืืืืื ื-Kubernetes ืื ืืกืื ืืืื, ืืืืืจ ืชืืื ื ืืื ื ืืืฆื ื-kubectl ืืชืืจ ืคืื, ืื ืืกืืช ืืืื ืื ืืืจืืื ื, ืื ืฉืืืคื ืืช ืื ืืืืชื ืืคืฉืจื ืืืฉืืฃ ืืืขืืช ืืืืข ืจืืืฉ.
ืืื ืืืฆืื ืืจืกืช YAML ืืงืืืืช ืฉื ื ืชืื ืื ืจืืืฉืื, ืืฉืชืืฉ ืืคืงืืื kubectl get:
kubectl get secret/demo-secret -o yaml
apiVersion: v1
data:
magicWord: eHl6enk=
kind: Secret
metadata:
...
type: Opaque
base64
ืืื eHl6enk=, ืฉืื ื ืืืืืืื ืืืขืจื ืืืงืืจื ืฉืื ื? ืืื ืืืขืฉื ืืืืืืงื ืกืืื, ืืืืืฆื ืืงืืืื base64. Base64 ืืื ืกืืืื ืืงืืืื ื ืชืื ืื ืืื ืืจืืื ืฉืจืืจืืชืืื ืืืืจืืืช ืฉื ืชืืืื.
ืืืืืื ืฉืืืืข ืจืืืฉ ืขืฉืื ืืืืืช ืืื ืืจื ืืื ืคืื (ืืคื ืฉืงืืจื ืขื ืืคืชื ืืฆืคื ื TLS), ืืืืืืงืืื ืกืืืืื ืืืืืกื ืื ืชืืื ืืคืืจืื base64.
ืืืงืกื beHl6enk= ืืื ืืืจืกื ืืืงืืืืช base64 ืฉื ืืืืื ืืกืืืืช ืฉืื ื xyzzy. ืืชื ืืืื ืืืืช ืืืช ืขื ืืื ืืคืขืืช ืืคืงืืื base64 โdecode ืืืจืืื ื:
echo "eHl6enk=" | base64 --decode
xyzzy
ืืื, ืืขืื ืฉ-Kubernetes ืืื ืขืืื ืืคื ื ืืคืื ืืืขืืช ืฉื ื ืชืื ืื ืจืืืฉืื ืืืกืืฃ ืื ืืงืืฆื ืืืืื, ืื ืืฉ ืื ืืจืฉืืืช ืงืจืืื ืขื ืืืืืืงืืื ืกืืืืื ืืืจืื ืฉืืืช ืกืคืฆืืคื, ื ืืชื ืืืกืก ืืช ืื ืชืื ืื ืืืื ืืืคืขื ื ืืืชื.
ืื ืืชื ืฆืจืื ืืงืืื ืืงืกื ื-base64 (ืืืืืื, ืืฉืื ืืืชื ืืกืื), ืืฉืชืืฉ ืืคืงืืื base64 ืืื ืืจืืืื ืืื:
echo xyzzy | base64
eHl6enkK
ืืืฉื ืืืคืฆืื ืกืืืืื
ืื ืืืื ืืงืจืื ืืืขืจืื ืืืืืืงืืื ืกืืืืื? ืื ื ืงืืข ืขื ืืื RBAC, ืื ืื ืื ืืงืจืช ืืืฉื (ื ืืื ืื ืืคืืจืื ืืชืช-ืกืขืืฃ "ืืืื ืืืงืจืช ืืืฉื ืืืืกืกืช ืชืคืงืืืื" ืืขืืื 258). ืื ืืชื ืืคืขืื ืืฉืืื ืฉืืื ืื RBAC ืื ืฉืืื ื ืืืคืขื, ืื ืืืืืืืงืืื ืืกืืืืื ืฉืื ืืืื ืื ืืื ืืฉืชืืฉ ืืืืืื (ื ืกืืืจ ืืืืฉื ืฉืื ืืืืจ ืืืืืช ืื ืืฉืืืืืช ืืืฆืืจ ืืื RBAC).
ืืฆืคื ืช ื ืชืื ืื ืคืกืืืืช
ืื ืขื ืืื ืฉืืฉ ืืื ืืืฉื ืืืกื ืื ืชืื ืื etcd ืฉืื Kubernetes ืืืืกื ืืช ืื ืืืืืข ืฉืื? ืืื ืื ืืืืืื ืืงืจืื ื ืชืื ืื ืจืืืฉืื ืืืื ืืงืื ืืจืฉืื ืืงืจืื ืืืืืืงืืื ืกืืืืื ืืจื ื-API?
ืืื ืืจืกื 1.7, Kubernetes ืชืืื ืืืฆืคื ืช ื ืชืื ืื ืคืกืืืืช. ืืืฉืืขืืช ืืื ืฉืืืืข ืจืืืฉ ืืชืื etcd ืืืืืกื ืืืฆืคื ืืืืกืง ืืื ื ืืชื ืืงืจืื ืืืชื ืืคืืื ืขื ืืื ืืขืื ืืืฉื ืืฉืืจื ืืืกื ืื ืชืื ืื. ืืื ืืคืขื ื ืืืชื, ืืชื ืฆืจืื ืืคืชื ืฉืืฉ ืจืง ืืฉืจืช ื-API ืฉื Kubernetes. ืืืฉืืื ืฉืืืืืจ ืืืืื, ืืฉ ืืืคืขืื ืืฆืคื ื ืคืกืืืืช.
ืืชื ืืืื ืืืืืง ืื ืืฆืคื ื ืคืกืืืืช ืคืืขืืช ืืืฉืืื ืฉืื ืืืจื ืื:
kubectl describe pod -n kube-system -l component=kube-apiserver |grep encryption
--experimental-encryption-provider-config=...
ืื ืืื ื ืจืืื ืืช ืืืื experimental-encryption-provider-config, ืืฆืคื ื ืคืกืืืืช ืืื ื ืืืคืขืืช. ืืขืช ืฉืืืืฉ ื-Google Kubernetes Engine ืื ืฉืืจืืชื ื ืืืื ืืืจืื ืฉื Kubernetes, ืื ืชืื ืื ืฉืื ืืืฆืคื ืื ืืืืฆืขืืช ืื ืื ืื ืืืจ, ืื ืฉืืืื ืื ืืืื ืงืืื. ืืืืง ืขื ืกืคืง Kubernetes ืฉืื ืืื ืืจืืืช ืื ืชืืื etcd ืืืฆืคื.
ืืืกืื ื ืชืื ืื ืืกืืืื
ืืฉื ื ืืื ืืฉืืื Kubernetes ืฉืืกืืจ ืืืกืืจ ืืืืฉืืื, ืืืื ืืืืืืงืืื ืกืืืืื ืจืืืฉืื ืืืืชืจ. ืืชื ืืืื ืืืื ืขื ืืฉืื ืืคื ื ืืืืงื ืืืืฆืขืืช ืืขืจื ืฉืกืืคืง ืขื ืืื ืื ืื Helm:
kind: Secret
metadata:
annotations:
"helm.sh/resource-policy": keep
ืืกืืจืืืืืช ื ืืืื ืืืืืืงืืื ืกืืืืื
ืืืืืื ืืืกืขืืฃ ืืงืืื, ื ืชืื ืื ืจืืืฉืื ืืื ืืืื ืื ืืคื ื ืืืฉื ืื ืืืจืฉืืช ืืื ืืืืจ ืฉืืืจืชื ืืืฉืืื. ืืื ืืงืืืฆื ืื ืืคืกื ืื ืืืืกื ื ืืืงืกื ืจืืื.
ืืขืืื ืื ืชืฆืื ืืืืข ืกืืื ืืงืืฆืื ืฉื ืืฆืืื ืืืงืจืช ืืจืกืืืช. ืืืฆื ืชืืื ืื ืื ืืืืืกื ืืืืข ืื ืืฆืืจื ืืืืืืืช ืืคื ื ืืืืชื ืขื ืืฉืืื Kubernetes ืฉืื?
ืืชื ืืืื ืืืืืจ ืืืื ืื ืืกืืจืืืืืช ืืืืคืื ืื ืชืื ืื ืจืืืฉืื ืืืืฉืืืื ืฉืื, ืื ืขืืืื ืชืฆืืจื ืืขื ืืช ืืคืืืช ืขื ืืฉืืืืช ืืืืืช.
- ืืืื ืืฉ ืืืืกื ื ืชืื ืื ืจืืืฉืื ืื ืฉืืืื ื ืืืฉ ืืืืชืจ?
- ืืืฆื ืืื ืืืฉ ื ืชืื ืื ืจืืืฉืื ืืืืฉืืืื ืืคืขืืืื ืฉืื?
- ืื ืฆืจืื ืืงืจืืช ืืืืฉืืืื ืฉืื ืืฉืืชื ืืืืืฃ ืื ืขืืจื ื ืชืื ืื ืจืืืฉืื?
ืขื ืืืืืจืื
ื'ืื ืืจื ืื ืืื ืืืขืฅ ืืขื ื ืืกืืื ืฉื 30 ืฉื ื ืืชืขืฉืืืช ืืืืฉืืื. ืืื ืืชื ืืกืคืจ ืกืคืจืื ืืขืืื ืขื ืืืจืืช ืจืืืช ืืืืื ืืช ืฉืื ืืช, ืืืืืขืฅ ืืื ืขื ืชืฉืชืืืช ืขื ื ื-Kubernetes. ืืืื ื ืืคื ืื ืืื ื ืื ื ืืืืืฉ, ืืืจื ืืืงืืืื ืืื ืืื ืื ืืคืกื ืชืจ ืืืืืื. ืืจ ืืงืืื' ืืืืืืืช ืืงืืจื ืืื, ืื ืืืื.
ื'ืกืืื ืืืืื ืืืก - ืืื ืืก ื ืืืื ืืขืจืืืช ืฉืขืืื ืืกืืืืช DevOps ืขื Kubernetes ืืืื ืืืืืืืช ืขื ื. ืืื ื ืื ื ืืืืืช ืืืืฅ, ืืฉืชืืช ืงืคื, ืืืื ืืืฉืืช ืืื ืืืืฉื. ืืจ ืืกืืืื, ืืืฉืื ืืืื, ืขื ืืชืื ื ืคืื ืืืืฉื ืืืืจื ืืื ืืืื ืขืื ืืืชืจ, ืืืจืืื.
ยป ืคืจืืื ื ืืกืคืื ืขื ืืกืคืจ ื ืืชื ืืืฆืื ืืืชืืืช
ยป
ยป
ืขืืืจ Khabrozhiteley 25% ืื ืื ืืืืฆืขืืช ืงืืคืื - ืงืืืจื ื
ืืชืฉืืื ืืจืกืช ืื ืืืจ ืฉื ืืกืคืจ ืืฉืื ืกืคืจ ืืืงืืจืื ื ืืืืื.
ืืงืืจ: www.habr.com