α αααΆαα ααααααα α’ααααα·ααααα’ααααααααααΊααΆαα·αααααααααΈαααα»αα αα»ααααααΌα αα½α pipetail α αα½αααααΆααααααααααααΎααααΈαααααΌααααααΈααα’ααα αΆααααα [ααααααα banal, ααα»αααααα αα] αααα αΆαααΆαααααΆαα αα·αααΆαααααα»αααΆααααααΉαααααα·ααααα·ααΆααααααα»α Kubernetes α
αααα»αααααααααΆα
αααΎαααααΆαααααΆαααααΎααααΆαα Kubernetes ααΎαααΆαααααΎααΆαααΆαα½ααααα»ααα½αα
ααα½ααα (ααΆααααααααααα αα·ααα·αα’αΆα
αααααααααααΆα - αα
ααΎ GCP, AWS αα·α Azure)α ααΌαααα
ααΎαα
αΆααααααΎααααααααΆααααΆ ααα α»αααααααΎαα‘αΎααααααα αααααΆαααΆαααΆαααααααΆαα·αααΆαααΆαααααΆααα’αααααα»αααΏαααααα: ααΎαααΆαααααΎααααααα½αα―αααΆαα
αααΎα!
α’αααααβααΆαβααα α»αβααΌαα
βαααα»α α αΎαβααβαα·ααΆαβα’αααΈβααααβααβααα α»αβααΆαααααβαααααα
1. ααααΆαα ααααΎ αα·ααααααααα
ααΆαα»ααααα·αααΆααααΉαααα½αααΆαααΆαααα α·ααααα»αααΆαα αα·αααααααααααΌααααα»ααααα»ααααααΈα
ααΆααααααΆααΆαααααΎαα»ααααΈααΈααΌ αα·αααΆααααααΆααα’αααΈααΆααα’αα α¬ααΆααααααααΆααααα»αα (ααΎααααΈααΆαα pods α±ααααΆαα
αααΎααα
ααΎααααΆααααΈαα½ααααΆααααα’αΆα
ααααΎααΆα) α ααΌα
ααααααααΆααααααΆααα
ααΆααΎαααααααα αααα»αα’αα‘α»ααααααααααα»αααααα ααΆαααααααΎαααΆαααααααααΆααααααΌαααΆαααααΎααααΆαααααΆααααααα α αΎαααααα»αααΆαααΆαααΆααααΆααααΆαα½αααα½αααΆαααα’αααΈαααααΆ "ααΆαααααΎαα»α" ααα ααΆααα·αααααΎαααΆααααΈααΈααΌ. αααααΆαα±ααααΆαααΆαααΎαα‘αΎαααααΆαααΊααααΆααααααααα·ααΈ ααΆαα’ααααα αα·ααααα·ααΆααα·αααα’ααααααααα (ααΌαα’αΆαααααααα’αααΈααΏαααααα
αααα»αααΆαααααααααααΈαααααααααααααααΎαα β
ααΆααα·αααααααΉααααααααα’αααα»α (αααΆαααααΆαα αα·αααΆα ααΆαααααΆα):
resources: {}
ααααΎ CPU ααΆαααααΆαα (ααααΆααααΆαα αα·αααΆα ααΆαααααΆα):
resources:
Requests:
cpu: "1m"
αααααΆααα·αααα ααααααΆααααααααααααααΈααΈααΌα’αΆα ααΆαα±ααααΆαααΆαααααααααααΆα‘α·ααΆααααα·αααα ααα»αα ααΎαααααΈααΆααααααααααααΎαααΆαααααΆαααα·αααααΌαααΆααααα»ααααααααααααα ααΆααααΈααααααα αααα’αΆα ααΆαα±ααααΆαααΆααααααΆααααααΎαα‘αΎαα ααΆαα ααααΌαα ααααΆααα αααααααα»ααα·ααααΆαααΆαααααα ααΌααΆαααΈααΈααΌ CFS αα αααα»αααΊαααααΈαα»α αα·αααΆααα·αααααΎαααΆααααΈααΈααΌ α’αΆαααααααΎαααααααααααααΆαααααα ααααΌα ααΆααΆααα·αααΌααΆ CFS... Alas, αααααααααααΈααΈααΌα’αΆα αααααΆαα±ααααΆααααα αΆα αααΎαααΆαα’αααΈααααα½αααα’αΆα αααααααΆαααΆαα ααααααΆαααααααα’αααΈααΏααααα’αΆα ααααΆααα αααααΆααααααα
ααΆαααααΎαααΎαα αααΎαααα (α α½αα α·ααα) αααα αΆααΆαα αα αΆαα’αΆα ααΆαα±ααααΆααααα αΆααα ααΆαααΆαααααααααααααααααΈααΈααΌ αα½ααααα αΌαααΆαααααααααααΆα‘α·ααΆ αααααααααααΆαααΆααααααααααααααα’αααα αα αΆαααα ααΆαα±αααααααΆααααα ααΎα’αααααααΆαααααααααα? OOMkill? ααΆα αααα αΎαααΆα’αααΈαααααΎααααα»ααα·ααΆαα’αααΈα
ααΎα’αααα
ααααΆαααααααααααααΆαααααΆαααΎαα‘αΎαααααα? αα»ααααα
ααα’αααα
αα
αΆαα
αααΎαααα α αΎαααααΎααΆαααΆααΆ QoS (αα»αααΆαααααααΆαααα) ααααααααααααΎα’αααα
αα
αΆαααααααααααα (ααΌα
αααα»αα§ααΆα αααααΆαααααα)α ααΌαα’αΆαααααααα’αααΈααΏαααααα
αααα»α
α’αΆα αααα»αααΆαα (α±ααΆαααααααααα»αααΆααααααΆαα OOM)α
resources:
requests:
memory: "128Mi"
cpu: "500m"
limits:
memory: "256Mi"
cpu: 2
ααΆααΆ:
resources:
requests:
memory: "128Mi"
cpu: 2
limits:
memory: "128Mi"
cpu: 2
ααΎβα’αααΈβααΉαβα’αΆα βαα½αβααΆαβαααβαααααΎαβααααΆα?
αααααΆααααα½αααΈ αααααα - αααΆαααΈααα α’αααα’αΆα ααΎαααΆαααααΎααααΆααααααΆα CPU αα αα α»αααααα αα·αααΆαααααΎααααΆααα’αααα αα αΆαααααα (αα·ααα»ααααα»ααα ααΆααααα»ααα½αααΆ)α ααΆαα αααΎα α’ααααααα»αααααΎααΆαα½α α αΎαα ααααΆααααααααΎαααΆαααΆααααααααΆααΆααααααα
kubectl top pods
kubectl top pods --containers
kubectl top nodes
ααααααΆαααΆααααα αα½ααααααα αΆαααααΆαααααΎααααΆαααα αα α»ααααααααα»αααααα ααΆα’αΆα αααααα±ααα’αααααΌααααα·αααα»αααααααΆααααααα·α αααααα»αααααα ααΈαααα»αα’αααααΉαααααΌαααΆα αααααααα·ααααΆαααααΆααααααΌααααααΆααααΆααααααααΆ (ααΎααααΈααααΎααααα½αααΌα ααΆα "ααΎααΆααααα»ααααΈααΈααΌααααααααα»αααΊααΆα’αααΈ?", "ααΎα’αααΈααΆααααα»αααΆαααΈααααΉααα·α?" ααα) αααααΆααααΆααααα’αααα’αΆα ααααΎ Prometheus, DataDog αα·αα§αααααααααααααα αα½αααααααΆααααααα½αααΆαααααααααΈ metrics-server α αΎααααααΆαα»ααα½αααΆ α αΎαα’αααααααΎααααΆααα’αΆα αα½ααα½ααα αα·ααααα αααΆααΆααααααΌαααΆαα
ααΆαααααΎααααΆααααΆααααα»αααααΌαααααααααααααααα·αααααΆααα·ααααααΆαα·α αα ααΆαααΆααααα½ααααααα ααΆααΌα ααΆααα Tetris ααααααααα ααααα·αααΎα’ααααααα»αα αααΆαα αααΎαααααααααΆααααΆααααα»αααααΌαααααΆαα½αααΉαααΆαααααΎααααΆααααΆαααααααΆα (αα·ααΆαααΆ ~10%) ααΎαααΌαααααΆαα±ααααΎαααα·ααααααααΆαααΌαααααΆαααΎ AWS Fargate α¬ Virtual Kubeletα αα½αααΆααααΌαααΆααααααΎαα‘αΎααα ααΎααααΌαα·ααααααααααααα·αααααΎαααΆαααΈααα/αααααααΆαααααα»ααα½αααΆαααααΎααααΆαα αααα’αΆα αααααα ααΆαααααΆααα αααα»αααααααααααααααα
2. ααΆααααΎαα’αααααααΆαααααααΎα αα·αααΆαααααααααα½α
ααΆαααααΆαααΎα ααΆααααα½ααα·αα·αααααΆαααααααΎα αα·αααΆαααααααααα½ααα·αααααΌαααΆαααΎααα αααα»α Kubernetes ααα α αΎαααααααααα½αααααααα ααΎα...
ααα»ααααααΎα’αααα’αΆα α αΆααααααΎαααααΆααααα‘αΎααα·αααΆααααααααααΆ αααα»αααααΈααΆαααα α»αααααααααα? α αΎαβααΎβα§αααααβαα»αααααΆαβααααα»αβααΉαβαααβααααβααΆβααΆβααβααΆαβαααααβαααα½αβααΆβααααα βααΎααααΈβααα½αβααβα ααΆα ααα? α¬ααΆααΆα’αΆα αααααααααα ααΆα αααααΆαααΆααααα αααΎα?
ααΆαααααΎαααααααΆαααααα αααΎαααα ααα‘αααΆαα½αααααΆα
- ααΆαααααααΎα - ααΆααααα½ααα·αα·ααα "ααΆααααααΆαααΆαααΈαα·α" αααα αΆααααααΎαααα‘αΎααα·αααααα·αααΎααΆαααΆαααα
- ααΆαααααααααα½αα - αα·αα·αααααΆαααααααααα½α ααααα·αααΎααΆαααΆααα ααΆααΉαααααΆα
α pod ααΈααααΆαααα Kubernetes (ααΆα’αΆα
ααααΌαααΆααα·αα·ααααααααααΎ
kubectl get endpoints
) α αΎαα ααΆα ααααα·ααααααααΆαα αα αΌααααααΆααααα½ααα·αα·ααααααααΆααααααΌαααΆααααα αααααααααααα
ααΆααααα½ααα·αα·αααααΆααααΈααααα α’αα»αααααααα»αα’αα‘α»ααααααααααΈαα·αααΆααααΌααα POD. ααΆβαα·αααΆβααααΆααααΆααα
ααΆαααααα»αααΆααΌαα
ααΊααΆ ααΆααααΎαα’αααααααΆαααααααααα½αααΊααααΎαααΆααααα
αααα
αΆααααααΎαααα»ααααα ααΎααααΈα±αααααα»αααα’αΆα
ααΉαααΆααααΊαα½α
ααΆαα (Ready
αα·αα’αΆα
α
αΆααααααΎαααααΎαααΆαα
ααΆα
αααα αααααΆαααΆαααΆααααααααααααΆααααααΆαααααΎααα½ααααα»αα
αααααααααΎααααααΆααααΆαααααΎααααΆαααααααα½αααα
αα½αβαααβααΊβααααααΆαβααβααΆαβααβααΎαβααΆβα ααΆα αααβαα βααΎ pod ααΊβααΎαβα ααα»αβαα·α αααα»αααΎααααααα (α¬ pod α’αα»ααααααΆαααααΆαααααΉαααα’ααααααΆααααΎααααΆα) α αααα»αααααΈαααααΆααααα½ααα·αα·αααααΆαααααααααα½ααα½α ααΆαααααααααΆααααα»ααα ααΎααΎαα αΎα "αααααΆαα" ααΆα. ααΆααααα αααααααααααααααΆααααα½ααα·αα·αααααΆαααααααααα½αααΆαααα’ααΆααα’αα»ααααΆα αααααΎαααΆααααα»ααα ααΎ pod ααααααα. αααα»αααααΈααα (ααααα·αααΎααΆαααααΎαααααααΆαααααααααα½ααααΆααα) ααΆααααΆαααααααΆαααααΎαααααααΆααααααΆαααΆαααΈαα·αααΉααααα»αααααΆαααΆαααααΆααα α ααα»α’αααΈβααΆαβααΆβα αΆααααααΎαβααβαααβααΆαβαα»αααΆαβααα’ αα·αβαα·αααβααααΎααΆαβα‘αΎααα·α?
ααΌα
ααααα αΎα αααα»αααααΈαααα ααααΆαααΆααααα½ααα·αα·αααα’αααΈααΆααα’αα ααΊαααααΎαααΆαααΆαααΎααα½αααΆααΆαα½αααΉααααΆαααΆαααααααααααΆαααααααα
ααΆαααααααααα·αααααΉαααααΌαα ααΌα
αααααΆααααααΆααααΆαααΎααααα·αααΎ αα·αα·αααααΆαααααααΎα ααα
ααααααΆααααα½ααα·αα·αααααΆαααααααααα½ααααααΆααααα’ααααααα»αααΆααααα αΆααα αααααΎααααα’αΆα
ααααΎααΆαααΊααααααα
ααΆαααααααα
ααΆααααα½ααα·αα·αααααΆααααΈααααααααα·ααα½ααααΆααααα αα
ααααααααΆαα’αΆαααααααΌαα
αααΆααα ααΎαα·αααΌα
αααααα ααΆααΉαααΆαα±ααααΆαααΆααααΆααα (ααΌα
αααα·αααΉααα) αααααααααΆααα’ααα αααα»αβαααβαααααααα,
3. LoadBalancer αααααΆααααααΆ HTTP ααΈαα½αα
ααΆαα αααΎα α’αααααΆαααααΆ HTTP αα αααα»αα αααααααααα’ααα αααα’αααα αααααααΌααααααα ααΆαααα·ααααΆααααα α
ααααα·αααΎα’αααααΎαααααΆααααααΌα
ααΆ type: LoadBalancer
α§ααααααααααΆααααααΆ (α’αΆαααααααΎα’ααααααααααααΆ) ααΉαααααα αα·αα
αα
αΆα LoadBalancer ααΆααααα
(αα·αα
αΆαααΆα
αααααΎαααΆαααΎ L7 αα ααα»ααααααΌααααΈαααα
ααΎ L4) α αΎαααΆα’αΆα
αααααΆαααααααΆαα
αααΆα (α’αΆααααααΆα IPv4 αα·αα·ααααααΆααααα
ααΆααααα»αααααΌααα ααΆαα
αααα·αααααααααααα»ααα½ααα·ααΆααΈα ) αααααΆααααααΌαααΆααααααΎαααααΆαααααααα
αααΎαα
αααα»αβααααΈβααα ααΆβααΆβα‘αΌααΈααβααΆαβαααα»αβααΆαβααααΎβα§αααααβαα»αααααΆαβααααα»αβααΆαβαααα
βαα½αβαααβααΆαβααΎαβααααΆαααα type: NodePort
. α¬αααααΎαααΆαααα αααααΈαα’αααΈαα½αααΌα
ααΆ nginx-ingress-controller (α¬ ααααα ααα·α) αααααΉαααααΆαααΆαααα½αααα NodePort α
ααα»α
αααα
αααααααααΆααααΆαα½αα§ααααααα»αααααΆαααααα»αααΆααααα
α αΎαααΉααααααΌαα
ααΆα
ααααα»αα
ααααααααααααΎ α
αΌα- ααααΆα Kubernetes α
ααααΆαααααααα»ααααα»α (ααΈααααΌ) αααααααααααααΆαα’ααααααααααΆαα½αααααΆα’αΆα "ααααΆαααααα" αααααααΎααααΆααααααΌα ααΆ ClusterIP αα·αααααααΆααααααααααααΆαααααααΆααααααΆαα½αααΆαααα DNS α αα»αααααΎ DNS/IP ααΆααΆααααααααα½ααα αααααααΆα’αΆα αααααΆαααααααΆαααΊααααΆα αα·ααααααΎααααααααααΆαααα
4. ααΆαααααΎααΆαααααααΆαα ααααααααααααααααααααα·ααααα·ααα·αααΈαααααααα·αααααααααΆα
αα αααααααααααααΆαααα αα·ααααα½αααΆα ααααΈα ααααα α’ααααα·ααα½αααΉαααα’ααααΎααΆαααΆαααααααΆααΌαααααΆααα½αα ααα½αααΌα ααΆααΆαααααΎααααΆαααααΈααΈααΌαα ααΎααααΆααααΆααααααααααα ααΆαααααΎαααααΆα Pod ααααΌααααααα αααα»αααααΈααΆα αααΎαα ααΆαααΉααααα·αααΌα ααΆααΆααααα·αααααααΆααααα pod/node, taints αα·αααΆαα’ααα±α, ααααΎααααΆα, QoS ααΆααΎαα ααΆαααααΎα§αααααααΆαααααααααααααααααααααΆααααα ααααα·ααα·αααΌαααΈααΆααα»αααααααααΈααΆαααααα’αΆα ααΆαα±ααααΆααααα αΆα
αααααααΆααααΆααααΆαααα½ααα½αααααααΌαααΆααααααααα ααα»ααααααΆααααααΈααΈααΌαααααΆαααΆααα’ααααααΌαααΆαααααΎαα»α/ααααΆα
α αα·ααα ααΆααααΆαααα
αααα»ααααααα½αα Pending
. α§ααααααααααΈαααααααααααααα·ααΆααααα
ααΎαααΎαααΆααααα»ααααΈααΈααΌαα
αα
α»ααααααααΆααααα (αα·ααααααΆααΆαααααΎαα»α) α αΎααα·αα
αΆααααααΎαααΆααααααΈαααα (αααααΈα) - αα·αααααααααααΆααααααααααα ααΆαααααα αααααααΉααα·αααααΌαααΆαααααααααααα
αααα»αααααΈαααααΆαααααΎααΆαααααααΆααααα
αααΆα (ααααΎααΆαααααααΆα) - ααΆαααααααΆααα
ααααΈα
αααααααΊααααααα·ααΆααααα»αααΆαα’αα»ααααα αααααααΆα’αααααΆααααααααΆαααααΆαααΆα (ααΆαα½αα§ααααααααα»αααΆαααα αΌα)α ααα·ααΆαααΆααααΆαα ααΆααααααΆααΆαααααα·αααα· ααααααααα’αΆα
ααααΆαααΆααααΆαα αα·ααα·αα
αααααααα»ααααααα ααΌα
αααα ααααα·αααΎα§αααααααΆαααααααααααααααααααα·ααΆααααα
αα»αααααΆαααααααΆαααααα α’αααααααααααααΉααα·αα’αΆα
ααααααααααααΆααααααα
ααΎααααΆααααααααααααΆααα αααααααΆα’αΆα
ααααΎααΆααααα
αααα»ααααααααΆαα’αΆα
ααααΆαααααααααααααα»αααΆαααα αΌααααα·ααα
α Pod ααΉαααααΌαααΆααααΆαααα
αααα»ααααα Pending
.
ααααα·αααααΆαααααΆαααα
αααα»ααα αααα Kubernetes
5. ααΆαααααααααα αααααααααΆα IAM/RBAC
ααααααααα ααααααΆαααααΎααααΆααα’αααααααΎααααΆαα IAM ααΆαα½αααΉαα’αΆααααααΆααααΆααααΆαααααααΆαα αααΆαααΈααα·ααααααα·ααΈ. αααα αααΆαα αΌαααααΎααααααα’αΆαααααααααααΎαα½ααΆααΈ αα·αααααΈααααΆαααα (ααααΈααααΆαααα).
ααΆααΏααααΎααα½ααααααααΉαααΆααα·ααααααΆααα αΌαααααΎαααΆα (αα·αα’αΆααααααΆαα) ααααΌαααΆααααααααΌαααΉααα αααα»αααΆαααααααα ααΆαααααααααααααα·ααΈ ααααΌα ααΆααΆαααααααααα ααα ααααααΆαααααα·αααα’αΆααααααΆαα ααΎαααααΈααΆααΆαααΆαα αΌαααααΎ Cloud IAM αααααα ααααΎαα½ααΆααΈ IAM αα·αααααΈααααΆαααααααα½αα±ααα’αααααααΎααααΆααααΆααααααααααα
ααααα
α’αααΈ kube2iam α αΎααα
ααααααα
αα½ααΆααΈ IAM αααααΆααααααΈααααΆαααα (ααΌα
αααααΆααα·αααααΆαα
αααα»α
apiVersion: v1
kind: ServiceAccount
metadata:
annotations:
eks.amazonaws.com/role-arn: arn:aws:iam::123456789012:role/my-app-role
name: my-serviceaccount
namespace: default
α αααΆααααααααα½αα αα·ααα·ααΆαααααααα?
ααΌα
ααααΆαααααααα αα»αααααααα·αααα·αααααααΈααααΆαααα αα·ααααααααααααΆα admin
ΠΈ cluster-admin
ααααα·αααΎαα½ααααα·αααααΌαααΆαααΆα ααααα·ααΆαααΆαααααα·α
αααα»αααΆαα’αα»αααα ααΆαα·ααααα
αααα»α RBAC K8s ααα»αααααα·αααΆααΆαααααααααα
6. αα»αααΉαααα’ααααΎααΆααααααΆαααααααααααααααααα·αααααΆαααα
αααααααΆα’αααααΆαααΆαα ααααα ααα½αααΈααααΆαααΆαααααααΆααα½αα ααα½ααα ααΎααααΆαααα½αα ααααΆααααααΆααα αΎααα½αααΆαα½αααΆααΆααα’ααα ααααα ααααΆαααΆααα·αααα’ααααα? ααα»ααααα ααα»α’αααΈααΆαααΆααΆαα ααααααΆααα’αααα ααΎααααΆααααΌα ααααΆ? ααΎ Kubernetes αα½ααααααααααΌαααΆαα’αΆα ααααΆαααααα (HA) ααααα?!
ααΆα’αα»αα αααααα·ααΈαααααααα Kubernetes ααΆααααα·ααααα½α ααααΎααααααααα½α αα·αααααααΆαα αααΆααααα’αααα·ααΆαααΆα ααααα‘αα (ααΆααααααΆααααΆααααα·αααααααΆα) αααααΆαα pods α αα½αααααααΌααααααααΆαααααΆαα αααΆααα
// ΠΎΠΏΡΡΠ΅Π½ΠΎ Π΄Π»Ρ ΠΊΡΠ°ΡΠΊΠΎΡΡΠΈ
labels:
app: zk
// ΠΎΠΏΡΡΠ΅Π½ΠΎ Π΄Π»Ρ ΠΊΡΠ°ΡΠΊΠΎΡΡΠΈ
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: "app"
operator: In
values:
- zk
topologyKey: "kubernetes.io/hostname"
α’ααα αΎαα α₯α‘αΌαααα pods ααΉαααααΌαααΆααααααααααα
ααΎααααΆαααααααααααΆ (αααααααααααααααΌαααΆααααα½ααα·αα·ααααααααα»αα’αα‘α»ααααααααααααααααΆ ααα»αααααα·αααααααα»αα’αα‘α»ααααααααα·ααααα·ααΆααααααα½ααααα - α ααα»ααΌα
ααααα αΎα requiredDuringSchedulingIgnoredDuringExecution
).
αα
ααΈαααααΎααααα»ααα·ααΆαα’αααΈ podAntiAffinity
αα
ααΎααααΆααααααααααααΆα topologyKey: "kubernetes.io/hostname"
, - α αΎααα·ααααα’αααΈααααααααα’αΆα
ααααΆααααααααααΆααα ααΎααααΈα’αα»αααα HA αααααα α’αααααΉαααααΌαααααααααα±ααααΆαααααααΈααααα
αα
αααα»ααααααΆααααααα
7. αα·αα’αΎααΎ PodDisruptionBudgets
αααααααΆα’αααααΆαααααα»αααα·ααααααα ααΎα ααααα Kubernetes α ααΆαααΆαααααα ααααΆαα αα·αα ααααααααα½αα―αααααΌαααααααΎαα αα α»ααααααααΆα (α¬αααααα) α PodDisruptionBudget (PDB) ααΊααΆα’αααΈαα½αααΌα ααΆαα·α αα αααααααααααΆααΆααααΆαααααααΆαα’ααααααααααααα ααααα αα·αα’αααααααΎααααΆααα
PDB α’αα»ααααΆαα±ααα’ααααααααΆαααΆαααααΆαααααΆααααααααααααΆαααααΈαααααααααΆααα
apiVersion: policy/v1beta1
kind: PodDisruptionBudget
metadata:
name: zk-pdb
spec:
minAvailable: 2
selector:
matchLabels:
app: zookeeper
αααα»αβα§ααΆα αααβααα α’αααβαααα»αβααΆαβααΆβα’αααβααααΎβα ααααα ααΌαβαααααβαα βααΆααβα’αααβαααααααααα "α α αααα»αααΆαβααααΆβα’αααβααβαα½αβαααα α αΎαβαα·αβααΆβα’αααβααααΎβαααΆαβααΆβαα αααα»αβα ααβααΆαβααααΆααααβα ααααβαααΆαβα αα βααΆαα 2 αααβααΆαα·α αα "α
α’αααα’αΆα
α’αΆαααααααα’αααΈααΏαααα
8. α’αααααααΎααααΆααα αααΎα α¬ααα·ααααΆααα αααα»αα αααααααΌαα αα½αα
α αααααααααα Kubernetes (α αααααααααα) αα·ααααααα’ααΈααΌα‘ααααΉαααΆα.
ααΆαααααα»αααΆααΌαα ααΊααΆ ααααα·αααΎα’αααααΆαααααααΆαααΆααααα»αααααα·ααααααΆααα·ααααα αααα»α namespace αα½α αα·αααΆααααα»αααα·ααααα αα½ααααααααα ααααα½αααΆ ααΉααα·αααΆαα₯αααα·ααααΎααααΆαα αα·ααα αα... ααααααΆαααΆααααα ααααα·αααΆααααΆααααααΆαα―ααα’αΆα αααααα ααΆααααααααΎααααΎααααΆα/αααααααα ααΆααααααααΌααΆ αα·αααΆααααααααααΆααα’αΆαα·ααΆαα ααΆαα―αα "ααΆαααΆα" αα½αα ααα½ααα αααα»αααααα αααα·ααααααααααΌαααΆαααααααααααΆααααα·αααααααΆα ααΆαα’ααα±α ααΆααα·ααααααΆαα α·ααα (α¬α’αααααααΎαααΎαααααΆαα) ααα»ααααααΆααααααααααααααΊαα·αααΆ αα·ααΆα α’αα»ααααα
α’ααααααααααΌαααΆααααα αΌαααααΆααΌαααααααααααααα»αααΆαααΆαααΆααααΈααα αααα»αα ααααααααα½αααΉαααααΌααααααααΆαααΆαα½αααΉαααΆααααα»αααααΆαα ααααα·αααΎαα·αααΆααααααΌαααΆααααααααα α αΎαα’αααα’αΆα ααΆαααααααΆαααΆααα½αα αα½ααααα»ααααα (αα·ααΆαααΆαα αααα»ααααααΆααΆααα) αααααΆααααααΆαααααΎαααΆαααΎααααΈααααΎααΌα ααααα αααααΉααααααα ααΆαααΌαααααα·ααααααααα’ααΈααΌα‘ααα
9. αααααΆαααα ααΆα αααααΆααααα α α ααααα
ααΆααΉαααΆααααΎαααΎαααΆα
ααΆα
αααααΆααα’αααα
αααα»αα
αααααααΎαα‘αΎαααΆααααααααΆααααααΌα
ααΆ NodePort ααααααααΆαααααααΆαααΎαααααΌαααΆαααααα externalTrafficPolicy: Cluster
... ααΆααΆααααααΆ NodePort ααΎααα
ααΎαααααααααΆαααααα»αα
ααααα α αΎαα’αααα’αΆα
ααααΎαα½αααΆααΆαα½αααΎααααΈααααΎα’ααααααααααΆαα½αααααΆαααααααα
ααααΆα (αααα»ααααα)α
αααα»ααααααΆαα½αααααΆααα αααααα·αααααΆαααααααΆααααααΉαααααΆαααα NodePort αααααΆααααααΆααααΆαααΎ ααΆααααααΆα’αΆα
ααααΎααΆαααααΎααααΆααΆααααΆαααα½αααα»αααααα αααα»αααααααααΆααααΆααααα. αααααΆααα·αααα ααααα·αααΎαααα»αααααΆαααα
node ααααα·αααΆα pod αααααααΌαααΆα ααΆααΉααααααΌα traffic αα
node αααααααα ααΆαααααααα α αα·αααΆααααααΎαααΆαααΊααααΆα (ααααα·αααΎααααΆαααααα·ααα
αααα»αααααααααα’αΆα
ααααΆα/ααααααααααα·ααααααααααααααααΆ ααΆαααΊααααΆαα’αΆα
αααααααΆαα ααΎαααΈααα ααααααΎαα
ααΆα
αααΉαααΎαα‘αΎα)α
αααααΆααα·αααα ααααα·αααΎααααΆαααα Kubernetes ααΆααααΆαααα½αααΆααααααΆαααααααα externalTrafficPolicy: Local
αααααΆαααα NodePort ααΎαααααΎααααΆααααΆαααααααα pods αααααααΌαααΆααα·αααΆαααα»αααααΎαααΆαα αα
αααααααΎα§ααααααα»αααααΆαααααα»αααΆααααα
ααααα·αα·αααααααΆαααΆα (ααΆααα·αα·ααααα»αααΆα) α
ααα»α
αααα
αα (ααΎααΆααααΎααΌα
ααααα
AWS ELB) ααΆαα ααΉααααααΌαα
ααΆα
ααααα
ααααΆααα
αΆαααΆα
αααααα»ααααααααααΉαααΆαα₯αααα·αααααααΎααΆααααααΆαααα αααααΌαααΆααααα»αααΆαααααΆ αα·ααααααααα
αα (αα·ααα»ααα·αα·α
αααααααααααΌα
ααααΆ)α
ααΆαα±ααΆαααααααααα’ααααααα»αααααΎα’αααΈαα½αααΌα ααΆ ααααα ααα·α α¬ nginx-ingress-controller ααΆα ααα»α αααα αα NodePort (α¬ LoadBalancer αααααααΎ NodePort ααααα) ααΎααααΈαααααΌαα ααΆα αα αΌα HTTP α αΎαααΆαααααααααααΎααααα’αΆα ααΆαααααααααΆαααΊααααΆααααααΆααααααΎααααααα
Π
10. αα»αα αααΆααααΉαα ααααα α αΎααα»αααααΆαααΎααααα αααααααΆ
ααΆαααΈαα»α ααΆααΆαααααΆαααααα»αααΆαα α
αααΆαααΈαααααΆααααααααααΉαααααΌαα
ααΏαααααααΆ (ααα’ααααΎααααΉαααα·ααΆααααα·α)α ααΆααΆααα’ααααΆαα αΆααααααΎααααααααα»ααΆααααααα·α ααΌα ααααα αααααααΆααααααααααααΆα ααΆαβααααΎβααβαααβ¦ ααΆα αααΎαααααΆαααΆαααααααα»ααα α αΎα α αΎαααΆαα ααααααΌαααΆαααααΎααααΆαααααα»αααα·ααααα α αΎααααααααααΆααααΆα αααααΆα
αα·αααΆαα’αααΈαααααΆαααα’αααΈα
αααααααααααααα
ααΆααααα
α·ααα
αΉα ααΌα
ααααααΎαααΌαααααΆαα±αααααα½αααΆα
ααααΆαααα
αΆα αααααααααα»αα’αα»αααα ααΆαααααααααααααααα αααααΆα (αααααΉααα½α
αααααΆααα·αααα α’ααααα·ααα½αααααΆαα ααααααα‘αΎαα ααΆαα½αβααΉαβαααβααααΆ αααααΆαααααα½ααα·αα·αααα’αΆα ααΊα. ααΆαα αααΎαααααααΆαααααΊαααααΆαααααααα»αα½αα ααα½αααααααΌαααΆααααααΎααααααααΆαααΆαααααα·αααααααΆ (ααααΆαααΆαααΌαα αα αααααααΎ Helm ααΆαα½αααΉαααΆααααααααααΆαααΎα αααααΆααΌαα ααα»αααααααΆαααΆαααααααΆαα αααα»α configmaps/secrets αα·αααααΌαααΆαααααΎαα αα α»ααααααααΆα - ααΆαααααα ααααα»ααΆααααΆααααΆααααααΌααααα»ααα αααα»α αααααΆααααααα»αααααΆ) α¬ααΆαα½αααΉαααΆαααααααα½ααααααααααα» kube-api (αααααΆααααΆαααααΎααΆαααααααΆααααααααααααααααα· αααααΆαα CI/CD αααααΆααααΆααααα½ααα·αα·ααα αααααα ααα»ααααΉαααα·ααΆααα α§ααααααααααΆααα)α
ααΎαααΈααα ααΎαααΌαααααΆαα±αααα·αα·αααααΎααα·α
αα
ααααααααα SLA/SLO ααΆαα½αα’ααααααααααααΆ Kubernetes αααααΆαααααααααα α αΎαααα
α·ααααα»αααΆααααΎααΆαααΆααΆα α’ααααααα’αΆα
ααΆααΆααΆαα ααΆααααααααααααΆαα’αΆα
ααααΆααααααααΆαα (α¬αααΆαααΆαα»ααααααααΆ) ααα»αααααα·ααααααΆααΆααααααΆαααα p99 ααααααΎαααα’αααααααΎαα
ααΆαααααα αα
αααα»αααΆαααααααααααα’αααα’αΆα
α
αΌα kubectl get nodes
α αΎαααα½αααΆαα
ααααΎααααααΆααααΈ 10 ααΆααΈααα»ααααα α αΎααααααΉααα·αααΆααΆαααααΆαααΎαααααααααααα·α
αα
αααααααααααααΆαααααααααα
11. ααααΆαααααααΆααα αααααααΎααααΆαα α»αααααααααα»αα
ααα»αααααααααΊααΆαα»ααΆααα½α
αα
α αΎαα ααααΈαααα ααΎαααΆαααααααΆαααα
αα
αααααααααα·αααΌαααΆααΉαααΆαααα αααααΆαααα»αααααΆα
αααΎαααΆααααααΈαααα·αααααααααΌαα
αα ααΆααααααααΎααααΆα :latest
α αΎαβααΆαβα
αΆααβααααΎαβααααΆααβααααα α ααΊα!
ECR
αααααα
αα»αααααΉαααΆα’αααΈαααΉαααααΎαααΆαααααα½ααααα Kubernetes αα·ααααααΆ panacea ααα αααααα·ααΈαα·αααα’
α’αααα’αΆα
ααααΆααααΈαααα·ααααααα·ααααααααααααααα»ααααααααα
αααα»α
α’αααβαααβα
ααβααααααβαα
βαααα»αβαααααΈβααβααα α»αβαααβααΆαβαααααβα±ααβαααα»αβα’αααααβαααβα’αΆα
βααΆααααβααβααΎαβαα
βααΎ Twitter (
PS ααΈα’ααααααααα
ααΌαα’αΆαααααααα ααΎαααααααααααΎαα
- Β«
ααΆααα ααΆα ααααα Kubernetesα ααΎαα½αααααΆαα ααα½αααα»ααααΆα? Β» - Β«
ABC ααααααα·αα»ααα αααα»α Kubernetes: ααΆααααααααααΆααααΆαααααΉαααααΌα ααΆαα’αα»ααααΆα ααααααα Β» - Β«
ααΆαααααΎααΆαααααααΆααααααααααααααααα· αα·αααΆααααααααααααααΆααα αααα»α Kubernetes "(αααΆαααΆααααα·αα·ααα αα·αααΈααα’αΌ); - Β«
ConfigMaps αα αααα»α Kubernetesα α ααα»α ααααΆαααααααα½αααΉαα’αααΈ "α
ααααα: www.habr.com