ααΆαα’αααααα·αααααααααΆα
αααΎααα
ααΎα’ααΈαααΊαα·α ααα»αααααααααααααααΌααααΆαααααΆαααααααα»αααΊααΆαααααααααα»αα αααα»α
ααΆααααααααΆααΆαααααααα»αααΎααααΈααααΎααΆαααΆαα½α Kubernetes
ααΎααααΈα
αΆααααααΎα αααα ααααΆαααααααΆαααΆαααααααα»α αα·αααΆααααααααααααα»ααααα»αααΆαααααΎααΆαααΆαα½α Kubernetes α ααΆααααααααΆααΆααααααααΎαααΆααααααααΆααααααααΆ kubectl
αα
αααα»αααα bash:
echo "source <(kubectl completion bash)" >> ~/.bashrc
αααααααααααααααααα· kubectl
ααΉαααααΌαααΆαααααααα
α―αααΆα .bashrc α αΎαααΉαααααΌαααΆαααααΎα±ααααααααααααααααααααααα·ααΆαααααααααααααααΌαααΆαα
αΆααααααΎαα ααΆαααααΎαααααΏαααΆαααΆααααααααΆαααα αα·ααααΆαααΆααααααααΌα
ααΆ all-namespaces
. ααααααΆααααα’α·ααααααααα
αααα»α
ααΆααααααα’αααα αα αΆαααααΆαααΎα αα·ααααΈααΈααΌαααα»αα αααααααααα
α§ααΆα ααα ααααα·αααΎαααααα·ααΈααααΌαααΆαααααααα·αααααΉαααααΌα ααΆααΎαααΆαααααΆααααααΈαα ααΆααααΌαααααΆααα·αααααααααααΆαααα·ααΆααΈ ααα»αααααα·αααααα·αααΆαα αααα αααααααΆαααΆαααα ααααΆαα’αααα αα αΆαα α αΎαααααα·αααΎαααααα·ααΈαα·αααΆαααααααααα’αααα αα αΆααααααΆααααααααα‘α»ααααααΆαααααααΆααα αααα’αΆα ααΆαα±ααααααΆαααααΆαααα
ααΎααααΈαααααααΆαααααα αΆααα Kubernetes α’αα»ααααΆαα±ααα’ααααααααααΆαααΉααααααΉαααααΆαααΎααα ααΎααΌαααααΆααααααααΈαα½ααα αα½αααΆααααΌαααΆαααααααα αααα»αα―αααΆα yaml αααααΆαα namespace ααΆααααΆαααα½αα αααααΊααΆα§ααΆα αααααα―αααΆαααααααα
apiVersion: v1
kind: LimitRange
metadata:
name: mem-limit-range
spec:
limits:
- default:
memory: 512Mi
defaultRequest:
memory: 256Mi
type: Container
αααααΎα yaml αααααα α αΎαα’αα»αααααα
ααααααααΆαααααααααΆαα½αα α§ααΆα ααααα
ααααααααααα limit-example
. α₯α‘αΌαααα αα»αααΊαααααΆαααααΆαααααααΆααααα»α namespace αααααΉαααΆααααααααα 512Mi ααΎαααααααααααααααα»ααααααααααααααααΌαααΆαααααααααααααααααΆαααα»αααΊααααααα
ααΆααααααΌαααααΆααα αααα»αααααα αΆαααααα Kubernetes
Kubelet ααΆαααααΆαααΎαα αΆααααααΎααααααΌαααααΆααα αααααΆ var/lib/docker ααΆααααΆαα 90% ααααα αααΆααααααΆαα ααααααΆαααΆααααα αααααΊα’ααα αΆαααααΆαα αα αΌαααα Kubernetes 1.7 αα·αααΆαααΆααααααααααΆαααΎαααΎα ααα½α inodes αααααΆαααααΎ αααααααΌαααΉαα ααα½αα―αααΆααα αααα»αααααααααα―αααΆαα
αααααΆαα»αααααα»αααααα’αααα var/lib/docker α’αΆα ααααΎααααΉααα 50% ααααα αααΆα ααα»ααααα’αΆα α’ααα’ααΈααΌα αααααΉααααααααα αΆαααααααααα
αα αααα»αααααα αΆαααααα kubelet ααΈ 1.4 αα 1.6 α’αααααΉαααααΌαααααααααααααα
--eviction-hard
=memory.available<100Mi,nodefs.available<10%,nodefs.inodesFree<5%
αα αααα»ααααα 1.7 αα·ααααααααα ααααααααααΌαααΆααααααααΆαααααΆαααΎαα ααααααΆαααΆααααα αααααα»αααα·ααααα½ααα·αα·ααααααααααα inode ααα
Minikube... ααΌα ααα»ααααααΆαααΆααα Kubernetes αααα»ααααα»α
Minikube ααΊααΆαααααααΆαααΆααααα½ααααα»αααΎααααΈααααΎαααΆαα ααααα Kubernetes αααα»ααααααα ααΆβααααΌαβααΆαβα αΆααβααααΎβαβααΆαα½αβααΉαβααΆαααβαααααΆβααΆααααβαα½αβ:
minikube start
ααΆαααααΎαααΆαααΆααααααααΆααααααααΆαα±ααααΆαα ααααα Kubernetes αα·αααααΆααααααααα»αααααΎαααΆααα ααΎαααΆαααΈαααααα’αααα
αααα·α ααΊαααααααααΎααααααα·ααΈ α αΎαααααΎαααΆαααΆαααα»αααΌαααααΆααα ααΎα ααααααααα αα»αααααΆααααααΌαααΆαααααΆαααΆαα·αααααα ααΌαααΆα Docker ααΉαααααΌαααΆααααααΎαα‘αΎααα ααΎαα»αααααΌαααααααα’ααα α αΎααα·αααααα ααΎα ααααααααααα
ααΎααααΈααααα Docker α±αααα»αααΌαααΆααα α ααααα Kubernetes ααΌαααααΆα αααΆαααΈα docker ααααΌαααΆααααααααΆααααααααΆααΌα ααΆααααααα
eval $(minikube docker-env)
α₯α‘αΌααααααΎαα’αΆα αααααΎααααααα·ααΈαα ααΎα ααααα Kubernetes αααα»ααααααα
αα»αααααααα·αααα·α αΌαααααΎ kubectl αααααα»ααααααααααααΆ
ααΆα αΆααααΌα
ααΆααΆααααααα ααα»ααααααααα·αααΎαααα»αααΆα
αααΎααααα»αααααΎα
αααααααΌα
ααααΆαααααΆαααααααα·ααΈαααααα½ααα (αααααΆα’αααΈααα Kubernetes ααααΌαααΆααααααΎαα‘αΎααααααΆαα) α’ααααα·ααα½αααααΆαααααααααα±ααα’ααααααααααααΆαααααα kubectl
. ααΆααΆααΆααααααΎαααΆααααα»αααΆααααα
ααααΆααααααααΆ ααααααααα±αααα½αααΆααΈαα½ααααΆαααα αααααααααΆαααααα½α αα·ααααααααΆαα
αΌαααααΎααααΆαααααααααΎαααααΆααα RBAC α
α’αααα’αΆα αααα αααααααααααααα·αααα·α αΌαααααΎ α’αΆα αααααΎα αα»α αα·αααααα·ααααα·ααΆααααααααααααααΆααααααΈαα½ααα ααα»ααααααΏαααααΆααααΊαααααααΆαα αΌαααααΎα’αΆααααααΆαααααα’αα»ααααΆαα±ααααΆαααααΆααααα’ααααααααααααααα»αααααα αα·ααΈααα ααΎαααΉααααα ααααΆααα»αααααΆαααΆαα’ααααααα’αΆα αααααααααα ααααα αα·αα’ααααααα’αΆα ααααΎααΆαααααΆααααα
αααααααααααα·ααΆ Pod
ααΎααααΎααΌα ααααα ααΎααααΈααΆααΆααΆαα·αααΆααααααααΆααα αΆααααααΆαααααααα·ααΈαα αααα»αα ααααα Kubernetes? PodDisruptionBudget α αΎαααααααα PodDisruptionBudget α
α αααααααααΌαααΆαααααΎαα αα α»ααααααααΆαααΆαααααΆαα α αΎαααααΆααααααΌαααΆααααα ααααΆαα’αααΈαα ααααααα αααααΆααΆααα·αα ααΆααααΆαααΆαααααααΆααααααΆαα§ααΆα αααα αααΎαααΆααα½ααα½ααααα½ααααα αΌα PDB (PodDisruptionBudget) α ααΆβααααΌαβααΆαβαααααΎαβαααα»αβα―αααΆα yaml ααΆααααβαααβααααΌαβααΆαβα’αα»ααααβαα βααΉαβα αααααα ααααααααααααααααα PDB ααΆααααΆαααα½αααααΌαααΆαααααααααα’αααααααΎαααΎαααααΆαα
α
αααΆα: ααα·ααΆ PDB ααααΌαααΆααααααααα·α
αΆαααΆαααα
ααααααααΆαααααΆαααα·ααΆα’αΆα
αααα‘αααα·αααΆα (
α§ααΆα ααα PDBα
apiVersion: policy/v1beta1
kind: PodDisruptionBudget
metadata:
name: app-a-pdb
spec:
minAvailable: 2
selector:
matchLabels:
app: app-a
αααΆαααΆααααααααααΆααααΈαααΊ matchLabels
ΠΈ minAvailable
. αααΆαααΆααααααααΈαα½ααααααΆααααΆααΎαααααα·ααΈααΆαααααα·ααΆααααΌαα’αα»ααααα α§ααΆα ααα ααααα·αααΎαααα»αααΆαααααααΆαααΆαα½αααααΆα app: app-a
ΠΈ app: app-b
αααααΆαααα PDB αααααΉαα’αα»ααααα
ααααααααΈαα½αααα»αααααα
αααΆαααΆαααααα minAvailable
αααα
αααα»αααααΈαα
ααααααα’αΆα (αααα’αΆα) ααααΆααα ααΆα§ααΆα ααα αααα»αα§ααΆα αααααααααΎα ααα‘α»αααααααα
ααα
αα ααααΈααΆααα’ααααααΌαααΆαααααααα
αα app: app-a
ααΎααααααααΈαα
αααα’αα»ααααΆαα±ααα’ααααααααααααααΆααΎαααααα·ααΈααα»ααααΆαααααα½αααααΎαααΆααα αααααΆαα½ααααα
αααααα·ααΈααΆαααΆααα»αααΆα
ααΆααααα½ααα·αα·αααααααααααΊα’αΆα ααααΎαα ααΆαααΆααα·ααΈααΈααααΆαα αααααααΎααααα Readiness α¬ Liveness α
ααΆααααΎαα’αααααααααΌα (ααΆαααααααααα½α) αααααααΆαααααααααα½ααααααα»αααΊααααααα»αααΆαααα½αα ααΆα αααα
ααΈααΈα (ααΆαααααααΎα) αααα αΆαααΆααΎαα»αααΊαααααΆααα»αααΆαααα’ α¬α αΆαααΆα αααααΌαα αΆααααααΎαα‘αΎααα·αα
ααΆαααααααα
ααΆααααααααααΆαααααααααααΌαααΆααααααααααΆαααΆαααααα
yaml αααααΆααααΆαααααααΆαα αα
ααΈααα α’αααα’αΆα
αααααΆααααΆαα’ααααα αααααααΆαααααΆαααα αα·αα
ααα½αααααΆαααΆαααααα‘αΎααα·αα ααΎαααααααΆααααα’α·αααααααα’αααΈαα½αααα
ααααΆαααΊαα αααααααΈαααααα
ααααΆαααΊααΆααααααα·αααΆααΌαααααΆααα½ααα αααα»α Kubernetes α αα½αααΆα’αα»ααααΆαα±ααααααα»ααΆααααααααΆαααααααΈ ααααΌα ααΆαααααΎααααα½ααααααα’ααααΎααααΆαα αα αααα»α Kubernetes α’ααααααααΆααα’αΆα αα ααΆααα’αα·αα·αα αα·αααΎαααααΉαααα·ααΆααααααααΆααααααΆαααΆααααΆααα
α’αααα’αΆα ααααΎα’αααΈαααααΎαααααΆααα’ααααΆαα½αααααΆα ααα»ααααα§ααΆα αααααααα’αα½αααΊααΆααααααΎαααα·ααααΆαααΆα αααΎαααΎααααΈααααΎαααΆααααααα·ααΈαα ααΎα ααααααααα½αα
α§αααΆααΆα’αααααααΎα
αααααααΌα
ααααΆαααααΆαα dev
ΠΈ qa
. αααααΆααααααΆα’αααα’αΆα
ααΆααααααα·ααΈ app-a
, αααα»ααααααααΆαααααΆααααΎααΆααα
αααα»αααα·ααααΆαααΆααααΈα qa
ΠΈ dev
. αααα»αααααΈααα ααΎαα’αΆα
α
αΌαααααΎα§ααΆα ααααααααα·ααΈαααα‘ααααΈααααΆαααα»αααα·ααΆααΆαααΆααααΆααααααααααΆαααααΆαααΆαααααααααααα environment
α α§ααΆα αααα app: app-a
ΠΈ environment: dev
αααααΆααααα·ααααΆααααα½α αα·α app: app-a
ΠΈ environment: qa
αααααΆααααΈααΈαα
αααα’αα»ααααΆαα±ααα’αααα αΌαααααΎα§ααΆα αααααΆααααΈααααααααα·ααΈ ααΎααααΈααααΎααΆαααΆααααααααα»ααααααααΆαααααΆα
αααα α
Kubernetes ααΊααΆαααααααααααααΆαααΆαααααααΆαα ααα»ααααααααααααααΆαα½αα’αΆα ααααΆαααΆαααααααααααααΆααααΆααααΆαα½αααΉαααααΎαααΆαα αααΎααααα Kubelet ααααΎαααΆαααααΎαααΆαααΆααα’αα αα·ααα·αα·ααααααα’ααααααααΆαα ααααΌα ααΆααααααΆααααΆααα
ααΆααΆααα·αααΆαα ααααΆαα»ααΆαααααααΆαα½αααΉααα·αααααΎα±ααααααααααααααΎαααΆαααΊααα α αΎα Kubernetes ααααΌαααΆααα ααΆα‘αΎαααΎααααΈααααΎααΆαααααααΆαααΈααΌαααααΆαα ααα»ααααααααα·αααΎαααα½αα±ααααααΆαααααα½αααΆαααα α‘αΎα kubelet α αΆααααααΎαααΆααα
ααααα·αααΎα ααα»αααα½αα ααα½ααααα’ααααα»αααΆαααΆαααααααΆα (αα»αααΊααα ααΌαααΆα α’αααΈααααα) ααααΆααααααααΌαααααΆααααΆααααΎααΆααααα’αΆαααααααα
αα½α Go
ααΎαααΆααααααΆαα»αααααΌααααΆαααααΆαααααααΆααα α»ααααααα αααααΆααΆαααααα·ααΈ Go α
Kubernetes ααααΌαααΆααααααΎαα‘αΎααα αααα»α Go ααααααααααααααααΆααα’ααααααΌαααΆαααααααα αααα»α Go α αΎααααααΆααααααΆαααΈαααααααα α’αα·αα·ααααααααΌαααΆαααΆααααααΆααααΌαααΆααααααα
ααΆβα’αΆα βααααΌαβααΆαβααααΎβαααααΆααβα’αααΈβαααααβααααΆβαα·αβαα½αβα±ααβα αΆααβα’αΆααααααβα α§ααΆα ααα ααΎααααΈαααααΈααααααααα Kubernetes αα ααΆαααααΆαα·ααααα’αααα ααΌα αααα α’αααα’αΆα ααααΎαααααα·ααΈααααΆαααααα½αααααα’ααα ααΎααααΈαααααΌααα·αααααα ααΆαααααααΆααααααα·ααΈ α¬ααααΆαααααααα’αΆααα»αα
ααΆααααααΆααΆαααααα·ααΈ Go αα·αααΆαααααΎααΆααα αΆααααΎα’αα·αα·αααα ααΊαααα ααααΆααααΌααααΆαααααααΆαααααα»ααααα’αααα’αΆα αααααα±ααα’αααααααΎααααΆαα Kubernetes ααααΈα
ααΎααΆαα’αααΈααααααααααΌαα’αΆα:
ααααα·αααααΆαααααΎααΆαααααααΆααααααααααααααααα·α ααα½αααΈαα αααα»α Kubernetes αα·αααααααααΎααααΆαααα½αααΆααααααααααααα·αααααΆα .ααααΆαααααααα Kubernetesα ααΌα ααΆα αααΎα α¬ααααΈαααΈ ?α§αααααααΆαααααααααα ααα½α 25 αααααΆααααΆαααααααΆα αα·αααααααααα Kubernetes .
ααααα: www.habr.com