Southbridge ááŒá±ááŸááºážáá»ááºáááá¯áá¬ááŸáá·áº Slurm ááᬠPavel Selivanov ááẠDevOpsConf 2019 ááœáẠááááºáááºááœá²áá áºáᯠáá±ážáá²á·áááºá á€áá±á¬ááŒá±á¬ááœá²ááẠKubernetes "Slurm Mega" á ââáááºááŸáá¯ááºážáá±á¬áááºáááºážá áá±á«ááºážá ááºáá»á¬ážáá²á០áá áºá áááºáá áºááá¯ááºážááŒá áºáááºá
ááŒááºáá±á¬ááºááŸá¯á¡á±á¬ááºááœáẠá¡á á®áááºáá¶á á¬á á á¬áá¬ážááŸááºáááºážááŒá áºáááºá
áá±á¬ááºážáá±á¬áá±á·áááºáááºážáá« áá¯ááºáá±á¬áºááá¯ááºáááºáá»á¬ážááŸáá·áº á á¬áá¬ááŒáá°áá»á¬ážá áá®áá±á·áá±á¬á· áá¯á¶ááŒá¯á¶áá±ážá¡ááŒá±á¬ááºážááŒá±á¬áááºá
áá®áá±á· áááºážááá²ááŸá¬ áá¯á¶ááŒá¯á¶áá±áž á¡á á±á¬áá·áºááœá± á¡áá»á¬ážááŒá®áž ááŸááá±áá¬ááᯠááœá±á·ááá¯ááºááááºá áá»áœááºá¯ááºááẠááá·áºá¡ááœáẠáá¯á¶ážá á¶á¡ááá¯ááºáž áá¯á¶ááŒá¯á¶áá±ážáá±á¬áá០á ááºážáááºážáá»ááºáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯áá«á ááá·áºá¡á¬áž ááŒáá¯áááºáá±á¬ááºážáááºá¡ááºáá«áááºá
ááœááºáá²á·áá±á¬ ááŒá±á¬ááºáááá·áºá á¡áá»á¬ážáá°áá« Kubernetes á¡á á¯á¡áá±ážáá áºáá¯ááᯠááœá±á·ááá¯ááºááááºá á¡áá»á¬ážáá°ááŸá¬ ááá¯áááºááŸá¬ namespace á nth á¡áá±á¡ááœáẠááŸááááºá ဠnamespaces áá»á¬ážááœáẠá¡áá¯á¶ážááŒá¯áá°áá»á¬ážááẠáááºážááá¯á·á namespace ááœáẠáá®ážááŒá¬ážááœá²áá¬ážáááºá á€á¡áá¯á¶ážááŒá¯áá°áá»á¬ážá¡á¬ážáá¯á¶ážááẠááá°áá®áá±á¬áá¯áá¹ááá®áá»á¬ážá០áááºááá¯ááºáá«áááºá áá±á¬ááºážááŒá®á á€á¡á á¯á¡áá±ážááᯠCDN á¡ááŒá Ạá¡áá¯á¶ážááŒá¯ááá·áºáááºáᯠáá°ááá«áááºá ááá¯ááá¯áááºááŸá¬ áááºážááá¯á·ááẠááá·áºá¡á¬áž á¡á á¯á¡áá±ážáá áºáᯠáá±ážáááºá áááºážááá¯á·ááẠááá·áºá¡á¬áž ááá¯áá±áá¬ááœáẠá¡áá¯á¶ážááŒá¯áá°áá áºáŠážááᯠáá±ážáááºá áááºááẠááá¯áá±áá¬ááá¯á·ááœá¬ážá áááºáá¡áááºáá±áá¬ááᯠááœá¬ážáááºá áááºááá»ááºááŸá¬á á¬áá»á¬ážááᯠááŒáá·áºáá»ááºáá¬ážáááºá
áá»áœááºá¯ááºáááááºáá¯áá¹ááá®ááẠááá¯ááá¯á·áá±á¬áááºáá±á¬ááºááŸá¯ááᯠáá±á¬ááºážáá»ááẠááŒáá¯ážá á¬ážáá²á·áááºá ááŒá®ážáá±á¬á· áá®ááŒá±ááŸááºážáá»ááºá ááá·áºáá±á¬áºááá¬ážá áááá·áºáá±á¬áºáá°ážáá¬ážááá¯áá¬ááᯠááŒáá·áºááá¯á· á¡á á¯ááá¯ááºá¡ááŒá¯á¶ááá¯ááºááᯠááá¯ážááá¯ááºážááá¯ááºážáááºá
áá»áœááºáá±á¬áº áá®á¡á á¯á¡áá±ážááᯠáá±á¬ááºáá¬áááºá áá»áœááºá¯ááºá¡á¬áž á¡ááá·áºá¡áááºááŸááá±á¬ á¡ááœáá·áºá¡áá±ážá á¡ááá·áºá¡áááºááŸááá±á¬ á¡áááºáá±áᬠáá±ážáá¬ážáá«áááºá áá¯á¶ááŒá¯á¶ááŸá¯ááá¯áᬠáá¬áá²ááá¯áá¬ááᯠááá¯ááá°ááœá± áá¬ážáááºáááºá Kubernetes ááœáẠRole-based access control (RBAC) á¡ááŒá±á¬ááºáž áááºááŒá®áž - ááŒáá·áºáá»ááºááŒááºážá០áá®ážááŒá¬ážááœá²áá¯ááºááŒááºážáááŒá¯ááá¯ááºá á±ááẠáááºážááᯠááááºáá¬ážáá«áááºá ááŒáá·áºáá»ááºááŒááºážáááŒá¯áá² pod áá áºáá¯ááá¯ááœáá·áºááŒááºážááŒáá·áº ááŒá±ááŸááºážáááºááŒáá¯ážá á¬ážáá²á·ááá·áºááŒá¿áá¬ááᯠáá»áœááºá¯ááºáááŸááºáááá±á¬á·áá±á¬áºáááºáž pod áá áºáá¯áá»áŸáᬠá áááºááá¯áá«áááºá áá¶áá±á¬ááºážá á±áááºá¡ááœááºá áá»áœááºá¯ááºááẠá¡á á¯á¡áá±ážááœáẠá¡áááºá¡ááœáá·áºá¡áá±ážá áá»áœááºá¯ááºáá¯ááºááá¯ááºáááºá áá»áœááºá¯ááºáá¯ááºááá¯ááºáááºááŸáá·áº áááºážááá¯á·ááẠááá¯áá±áá¬ááœáẠááœá²áá»á±á¬áºáá±áááºááᯠááŒááºááẠáá¯á¶ážááŒááºáá²á·áááºá áá áºáá»áááºáááºážááŸá¬áááºá RBAC ááœáẠáááºážááá¯á· ááŸá¬ážááœááºážá áœá¬ ááŒááºáááºáá¬ážáááºááᯠáá»áœááºá¯ááºááŒá±á¬ááŒáá«áááºá
ááá¯á·ááŒá±á¬áá·áº ááŸá áºáááá áºá¡ááŒá¬ááœáẠáá»áœááºá¯ááºááẠáááºážááá¯á·á á¡á á¯á¡áá±ážááá¯á· á á®áá¶ááá·áºááœá²áá°áá áºáŠážááᯠáááºáá¶áááŸááá¬á á¡áá®ážáá¬ážááŸá á¡áááºáá±áá¬áá»á¬ážá¡á¬ážáá¯á¶ážááᯠááŒáá·áºááá¯ááºáá¬á áááºáá±á¬ááºááŸá¯ááᯠáááºáá°ááŒá®áž á¡áá¯á¶ážááŒá¯ááŒá®ážáá±á¬ áá¯áá¹ááá®áá»á¬ážá áá¯ááºáá¯ááºááŸá¯ááá¯ááºáᬠáá»ááºááŸá¬á á¬áá»á¬ážááᯠááá¯áá±áá¬ááœáẠááŒááºááœá±á·áá²á·ááááºá áá áºá á¯á¶áá áºáá±á¬ááºá ááŸá±á·ááá¯á·ááœá¬ážáᬠáááºáá á¬áá»ááºááŸá¬áá±á«áºááœáẠáá²ááá¯á áá¬ážá¡áá»áá¯á· áááºááŒááºážáááŒá¯ááẠáá¬ážááá¯ááºáá²á·áááºá
áá«áá«ááá¯áááºááá¯áá¯ááºáá²á·ááá²á áááºážááá¯áááºááá¯áá¬ááœááºáááá²ááá¯áá¬ááᯠá¥ááá¬ááœá±áá²á· ááŒá±á¬ááŒáááºá
áá«áá±ááá·áº á¡áááºáá¯á¶áž ááá¯áá·áºááá¯ááá¯áẠááááºáááºáá«áá á±á áá»áœááºáá±á¬á·áºáá¬ááẠPavel Selivanov áá«á áá»áœááºáá±á¬áºá Southbridge ááŸá¬ áááá¯áá¬áá áºáá±á¬ááºáá«á Kubernetesá DevOps ááŸáá·áº áááºážááŒááºáá±á¬ á¡áá¬áá»á¬ážá¡á¬ážáá¯á¶ážááᯠáá»áœááºá¯ááºáá¬ážáááºáá«áááºá Southbridge á¡ááºáá»ááºáá®áá¬ááœá±áá²á· áá»áœááºáá±á¬áº áá®á¡áá¬á¡á¬ážáá¯á¶ážááᯠáááºáá±á¬ááºáá±ááŒá®áž ááá¯ááºáááºáá±áá«áááºá
áá»áœááºá¯ááºááá¯á·á á¡ááááá¯ááºáá±á¬ááºááŸá¯áá»á¬ážá¡ááŒááºá áá»áœááºá¯ááºááá¯á·ááẠSlurms áá¯áá±á«áºáá±á¬ ááá±á¬áá»ááºáá»á¬ážááᯠáááŒá¬áá±ážáá®á á áááºáá¯ááºáá±á¬ááºáá²á·áááºá áá»áœááºá¯ááºááá¯á·ááẠKubernetes ááŸáá·áº áááºááœá²áá¯ááºáá±á¬ááºááá¯ááºáá±á¬ á áœááºážáááºááᯠá¡ááŒá¬ážáá°áá»á¬ážá¡á¬áž K8s ááŸáá·áºáááºáž áá¯ááºáá±á¬ááºáááºá á±ááẠáááºáá±ážáááºá¡ááœáẠáá°áá»á¬ážáᶠá¡áááºážáááºáá°áá±á¬ááºáá¬ááẠááŒáá¯ážá á¬ážáá±áá«áááºá
áá®áá±á· áá¬á¡ááŒá±á¬ááºážááŒá±á¬áááá²á á¡á á®áááºáá¶á á¬á áá±á«ááºážá ááºááẠKubernetes á¡á á¯á¡áá±ážá áá¯á¶ááŒá¯á¶áá±ážá¡ááŒá±á¬ááºáž áááºááŸá¬ážáááºá áá«áá±ááá·áº áá®á¡ááŒá±á¬ááºážá¡áá¬á á¡áááºážááŒá®ážáá»ááºáááºááá¯á· áá»ááºáá»ááºážáá² ááŒá±á¬áá»ááºááẠ- áá«ááŒá±á¬áá·áº áá»áœááºáá±á¬áº áá¯á¶ážá áááŒá±á¬ááá·áº á¡áá¬ááᯠáá»ááºáá»ááºáž ááŸááºážáááºážáá»ááºáá«áááºá á¡ááºáá¬áááºááŸá¬ á¡ááŒáááºáá áºáá¬áá¯á¶ážáá¬ážááŒá®ážááŒá áºáá²á· áááºáá¬á¡áá¯á¶ážá¡ááŸá¯ááºážááœá±á¡ááŒá±á¬ááºáž áááŒá±á¬áá±á¬á·áá«áá°ážá RBAC á¡áá»áá¯ážáá»áá¯ážááŸáá·áº áááºááŸááºáá»á¬ážá
Kubernetes á¡á á¯á¡áá±ážááŸá áá¯á¶ááŒá¯á¶áá±ážá¡ááœáẠáá»áœááºá¯ááºááŸáá·áº áá¯ááºáá±á¬áºááá¯ááºáááºáá»á¬ážá¡á¬áž áá¬áá»ááºá á±ááá·áºá¡áá¬áá»á¬ážá¡ááŒá±á¬ááºáž ááŒá±á¬ááŒáá«áááºá Kubernetes á¡á á¯á¡áá±ážáá»á¬ážááᯠáá¶á·ááá¯ážáá±ážáá±á¬ áááºáá±á¬ááºááŸá¯áá±ážáá°áá»á¬ážááŸáá·áº áá»áœááºá¯ááºááá¯á·áᶠáá¬áá±ážááá·áº áá±á¬ááºáááºáá»á¬ážááŒá¬ážááœáẠá€ááŒá¿áá¬áá»á¬ážááᯠáá»áœááºá¯ááºááá¯á· ááœá±á·ááŒááºááá«áááºá á¡ááŒá¬ážáá±á¬ á¡ááá¯ááºáááºáᶠá á®áá¶ááá·áºááœá²áá±áž áá¯áá¹ááá®áá»á¬ážá០áá»áœááºá¯ááºááá¯á·áᶠáá±á¬ááºááŸááá¬áá±á¬ áá±á¬ááºáááºáá»á¬ážáá¶ááŸáááºá ááá¯ááá¯áááºááŸá¬á á¡ááŒá áºááá¯ážáá¡ááá¯ááºážá¡áá¬ááẠá¡ááŸááºááááºááẠá¡ááœááºááŒá®ážáá¬ážáá«áááºá
áá®áá±á·ááŒá±á¬ááŒááá·áº á¡áá»ááºáá¯á¶ážáá»ááºááŸááá«áááº-
- á¡áá¯á¶ážááŒá¯áá°á¡ááœáá·áºá¡áá±ážááŸáá·áº áá±á«á·ááºá¡ááœáá·áºá¡áá±ážáá»á¬ážá á¡áá¯á¶ážááŒá¯áá°á¡ááœáá·áºá¡áá±ážááŸáá·áº pod rights ááẠáá°áá®áá±á¬á¡áá¬ááá¯ááºáá«á
- á¡á á¯á¡ááœá²á·ááŸáá·áºáááºáááºáá±á¬ á¡áá»ááºá¡áááºáá»á¬ážááᯠá á¯áá±á¬ááºážááŒááºážá á€á¡á á¯á¡áá±ážááœáẠá¡áá°ážá¡ááœáá·áºá¡áá±ážáá»á¬ážáááŸááá² áááºááá¯á¡ááºáá±á¬ á¡áá»ááºá¡áááºá¡á¬ážáá¯á¶ážááᯠá á¯áá±á¬ááºážááá¯ááºááŒá±á¬ááºáž áá»áœááºá¯ááºááŒáá«áááºá
- á¡á á¯á¡ááœá²á·á¡áá±á«áº DoS ááá¯ááºááá¯ááºááŸá¯á á¡áááºá áá»áœááºá¯ááºááá¯á·ááẠá¡áá»ááºá¡áááºáá»á¬ážááᯠáá á¯áá±á¬ááºážááá¯ááºáá«á áááºááá·áºááá á¹á ááœááºáááᯠá¡á á¯á¡áá±ážáá áºáá¯ááᯠáá¬ážááŸáááá¯ááºáá«áááºá á¡á á¯ááá¯ááºááááºážáá»á¯ááºááŸá¯ááŒááºá ááºáá»á¬ážáá±á«áºááœáẠDoS ááá¯ááºááá¯ááºááŸá¯áá»á¬ážá¡ááŒá±á¬ááºáž áá»áœááºá¯ááºááŒá±á¬áá«áááºá
áá»áœááºáá±á¬áºááŒá±á¬ááá·áº áá±áá°áá»á¡áá»ááºáá áºáá»ááºááá±á¬á· áá»áœááºáá±á¬áº áá®á¡áá¬á¡á¬ážáá¯á¶ážááᯠá ááºážáááºáá²á·áá¬á á¡á¬ážáá¯á¶ážá¡áááºááŒá±áááºááá¯á· áá»áœááºáá±á¬áºáá±áá»á¬áá±á«ááºááŒá±á¬ááá¯ááºáá«áááºá
Kubespray ááᯠá¡áá¯á¶ážááŒá¯á Kubernetes á¡á á¯á¡áá±ážáá áºáᯠáááºáááºááŒááºážááᯠá¡ááŒá±áá¶á¡ááŒá Ạáá»áœááºá¯ááºááá¯á·áá¶áá°áááºá áááºáá°áááá¯ááááá«áá á€áááºááŸá¬ á¡ááŸááºááááºá¡á¬ážááŒáá·áº Ansible á¡ááœáẠá¡áááºážááá¹ááá áºáá¯ááŒá áºáááºá áá»áœááºá¯ááºááá¯á·ááẠáááºážááᯠáá»áœááºá¯ááºááá¯á·ááá¯ááºáááºážááœáẠá¡áááºáááŒááºá¡áá¯á¶ážááŒá¯áááºá áá±á¬ááºážáá±á¬á¡áá»ááºááŸá¬ áááºááá·áºáá±áá¬ááœááºáááᯠááŸááá·áºááá¯ááºáááº- áá¶á¡ááá¯ááºážá¡á áá»á¬áž ááá¯á·ááá¯áẠááááºááá¯ááºáá áºáá¯ááá¯á· ááŸááá·áºááá¯ááºáááºá áááºáááºááŒááºážáááºážáááºážáá áºáá¯ááẠá¡áá¬á¡á¬ážáá¯á¶ážá¡ááœáẠáá°á¡áá¡áá¯ááºáá¯ááºáááºá
á€á¡á á¯á¡áá±ážááœáẠKubernetes v1.14.5 ááŸááá«áááºá áá»áœááºá¯ááºááá¯á·á ááºážá á¬ážááá·áº Cube á¡á á¯á¡áá±ážáá áºáá¯áá¯á¶ážááᯠnamespaces áá»á¬ážá¡ááŒá Ạááá¯ááºážááŒá¬ážáá¬ážááŒá®áž namespace áá áºáá¯á á®ááẠáá®ážááŒá¬ážá¡ááœá²á·áá áºáá¯ááŸááŒá áºááŒá®ážá á€á¡ááœá²á·áá¡ááœá²á·áááºáá»á¬ážááẠnamespace áá áºáá¯á á®ááá¯á· áááºáá±á¬ááºááá¯ááºáááºá áááºážááá¯á·ááẠááá°áá®áá±á¬ á¡áááºáá±áá¬áá»á¬ážááá¯á· áááœá¬ážááá¯ááºááŒáá«á ááá¯á·áá±á¬áº á¡á á¯á¡ááœá²á·áá áºáá¯áá¯á¶ážá¡ááœáẠáá¯ááºááá¯ááºááœáá·áºááŸáááá·áº á á®áá¶ááá·áºááœá²áá°á¡áá±á¬áá·áºáá áºáᯠááŸááá«áááºá
áá»áœááºá¯ááºááá¯á· ááááá¯á¶ážáá¯ááºáááá·áºá¡áá¬ááŸá¬ á¡á á¯á¡ááœá²á·á¡ááœáẠá á®áá¶ááá·áºááœá²ááá¯ááºááœáá·áºáá»á¬ážáááŸáááẠáááááŒá¯áá«áááºá Kubernetes á¡á á¯á¡áá±ážááᯠáá»áá¯ážáá»ááºááá·áº á¡áá°ážááŒááºáááºáá¬ážááá·áº áá±á«á·ááºáá áºáᯠááá¯á¡ááºáá«áááºá áá»áœááºá¯ááºááá¯á·áá¯ááºáá±á¬ááºáááºááŸá¬ áááºážááᯠKubernetes á¡á á¯á¡áá±ážááœáẠá¡áá¯á¶ážáá»áááºááŒá áºáááºá
kubectl apply -f pod.yaml
ဠpod ááẠKubernetes á¡á á¯á¡áá±ážá ááááºáá áºáŠážáá¶ááá¯á· áá±á¬ááºááŸááááºááŒá áºáááºá á€áá±á¬ááºááœáẠá¡á á¯á¡ááœá²á·ááẠadmin.conf áá¯áá±á«áºáá±á¬ ááá¯ááºáá áºáᯠáá»áœááºá¯ááºááá¯á·áᶠáá»á±á¬áºááœáŸááºá áœá¬ ááŒááºáááºáá±á¬ááºááŸááá«áááºá Cube ááœááºá á€ááá¯ááºááẠá á®áá¶ááá·áºááœá²áá°áááºááŸááºáá»á¬ážá¡á¬ážáá¯á¶ážááᯠááááºážáááºážáá¬ážááŒá®áž áá áºáá»áááºáááºážááœáẠá¡á á¯á¡ááœá²á· API ááᯠá á®á ááºáááºááŸááºáá±ážáááºá Kubernetes á¡á á¯á¡áá±ážáá»á¬ážá 98% ááᯠá á®áá¶ááá·áºááœá²áá°áᶠáááºáá±á¬ááºááœáá·áºáááẠá€áá»áŸááœááºáá°áááºá
áááºáá«áááºáá«á ဠpod ááᯠáááºáá¡á á¯á¡áá±ážááŸá developer áá áºáŠážá០ááŒá¯áá¯ááºáá¬ážááŒááºážááŒá áºááŒá®áž áááºážáá¡ááá¯ááŒá¯áá»ááºáá»á¬ážááᯠnamespace áá±ážáá±ážáá áºáá¯á¡ááŒá Ạá¡áá¯á¶ážáá»ááá¯ááºáᬠáááºážá¡á¬ážáá¯á¶ážááᯠRBAC á០áá»á¯ááºááŸá±á¬ááºáá¬ážáááºá áá°á·ááŸá¬ á¡ááœáá·áºá¡áá±ážáááŸááá°ážá ááá¯á·áá±á¬áº áááºááŸááºááŒááºááá²á·áááºá
ááá¯áááºáž á¡áá°ážááŒááºáááºáá¬ážáá±á¬ áá°ážáá áºáá¯á¶ážá¡ááŒá±á¬ááºážá áá»áœááºá¯ááºááá¯á·ááẠáááºááá·áºáá¯á¶ááœááºáááᯠáá¯ááºáá±á¬ááºáá«áááºá debian:jessie ááᯠá¥ááá¬áá áºáá¯á¡áá±áá²á· áá°ááŒáá·áºáá¡á±á¬ááºá
áá»áœááºá¯ááºááá¯á·ááœáẠá€á¡áá¬ááŸááááºá
tolerations:
- effect: NoSchedule
operator: Exists
nodeSelector:
node-role.kubernetes.io/master: ""
áááºážáá¶ááŒááºážááá¯áá¬áá¬áá²á Kubernetes á¡á á¯á¡áá±ážáá áºáá¯ááŸá áá¬á áá¬áá»á¬ážááᯠáá»á¬ážáá±á¬á¡á¬ážááŒáá·áº taint áá¯áá±á«áºáá±á¬ á¡áá¬ááŒáá·áº á¡ááŸááºá¡áá¬ážááŒá¯ááŒáááºá ááŒá®ážáá±á¬á· áá® âáá±á¬áá«ááá¯ážâ áá²á· á¡ááŸá áºáá¬áááá±á¬á· pods ááœá±ááᯠmaster node ááœá±ááŸá¬ áá¬áááºáá±ážááá¯á·áááá°ážááá¯á· ááá¯áá«áááºá ááá¯á·áá±á¬áºáááºážááẠ"áá±á¬áá«ááá¯áž" ááá¯áá¶ááá¯ááºáááºááŸáááŒá±á¬ááºážáááºáá°ááŸááœáŸááºááŒáááºá¡ááŸá±á¬ááºá¡ááŸááºáááŸááá«á Toleration á¡ááá¯ááºážááẠá¡áá»áá¯á·áá±á¬ node áá»á¬ážááœáẠNoSchedule ááŸááá»áŸáẠáá»áœááºá¯ááºááá¯á·á node ááẠááá¯áá²á·ááá¯á·áá±á¬ áá°ážá ááºááŸá¯ááᯠáááºážáá¶ááá¯ááºáááºáᯠááá¯áá¯á¶áá»áŸááŒáá·áº ááŒá¿áá¬áááŸááá«á
ááá¯á·á¡ááŒáẠáá»áœááºá¯ááºááá¯á·ááááºá¡á±á¬ááºáá¶ááẠáá¶ááá¯ááºáááºááŸááá¯á¶áá¬áá ááááºááᯠá¡ááá¡áá»áá áºááŸááºáá¬ážááá¯áááºáᯠáá»áœááºá¯ááºááá¯á·ááŒá±á¬áá«áááºá ááááºááœá±áá®ááŸá¬ á¡ááá¬á¡ááŸááá¯á¶ážá¡áᬠááŒá áºááá¯á· áááºááŸááºááœá± á¡á¬ážáá¯á¶ážáá«áá²á ááá¯á·ááŒá±á¬áá·áºá áá»áœááºá¯ááºááá¯á·ááẠnodeSelector áá¯ááá¯áááºááŸáá·áº áá»áœááºá¯ááºááá¯á·ááœáẠáá¬á áá¬áá»á¬ážáá±á«áºááœáẠá á¶áá¶ááááºáá áºáᯠááŸááááºá áááºážááẠá¡á á¯á¡áá±ážááŸá node áá»á¬ážá¡á¬ážáá¯á¶ážá០masters ááŒá áºááá·áº á¡ááá¯áá« node áá»á¬ážááᯠá¡ááá¡áá» ááœá±ážáá»ááºááẠááœáá·áºááŒá¯áááºá
á€á¡ááá¯ááºážááŸá áºááá¯ááºážááŒáá·áº áá°ááẠááááºáá¶ááá¯á· áá±áá»á¬áá±á«áẠáá±á¬ááºáááá·áºáááºá ááá¯á¡áááºá áá±ááœáá·áºááááá·áºáááºá
áá«áá±ááá·áº ááá¬ááŒá®ážáá® áá¬áá¯á¶áá²á· ááá¯á¶áá±á¬ááºáá«áá°ážá áá«á áá«ááá¯á·ááᯠáá¬ááŸáá±ážááŸá¬ááá¯ááºáá°ážá áá®áá±á¬á· áá±á¬ááºáá áºáá¯á áá®ááŸá áºáá¯ááŸááááºá
hostNetwork: true
hostPID: true
áá»áœááºá¯ááºááá¯á·á áááºááá¯ááºáá±á¬ áá»áœááºá¯ááºááá¯á·á pod ááẠkernel namespaceá network namespace ááœááºááŸáá·áº PID namespace ááœááºáá±ááá¯ááºáááºááá¯áá»áœááºá¯ááºááá¯á·áááºááŸááºáá«áááºá pod ááᯠmaster ááœááºá áááºááŒá®ážáááºááŸáá·áºáááºážáááºá€ node áá¡á á áºá¡ááŸááºá ááá¯ááºááá¯ááºáá¯ááºááœáŸáá·áºááŸá¯áá»á¬ážá¡á¬ážáá¯á¶ážááá¯ááŒááºááá¯ááºáááºá á¡ááœá¬ážá¡áá¬á¡á¬ážáá¯á¶ážááá¯áá¬ážáá±á¬ááºááŒá®ážáá¯ááºáááºážá ááºá¡á¬ážáá¯á¶ážá PID ááá¯ááŒáá·áºááŸá¯ááá¯ááºáááºááŒá áºáááºá
áá±á¬ááºáá±á¬á· á¡áá±ážá¡ááœáŸá¬ážááá á¹á áá«á etcd ááá¯áá°á áááºá¡ááá¯ááŸááá±á¬á¡áá¬ááá¯áááºáá«á
á áááºáááºá á¬ážá áá¬á¡áá±á¬ááºážáá¯á¶ážá¡áá¬ááŸá¬ áá°áááºážá¡ááá¯ááºážááŸááá±áá±á¬ ဠKubernetes á¡ááºá¹áá«áááºááŒá áºáááºá
volumeMounts:
- mountPath: /host
name: host
volumes:
- hostPath:
path: /
type: Directory
name: host
áááºážáá¡ááŸá áºáá¬áááŸá¬á á€á¡á á¯á¡áá±ážá¡ááœáẠáá¯ááºááá¯ááºááœáá·áºáááŸááá±á¬áºáááºážá áá»áœááºá¯ááºááá¯á·ááẠhostPath á¡áá»áá¯ážá¡á á¬ážá volume áá áºáá¯ááᯠáááºáá®ážááá¯áááºáᯠáá»áœááºá¯ááºááá¯á·ááœáá·áºááá¯ááá¯ááºáááºááŸá¬ áá±á«á·ááºááœááºááŒá±á¬ááá¯ááºáááºá ááá¯ááá¯áááºááŸá¬ áá»áœááºá¯ááºááá¯á·á áááºááá·áº host ááŸáááºážááŒá±á¬ááºážááá¯áá°á á¡áá¶á¡ááá¯ážá¡áá»ááºá¡ááŒá áºáá°áá«áááºá ááŒá®ážáá±á¬á· á¡á²áá«ááᯠhost ááá¯á·áá±á«áºáááºá áá»áœááºá¯ááºááá¯á·ááẠဠhostPath áá áºáá¯áá¯á¶ážááᯠpod á¡ááœááºážááœááºáááºáááºáá¬ážáááºá á€á¥ááá¬ááœáẠ/host directory ááá¯á·á
áá«áááºáá¯ááºáááºá áá»áœááºá¯ááºááá¯á·ááẠpod á¡á¬áž áá¬á áá¬áá¶ááá¯á·áá¬áááºá ááá¯á·ááœááºáááºááŸáá·áº hostPID ááᯠááá¯áá±áá¬ááœááºááá°áá« - ဠpod á¡ááœááºážááŸá áá¬á áá¬áá¡ááŒá áºáá áºáá¯áá¯á¶ážááᯠáááºáááºááẠáá»áœááºá¯ááºááá¯á·ááŒá±á¬áá²á·áááºá
Debian ááœáẠáá»áœááºá¯ááºááá¯á·ááœáẠbash áááºáááºáá±ááŒá®áž ဠbash ááẠroot á¡á±á¬ááºááœáẠá¡áá¯ááºáá¯ááºáááºááᯠáááºáá¬ážáááºáá«áááºá ááá¯ááá¯áááºááŸá¬ Kubernetes á¡á á¯á¡áá±ážááœáẠáááºááá·áºá¡ááœáá·áºá¡áá±ážá០áááŸááá² áá¬á áá¬áá±á«áºááœáẠá¡ááŒá áºááᯠáá»áœááºá¯ááºááá¯á· áááŸááá²á·áá«áááºá
ááá¯á·áá±á¬áẠá¡áá¯ááºáá áºáá¯áá¯á¶ážááẠsub directory /host /etc/kubernetes/pki ááá¯á·ááœá¬ážááááºá áá»áœááºá¯ááºáááŸá¬ážáá«áá á¡á á¯á¡ááœá²á·á áá¬á áá¬áááºááŸááºáá»á¬ážá¡á¬ážáá¯á¶ážááᯠáá±á¬ááºáá°ááŒá®áž ááá¯á·ááŒá±á¬áá·áº á¡á á¯á¡áá±ážá á®áá¶ááá·áºááœá²áá° ááŒá áºáá¬áááºááŒá áºáááºá
á€áááºážááŒáá·áº ááŒáá·áºáá«áá á€á¡áá¬áá»á¬ážááẠá¡áá¯á¶ážááŒá¯áá°ááœáẠáááºááá·áºá¡ááœáá·áºá¡áá±ážááá¯áá»áŸ áááœá²ááŒá¬ážáá² pods ááœáẠá¡áá¹ááá¬ááºá¡ááŸááá¯á¶ážá¡ááœáá·áºá¡áá±ážá¡áá»áá¯á·ááŒá
áºáááº-
á¡áááºá áá»áœááºá¯ááºááẠá¡á á¯á¡áá±ážá á¡áááºáá±áá¬á¡áá»áá¯á·ááœáẠáá±á«á·ááºááᯠáá¯ááºáá±á¬ááºááẠá¡ááœáá·áºá¡áá±ážááŸááá«áá ဠpod ááẠáá°áááºážá¡ááá¯ááºáž á€á¡ááœáá·áºá¡áá±ážáá»á¬ážááŸááááºá áá»áœááºá¯ááºááẠá¡ááœáá·áºáá°ážáᶠpods áá»á¬ážááᯠáá¯á¶ážááá¯ááºáááºá áááºážááá¯á·ááẠáá±áá°áá»á¡á¬ážááŒáá·áº á¡ááœáá·áºá¡áá±ážá¡á¬ážáá¯á¶ážááŒá áºáááºá áááºááœá±á·á¡á¬ážááŒáá·áº node áá±á«áºááœáẠroot áá¯ááºááá¯ááºáááºá
áá»áœááºáá±á¬áºá¡ááŒáá¯ááºáá¯á¶ážááá±á¬á· Root user áá«á ááá¯á·á¡ááŒáẠKubernetes ááœáẠဠRun As Non-Root ááœá±ážáá»ááºááœáá·áºááŸááááºá áááºážááẠáááºáá¬áá áºáŠážáá¶á០á¡áá¬á¡ááœááºáá áºáá»áá¯ážááŒá áºáááºá "Moldavian Virus" ááá¯áᬠáá¬áá² áááá¬ážá á¡áááºá áááºááẠáááºáá¬áá áºáŠážááŒá áºááŒá®áž áá»áœááºá¯ááºá Kubernetes á¡á á¯á¡áá±ážááá¯á· áá±á¬ááºááŸááá¬áá«áá áá¶á·áá»ááºážáá±á¬ á á®áá¶ááá·áºááœá²áá°áá»á¬ážá áá»áœááºá¯ááºááá¯á·áá±ážáá« - âáá»á±ážáá°ážááŒá¯á áá»áœááºá¯ááºá á¡á á¯á¡áá±ážááᯠáááºááºáá¯ááºáááºá root ááá¯ááºááá·áºá¡ááŒá Ạáá¯ááºáá±á¬ááºááá·áº áááºá pods áá»á¬ážááᯠááœáŸááºááŒáá«á ááá¯ááºáá«áá áááºááẠroot á¡á±á¬ááºááŸá áááºá pod ááœáẠáá¯ááºáááºážá ááºááᯠrun ááŒá®áž áááºážááẠáá»áœááºá¯ááºááᯠhack ááẠá¡ááœááºááœááºáá°áá«áááºá áá»á±ážáá°ážááŒá¯ááŒá®áž ááá¯áá·áºááá¯ááºááᯠáá¬ááœááºáá«á"
áááºáá¶áááºážááŒá±á¬ááºáž volume ááẠKubernetes á¡á á¯á¡áá±ážá០ááá¯áá»ááºáá±á¬ááááºáááŸáááẠá¡ááŒááºáá¯á¶ážáááºážáááºážááŒá áºáááºá
áá«áá±ááá·áº áá«ááœá±á¡á¬ážáá¯á¶ážáá²á· áá¬áá¯ááºáááá²á
Kubernetes ááŸáá·áºááœá±á·áá±á¬ áá¬áááºá
á®áá¶ááá·áºááœá²áá°ááá¯ááºážáᶠáá±á¬ááºááŸááá¬ááá·áºáá±á¬ á¡ááœá±ážááŸá¬- "áá¯ááºáá«áááºá áá«áááºážááá¯ááŒá±á¬áá²á·ááẠKubernetes á á¡áá¯ááºááá¯ááºáá«áá°ážá á¡á²áá®áá²ááŸá¬ á¡áá±á«ááºááœá±ááŸááááºá ááŒá®ážáá±á¬á· Cube áá
áºáá¯áá¯á¶ážá ááá¯ááºáá²áá¬áá²â ááááºáá±á¬á·á á
á¬ááœááºá
á¬áááºážááá
á¹á
áá
áºáá¯ááŸááááºá á¡á²áá«ááá¯ááŒáá·áºááẠá¡ááá¯ááºážáá
áºáá¯ááŸááááºá
á€á¡áá¬ááẠyaml á¡áá¬ááá¹áá¯áá áºáá¯ááŒá áºááẠ- áááºážááᯠKubernetes á¡á á¯á¡áá±ážááœáẠáááºáá®ážááá¯ááºááẠ- pods ááá±á¬áºááŒáá»ááºááœáẠá¡áá°ážáá¯á¶ááŒá¯á¶áá±ážááá¹ááá»á¬ážááᯠááááºážáá»á¯ááºáá±ážáááºá á¡ááŸááºááŸá¬á áááºážááẠáááºááá·áº hostNetworká hostPIDá á áááºáá»áááºááœáẠpods áá»á¬ážááŸá á¡áá»áá¯á·áá±á¬ volume á¡áá»áá¯ážá¡á á¬ážáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯ááẠá¡ááœáá·áºá¡áá±ážáá»á¬ážááᯠááááºážáá»á¯ááºáá«áááºá Pod Security Policy áá¡áá°á¡áá®ááŒáá·áº á€á¡áá¬á¡á¬ážáá¯á¶ážááᯠáá±á¬áºááŒááá¯ááºáá«áááºá
Pod Security Policy á á áááºáááºá á¬ážá áá¬á¡áá±á¬ááºážáá¯á¶ážá¡áá»ááºááŸá¬ Kubernetes á¡á á¯á¡áá±ážááœááºá PSP ááá·áºááœááºážáá°ááá¯ááºážááẠáááºááá·áºáááºážááŒáá·áºáá»áŸ áá±á¬áºááŒááŒááºážáááŒá¯áá¯á¶áá¬áá áááºážááá¯á·ááᯠáá¯á¶áá±á¡á¬ážááŒáá·áº ááá¯ážááŸááºážá áœá¬ááááºáá¬ážááŒááºážáááºááŒá áºáááºá áááºááœáá·áºááááºá¡ááºááᯠá¡áá¯á¶ážááŒá¯á Pod áá¯á¶ááŒá¯á¶áá±ážáá°áá«áááᯠááœáá·áºáá¬ážáááºá
áá±á¬ááºážááŒá®á Pod áá¯á¶ááŒá¯á¶áá±ážáá°áá«áááᯠá¡á á¯á¡áá±ážááœáẠááŒáá·áºáá»ááºááŒáá·áºáá¡á±á¬ááºá á á®áá¶ááá·áºááœá²áá°áá»á¬ážáᬠáááºáá±á¬ááºááœáá·áºááŸáááá·áº namespace ááœáẠáá»áœááºá¯ááºááá¯á·ááœáẠáááºáá±á¬ááºááŸá¯ pods á¡áá»áá¯á·ááŸááááºááá¯ááŒáá«á áá¯á·á ááá¯ááŒáá«á áá¯á·á á¡ááŒá¬ážááá á¹á áá»á¬ážááœáẠpods áá»á¬ážááẠá¡ááá·áºá¡áááºááŸááá±á¬ á¡ááœáá·áºá¡áá±ážáá»á¬ážááŸááááºá á¡áááºááŒá±á¬áá·áºááá¯áá±á¬áº ááŒá áºááá¯ááºááŒá±ááŸááá±á¬ developer á¡áá»á¬ážá á¯ááẠáááºá cluster ááœáẠá¡ááœáá·áºáá°ážáᶠpod áá»á¬ážááᯠáá¯ááºáá±á¬ááºááẠáááá¯á¡ááºáá«á
ááŒá®ážáá±á¬á· á¡áá¬á¡á¬ážáá¯á¶ážá áá«ááá¯á·áá²á· á¡áááºááŒá±áá±áá¯á¶ááááºá áá»áœááºá¯ááºááá¯á·á Kubernetes á¡á á¯á¡áá±ážááᯠááŸá áºáááá áºá¡ááœááºáž áááºáááºážáá¯ááºááá¯ááºáááºááá¯ááºáá±á
ááŒá¿áá¬áá áºáá¯ááŸááááºá ááŒá áºááá¯ááºáá»á±áá»á¬ážáááºááŸá¬ ááá·áºááœáẠKubernetes á¡á á¯á¡áá±ážáá áºáá¯ááŸááá«áá ááá¯á·áá±á¬áẠá á±á¬áá·áºááŒáá·áºá á áºáá±ážááŒááºážááᯠáááºáá¡á á¯á¡áá±ážááœáẠááá·áºááœááºážáá¬ážáááºá áááºážáá²á·á¡á á¯á¡ááœá²á·ááᯠá á±á¬áá·áºááŒáá·áºáá±áááºááá¯ááẠá¡á²áá«ááᯠPrometheus ááá¯á· áá±á«áºáááºááá¯á· ááá·áºááŸááºážááá¯á·áá±á¬áẠáá«ááœá¬ážáŠážáááºá
áá«ááŒá±á¬ááá·áºá¡áá¬á Prometheus á¡á±á¬áºááá±áá¬áá²á· Prometheus ááá¯á·áá²á· ááá·áºááŸááºážáá²á·áá¯á¶á á¶áá²á· áá±ážááá¯á·áá²á· Prometheus á¡ááœáẠá¡áá»á¯á¶ážáááºááŸá¬ááŒá áºáá«áááºá áá±ážááœááºážá á á®áá¶ááá·áºááœá²áá°áá áºáŠážááᯠá¡á á¯á¡áá±ážááá¯á· á¡ááŒááºááá±á«áºááá¯ááºáá«áá ááá¯ááá¯ááŒáá·áºááŸá¯ááẠááá¯á¡ááºáááºáᯠááá¯ááá¯ááŒááºážááŒá áºáááºá ááŒá®ážáá±á¬á· áááºážáá²á·á á±á¬áá·áºááŒáá·áºááŸá¯á¡áá°á¡áá®áá²á· áá«ááŸá¬ááá¯ááºáááºá
Habré ááœáẠáá°áá®áá±á¬ áá±á¬ááºážáá«ážáá»á¬ážááᯠáá°ááá¯ááºáž áááºáá°ážááŒááẠááŒá áºáá±á¬ááºáž ááŒá áºááá¯ááºááŒá®áž á á±á¬áá·áºááŒáá·áºááŸá¯ ááẠá á±á¬áá·áºááŒáá·áºáá±áž á¡áááºáá±áᬠááœáẠáááºááŸááááºá Helm chart ááẠáá°ááá¯ááºážá¡ááœáẠáá°áá®áááºáᯠá¡ááŒááºážáá»ááºážáá±á«áºáááºá Stable/prometheus ááᯠáá²á·á ááºáááºáááºááẠá¡ááŒááºážáá»ááºážá¡á¬ážááŒáá·áº áá°áá®áá²á· áá¬áááºááœá±áá²á· á¡áá¯á¶ážáááºáááºááá¯á· áááºáá«áááºá ááá·áºá¡á á¯á¡áá±ážááŸá DNS á¡áááºááá¯ááẠááá·áºááŸááºážááẠáááá¯á¡ááºáá«á á á¶ááá¯á·ááá¯á·áá«á
áá±á¬ááºáá áºáá¯ááœáẠáááºááẠá¡áá»áá¯á·áá±á¬ pod áá áºáá¯ááᯠrun ááá¯ááºáá±á¬ á¡áá»áá¯á·áá±á¬ dev ns áá áºáá¯ááŸááááºá ááŒá®ážáá±á¬á· áá® pod ááá± áá®ááá¯áá»áá¯ážáá¯ááºááᬠá¡áááºážááœááºáá«áááº
$ curl http://prometheus-kube-state-metrics.monitoring
prometheus-kube-state-metrics ááẠKubernetes API ááá¯ááºááá¯ááºá០áááºááá áºáá»á¬ážááᯠá á¯áá±á¬ááºážááá·áº Prometheus áááºááá¯á·áá°áá»á¬ážáá²á០áá áºáá¯ááŒá áºáááºá á¡á²áá®ááŸá¬áá±áá¬ááœá±á¡áá»á¬ážááŒá®ážááŸááááºá áááºážáá²á·á¡á á¯á¡áá±ážááŸá¬áááºáááºáá±áá²á·á¡áá¬á á¡á²áá«ááá¬áá²á áááºážááŸá¬áááºááá¯ááŒá¿áá¬ááœá±ááŸááá±áá²á
ááá¯ážááŸááºážáá±á¬á¥ááá¬á¡áá±ááŒáá·áº
kube_pod_container_info{namespace=âkube-systemâápod=âkube-apiserver-k8s- 1â³ácontainer=âkube-apiserverâáimage=
"gcr.io/google-containers/kube-apiserver:v1.14.5"
,image_id=»docker-pullable://gcr.io/google-containers/kube- apiserver@sha256:e29561119a52adad9edc72bfe0e7fcab308501313b09bf99df4a96 38ee634989â³,container_id=»docker://7cbe7b1fea33f811fdd8f7e0e079191110268f2 853397d7daf08e72c22d3cf8b»} 1
á¡ááœáá·áºáá°ážááá¶áá±á¬ pod á០ááá¯ážááŸááºážáá±á¬ curl áá±á¬ááºážááá¯ááŸá¯ááŒá¯áá¯ááºááŒááºážááŒáá·áºá áááºááẠá¡á±á¬ááºáá«á¡áá»ááºá¡áááºáá»á¬ážááᯠáááŸáááá¯ááºáá«áááºá áááºá¡áá¯á¶ážááŒá¯áá±ááá·áº Kubernetes áá¬ážááŸááºážááᯠáááºááááá«áá áááºážááẠááá·áºá¡á¬áž á¡ááœááºááá° ááŒá±á¬ááŒáááá·áºáááºá
ááŒá®ážáá±á¬á· á áááºáááºá á¬ážá áá¬á¡áá±á¬ááºážáá¯á¶ážááá±á¬á· kube-state-metrics ááœá±á¡ááŒáẠPrometheus ááá¯ááºááá¯ááºáááºáž á¡ááœááºááá°áááºáá±á¬ááºááŒáá·áºááŸá¯ááá¯ááºáá«áááºá áááºááẠááá¯áá±áá¬á០áááºááá áºáá»á¬ážááᯠá á¯áá±á¬ááºážááá¯ááºáááºá áááºááẠááá¯áá±áá¬á០áááºááá áºáá»á¬ážááá¯ááẠáááºáá±á¬ááºááá¯ááºáááºá áá®á¡áá¯áá®á¡ááááºá áááºážááᯠááá¯ážááá¯ážááŸááºážááŸááºážááááºáá áºááá·áº Prometheus ááŸá á¡á á¯á¡áá±ážáá áºáá¯á០ááá¯ááá¯á·áá±á¬áá±ážááœááºážááᯠáááºáááºáá±á¬ááºááá¯ááºáááºá áááºáá á±á¬áá·áºááŒáá·áºááŸá¯ááẠá¡á á¯á¡áá±ážá០áá¯á¶ážáá¡áá¯ááºááá¯ááºáá±á¬á·áá«á
á€áá±áá¬ááœáẠááŒááºáá á±á¬áá·áºááŒáá·áºááŸá¯ áá áºáá¯áá¯á áááºáá á±á¬áá·áºááŒáá·áºááŸá¯ááᯠá á±á¬áá·áºááŒáá·áºááŒááºážááŸááááŸá áá±ážááœááºážáá±á«áºáá¬áááºá ááá¯áá·áºá¡ááœáẠáá¬á¡áá»áá¯ážáááºá០áááŸááá² Kubernetes á¡á á¯á¡áá±ážááŸá¬ áááºáááºááá¯á· á¡ááœáá·áºá¡áááºáž ááá²á·áááºá á á±á¬áá·áºááŒáá·áºááŸá¯áá áºáá¯ááŸáááŸááá±á¬á·áá²á·á¡ááœáẠáá«á¡á²áá®ááŸá¬ áááºáááºáá±áááºááá¯áᬠáááºážáá±á¬ááºááááŸá¬ááá¯ááºáá°ážá
PSP áá²á·ááá¯á·áááºá á€áááºá á®áááºážááá¬áá»á¬áž - Kubernetesá Prometheus - áááºážááá¯á·ááẠá¡áá¯ááºááá¯ááºáá² á¡áá±á«ááºáá»á¬ážááŸáá·áº ááŒáá·áºáá±áá±á¬ááŒá±á¬áá·áº ááŒá¿áá¬ááŒá áºáá±áá¯á¶ááááºá ááááºááá¯ááºáá°ážá
áá®ááá¯áá»áá¯ážááŸááá«áááº-
á¡áááºá áááºááẠáá¬áááºá á®áá¶ááá·áºááœá²áá°ááŒá áºáá«áá áááºážááẠá¡á á¯á¡áá±ážááœáẠá¡áá»á¬ážá¡ááŒá¬ážááŸááá±ááŒá®ááŒá áºáá±á¬ á¡ááŒá¬áž yaml áá áºáá¯áá¬ááŒá áºááŒá±á¬ááºáž ááœááºáááºáá°áá«áá¡ááŒá±á¬ááºáž áááºááááá¯ááºááœááºááŸááááºá á¡áá»áá¯á·áá±á¬ Network Policies áá»á¬ážááẠáá¯á¶ážááááá¯á¡ááºáá«á Network Policy ááá¯áááºááŸá¬ Kubernetes á yaml firewall ááŒá áºáááºááᯠáááºáááºáá»áŸááºáááºá áááºážááẠnamespaces á¡ááŒá¬ážá pods áá»á¬ážááŒá¬ážááœáẠáááºáá±á¬ááºááœáá·áºááᯠááá·áºáááºáá¬ážááá¯ááºáááºá ááá¯á·áá±á¬áẠKubernetes ááŸá yaml áá±á¬áºáááºááŸá firewall ááẠáá¬ááá·áº abstractions áá»á¬ážá¡áá±á«áº á¡ááŒá±áá¶áá¬ážááŒá±á¬ááºáž áá±áá»á¬áá±á«áẠáá¯á¶ážááŒááºááá¯ááºááẠá ... ááá¯ááºáá°áž ááá¯ááºáá°áž á áá«á áá±áá»á¬áá±á«áẠáááá¯á¡ááºáá«áá°ážá
áááºá Kubernetes ááᯠá¡áá¯á¶ážááŒá¯á á¡ááœááºááœááºáá°ááŒá®áž ááá¯ážááŸááºážáá±á¬ firewall ááŸáá·áº á¡ááœááºá¡áá±ážá áááºáá»áá±á¬ firewall áá áºáá¯ááᯠáááºáá±á¬ááºááá¯ááºáááºáᯠáááºááá¯á¶ááŒá¯á¶áá±ážáá»áœááºážáá»ááºáá°áá»á¬ážááᯠáááºáááŒá±á¬ááŒáá²á·áá»áŸááºáááºá áá«ááᯠáá°ááá¯á·ááááá±ážááẠááá·áºááá¯á¡ááŸá±á¬ááºá¡ááŸááºááá±ážáá°ážááá¯áááº- "áá±á¬ááºážááŒá®á áá«á·ááá¯áá±ážá áá±áž..." ááá¯á·áá±á¬áẠáááºááá¯á·áááºááá¯á á±á áááºáá¡á á¯á¡áá±ážá០ááœá²áá¯ááºááá¯ááºáá±á¬ á¡áá»áá¯á·áá±á¬áááºáá±á¬ááºááŸá¯áá±áá¬áá»á¬ážááá¯á· áááºáá±á¬ááºááœáá·áºááᯠááááºááá¯á·ááẠNetwork Policy ááá¯á¡ááºáá«áááºá ááœáá·áºááŒá¯áá»ááºáááŸááá²á
áá«áá±ážáá²á·ááá·áºá¥ááá¬ááœááºá¡ááá¯ááºážá áááºááẠáááºááá·áºá¡ááœáá·áºá¡áá±ážááŸáááŸááá² Kubernetes á¡á á¯á¡áá±ážááŸá áááºááá·áº namespace á០kube state áááºááá áºáá»á¬ážááᯠááœá²áá¯ááºááá¯ááºáááºá ááœááºáááºáá°áá«ááá»á¬ážááẠá á±á¬áá·áºááŒáá·áºáá±áž namespace ááá¯á· á¡ááŒá¬ážáá±á¬ namespace áá»á¬ážá¡á¬ážáá¯á¶ážá០áááºáá±á¬ááºááœáá·áºááᯠááááºáá¬ážááŒá®ážá áááºáá±á¬ááºááœáá·áºáááŸáá ááŒá¿áá¬áááŸááá«á áááºááŸááá±áá±á¬ ááá¬ážáá»á¬ážá¡á¬ážáá¯á¶ážááœááºá á¡á±á¬áºááá±áá¬á¡ááœááºážááŸá á ᶠPrometheus ááŸáá·áº Prometheus ááŸá áºáá¯á áá¯á¶ážááœáẠáááºážááá¯á·á¡ááœáẠááœááºáááºáá°áá«ááá»á¬ážááᯠááá¯ážááŸááºážá áœá¬ááœáá·áºááẠáá²á·á ááºáááºááá¯ážáá»á¬ážááœáẠááœá±ážáá»ááºá áá¬áá áºáá¯ááŸááááºá áááºážááá¯ááœáá·áºáááºáᬠááá¯á¡ááºááŒá®áž áááºážááá¯á·ááẠáá¯ááºáá±á¬ááºááá¯ááºáááºááŒá áºáááºá
áá®ááŸá¬ááááºááŒá¿áá¬áá áºáá¯ááŸááááºá áá¬áá¬ááºáá¯ááºááááºááœá±ážá á®áá¶ááá·áºááœá²áá°ááŒá áºáá±á¬ááŒá±á¬áá·áº ááœááºáááºáá°áá«ááá»á¬áž áááá¯á¡ááºáᯠáááºáá¯á¶ážááŒááºááá¯ááºááœááºááŸááááºá Habr áá²á·ááá¯á·áá±á¬ á¡áááºážá¡ááŒá áºáá»á¬ážááá¯ááºáᬠáá±á¬ááºážáá«ážá¡áá»áá¯ážá¡á á¬ážá¡á¬ážáá¯á¶ážááᯠáááºááŸá¯ááŒá®ážáá±á¬ááºá á¡áá°ážáááŒáá·áº á¡áááºááŸááº-ááááºáá±ážáá¯ááºááœáẠááááºáááºááẠáááºááœá±ážáá»ááºááá¯ááºááá·áº á¡áá±á¬ááºážáá¯á¶ážá¡áá¬ááŒá áºááŒá±á¬ááºáž áááºáá¯á¶ážááŒááºáá²á·áááºá
á¡áááºááá¯á·ááŒá¯ááááºáž
áááºá Kubernetes á¡á á¯á¡áá±ážááœááºááŸááá±á¬ ááœááºáááºááŒá±ááŸááºážáá»ááºááᯠááŒááºáááºá¡áá¯á¶ážáá»ááẠááŒáá¯ážá á¬ážááá¯ááºááŒá®áž áááºážááᯠááá¯ááá¯áá¯ááºáá±á¬ááºááá¯ááºáá±á¬á¡áá¬áá áºáá¯ááŒáá·áº á¡á á¬ážááá¯ážááẠááŒáá¯ážá á¬ážáá«á áá°áá®áá±á¬ Calico á¡ááœááºá á¥ááá¬á áá«áá±ááá·áº Kubernetes á¡áá¯ááºáá¯ááºáá²á· á¡á á¯á¡áá±ážááŸá¬ ááœááºáááºááŒá±ááŸááºážáá»ááºááŒá±á¬ááºážáá²ááŒááºážáá²á·áá¬áááºáᬠá¡áá±ážá¡ááœá²ááá¯ááºááŒá±á¬ááºáž áá»ááºáá»ááºážááŒá±á¬áá»ááºáá«áááºá á¡á²áá«ááᯠááŸá áºááŒáááºááŒá±ááŸááºážáá²á·ááẠ(áá«áá±ááá·áº áá®á¡áá¯áá®á¡ááá±á¬á· á¡ááŒáááºáá±) áá«áá±ááá·áº Slurms ááŸá¬ áááºááá¯áá¯ááºáááá²ááá¯áá¬áá±á¬áẠááŒáá²á·áááºá áá»áœááºá¯ááºááá¯á·ááá»á±á¬ááºážáá¬ážáá»á¬ážá¡ááœáẠKubernetes á¡á á¯á¡áá±ážááœáẠááœááºáááºááŒá±ááŸááºážáá»ááºááᯠáááºááá¯á·ááŒá±á¬ááºážáá²ááááºááᯠááŒááá²á·áááºá áá°á¡áá áá¯ááºáá¯ááºááŸá¯á¡á á¯á¡áá±ážááœáẠá¡áá»áááºááá¯ááºážááŒááºážáááŸáááŒá±á¬ááºáž áá±áá»á¬á¡á±á¬áẠáááºááŒáá¯ážá á¬ážááá¯ááºáááºá áá«áá±ááá·áº áááºážá¡á±á¬ááºááŒááºááŸá¬ááá¯ááºáá°ážá
ááŒá®ážáá±á¬á· ááŒá¿áá¬á ááááºááᯠááá¯ážááá¯ážááŸááºážááŸááºážáá²á· ááŒá±ááŸááºážáááºá á¡á á¯á¡áá±ážááœáẠáááºááŸááºáá»á¬ážááŸáááŒá®áž ááá·áºáááºááŸááºáá»á¬ážááẠáá áºááŸá áºá¡ááœááºáž áááºáááºážáá¯ááºáááºááᯠáááºáááá«áááºá áá±á¬ááºážááŒá®á áá¯á¶ááŸááºá¡á¬ážááŒáá·áºá á¡á á¯á¡áá±ážááŸá áááºááŸááºáá»á¬ážáá«ááá·áº áá¯á¶ááŸááºááŒá±ááŸááºážáááºážáá áºáᯠ- áá»áœááºá¯ááºááá¯á· áá¬ááŒá±á¬áá·áº á áá¯ážááááºáá±áááááºážá áá»áœááºá¯ááºááá¯á·ááẠá¡áá®ážáá¬ážááœáẠá¡á á¯á¡áá±ážá¡áá áºáá áºáá¯ááᯠááŒá¯á á¯áá»áá¯ážáá±á¬ááºáá±ážáááºá á¡áá±á¬ááºážááᯠáá¯ááºááœá¬ážá á±ááŒá®áž á¡áá¬á¡á¬ážáá¯á¶ážááᯠááŒááºáááºá¡áá¯á¶ážáá»áá«áááºá ááŸááºáá«áááºá áá¯ááºááœá¬ážáá²á·á¡áá« áá áºáááºáá±á¬áẠááá¯ááºááááá·áºáááºá áá«áá±ááá·áº áá®ááŸá¬á á¡á á¯á¡áá±ážá¡áá áºáá áºáá¯áá«á
á¡á á¯á¡áá áºáá áºáá¯ááᯠááŒá¯á á¯áá»áá¯ážáá±á¬ááºáá±á¬á¡áá«á áá áºáá»áááºáááºážááœáẠááááºáááºá¡á á¬áž Calico ááᯠááá·áºááœááºážáá«á
áááºážáá²á· áááºááŸááºááœá±ááᯠááŸá áºáá áºáᬠáá¯ááºáá±ážááŒá®áž á¡á á¯á¡ááœá²á·ááᯠááŒááºá¡áá¯á¶ážáá»áá±á¬á·ááŸá¬ ááá¯ááºááẠáá¬áá¯ááºáááá²á Kube-RBAC-Proxy áá²á·ááá¯á·áá±á¬ á¡áá¬áá áºáá¯ááŸááááºá áááºážááẠá¡ááœááºáá±á¬ááºážááœááºáá±á¬ ááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯ááŒá áºááŒá®ážá áááºážááẠKubernetes á¡á á¯á¡áá±ážááŸá áááºááá·áº pod ááá¯á·áááᯠáá±ážááœá²ááœááºááááºáá¬á¡ááŒá Ạááá·áºá¡á¬áž ááá·áºááœááºážááá¯ááºá á±áááºááŒá áºáááºá ááá¯á·á¡ááŒáẠáááºážááẠKubernetes ááá¯ááºááá¯ááºá០RBAC ááŸáááá·áº ဠpod ááá¯á· ááá¬ážáááºááœáá·áºááŒá¯áá»ááºááᯠáá±á«ááºážááá·áºáááºá
ááŒá¿áá¬áá
áºáá¯ááŸááááºá ááááºá ဠKube-RBAC-Proxy ááŒá±ááŸááºážáá»ááºááᯠá¡á±á¬áºááá±áá¬á Prometheus ááœáẠáááºáá±á¬ááºáá²á·áááºá áá«áá±ááá·áº áá±á¬ááºáá±á¬á· áá°ááœá¬ážááŒá®á ááᯠáá±ááºáá
áºáá¬ážááŸááºážáá»á¬ážááẠááá·áºááœáẠááœááºáááºáá°áá«ááá
áºáá¯ááŸáá áááºážááá¯á·ááá¯á¡áá¯á¶ážááŒá¯á ááááºááá¯ááºááŒááºážáá°áá±á¬á¡áá»ááºááᯠá¡á¬ážááá¯ážáááºá áá«ááŒá±á¬áá·áº ááá¬ážááᯠáááºážáááºážááŒááºáá±ážááá«áááá·áºáááºá á¡ááŸááºáá±á¬á· ááœá¬ážááŒáá·áºáᬠáá«
áá±á¬ááºáááºááŒá¿áá¬áá±ážáá áºáá¯ááŸááá±ážáááºá Prometheus ááẠáááºáá°á·ááá¯áá»áŸ áááºážá áááºááá áºáá»á¬ážááᯠáá¯ááºáá±ážááá·áº áá áºáá¯áááºážáá±á¬ áá áºáá¯áááºážáá±á¬ ááá¯ááºáá«á áá»áœááºá¯ááºááá¯á·á Kubernetes á¡á á¯á¡áá±ážá á¡á áááºá¡ááá¯ááºážáá»á¬ážá¡á¬ážáá¯á¶ážááẠáááºážááá¯á·áááá¯ááºááá¯ááºáááºááá áºáá»á¬ážááᯠááŒááºáá±ážááá¯ááºáááºá
áá«áá±ááá·áº áá»áœááºáá±á¬áºááŒá±á¬áá²á·áááá¯áá²á áááºá á¡á á¯á¡áá±ážááᯠáááºáá±á¬ááºááŒá®áž á¡áá»ááºá¡áááºááœá± áá á¯áá±á¬ááºážááá¯ááºáá°ážááá¯ááẠá¡áááºážáá¯á¶ážáá±á¬á· ááááá¯ááºááŸá¯áá áºáá¯áá¯áá±á¬á· áá¯ááºááá¯ááºáá«áááºá
ááá¯á·ááŒá±á¬áá·áº Kubernetes á¡á á¯á¡áá±ážááᯠáááºáá²á·ááá¯á· áá»ááºá á®ážá á±ááá·áº áááºážáááºážááŸá áºáá¯ááᯠáá»áœááºá¯áẠá¡ááŒááºááŒááá«áááºá
áá«áááºážááᯠáá®ááá¯ááŒá±á¬ááẠáááºážáááºáááá·áºáááºá áá«á áááá·áºááááŒá áºáááºááŸá áºáá¯áá²á
áááºážáááºážáá áºáá¯á á¡áááºážá¡ááŒá áºáá»á¬áž áá¯ááºáá¯á¶ážááŒááºážá
áá±á¬ááºááẠá¡áá°ážá¡á á®á¡á ááºáá áºáá¯ááᯠá áááºááá¯ááºáá¡á±á¬ááºá á€áá²á·ááá¯á· ááá¹ááá áºáᯠááŸááá«áááºá
resources:
requests:
cpu: 4
memory: 4Gi
áááºááááá·áºá¡ááá¯ááºážá áá±á¬ááºážááá¯áá»ááºáá»á¬ážááẠáá±á¬ááºážááá¯áá»ááºáá»á¬ážááŸáá·áº áá®ážááŒá¬áž pods á¡ááœáẠhost ááœáẠáá®ážááá·áºáá¬ážááŸááá±á¬ CPU ááŸáá·áº memory ááá¬áááŒá áºáááºá áá»áœááºá¯ááºááá¯á·ááœáẠKubernetes á¡á á¯á¡áá±ážáá áºáá¯ááœáẠáá±ážáá¯-core host áá áºáá¯ááŸáááŒá®ážá CPU pod áá±ážáá¯ááẠáá±á¬ááºážááá¯ááŸá¯áá»á¬ážááŒáá·áº ááá¯áá±áá¬ááá¯á·áá±á¬ááºááŸááá¬áá«áá áá±á¬ááºážááá¯áá»ááºáá»á¬ážááŸáááá·áº pods áá»á¬ážááᯠဠhost ááá¯á· áá¬ááá¯ááºáááºááá¯ááºáá«á
á¡á²áá®ááᯠpod ááᯠrun ááá¯ááºááẠcommand ááᯠrun áááº-
$ kubectl scale special-pod --replicas=...
ááá¯á·áá±á¬áẠKubernetes á¡á á¯á¡áá±ážááá¯á· á¡ááŒá¬ážáááºáá°áá»áŸ á¡áá¯á¶ážááŒá¯ááá¯ááºáá±á¬á·ááẠááá¯ááºáá«á á¡áááºááŒá±á¬áá·áºááá¯áá±á¬áº node áá»á¬ážá¡á¬ážáá¯á¶áž áá±á¬ááºážááá¯ááŸá¯áá»á¬áž áá¯ááºáá¯á¶ážááœá¬ážáááºááŒá áºáááºá ááá¯á·ááŒá±á¬áá·áº áááºá Kubernetes á¡á á¯á¡áá±ážááᯠáá»áœááºá¯ááºáááºááá·áºááá¯ááºáá«áááºá ááá±ááŸá¬ áá®ááá¯áá¯ááºááẠáááºáá»áá¬ážáá¬ááœá±ááᯠá¡áá»áááºá¡áá±á¬áºááŒá¬á¡á±á¬áẠáááºááá·áºááá¯ááºáá«áááºá
Kubernetes á á¬ááœááºá á¬áááºážááᯠáááºáá¶ááŒáá·áºááŸá¯áá«áá á€á¡áá¬ááᯠLimit Range áá¯áá±á«áºáááºá áááºážááẠá¡á á¯ááá¯ááºá¡áá¬ááá¹áá¯áá»á¬ážá¡ááœáẠá¡áááºážá¡ááŒá áºáá»á¬ážááᯠáááºááŸááºáá±ážáááºá yaml ááœáẠLimit Range á¡áá¬ááá¹áá¯áá áºáá¯ááᯠáá±ážáá¬ážááá¯ááºááŒá®áž á¡áá»áá¯á·áá±á¬ namespaces áá»á¬ážááœáẠá¡áá¯á¶ážáá»ááá¯ááºááẠ- ááá¯á·áá±á¬áẠဠnamespace ááœáẠááá·áºááœáẠpods á¡ááœáẠáá¯á¶áá±á á¡áá»á¬ážáá¯á¶ážááŸáá·áº á¡áááºážáá¯á¶áž á¡áááºážá¡ááŒá áºáá»á¬ážááŸááááºáᯠáááºááŒá±á¬ááá¯ááºáá«áááºá
ááá¯á¡áá¬áá¡áá°á¡áá®ááŒáá·áºá á¡ááœá²á·áá»á¬ážá áá®ážááŒá¬ážáá¯ááºáá¯ááºá¡áááºáá±áá¬áá»á¬ážááœáẠá¡áá¯á¶ážááŒá¯áá°áá»á¬ážááᯠáááºážááá¯á·á pods áá»á¬ážáá±á«áºááŸá ááá¯ážááœá¬ážááá·áºá¡áá¬á¡á¬ážáá¯á¶ážááᯠááœáŸááºááŒááá¯ááºááá·áºá áœááºážáááºááᯠááá·áºáááºááá¯ááºáááºá ááá¯á·áá±á¬áº áá¶ááá±á¬ááºážá áœá¬ááŒáá·áºá CPU áá áºáá¯áááºááá¯á áá±á¬ááºážááá¯ááŸá¯áá»á¬ážááŒáá·áº pods áá»á¬ážááᯠáááœáá·áºááá¯ááºáᯠáá¯á¶ážá áœá²áá°á¡á¬áž áááºááŒá±á¬áá±á¬áºáááºážá ááá¯ááá¯á·áá±á¬ á¡á¶á·ááŒááœááºá áá±ážá¡áááá·áºáá áºáᯠááŸááá«áááºá ááá¯á·ááá¯áẠáááºážááá¯á·ááẠáááºááŸáºáá¯ááºááŸáááá·áº á áá±ážááᯠááŒá¯áá¯ááºááá¯ááºáá«áááºá
áá¶áá«ááºááŸá áºáááºážáááºážá áá®ááá±áá¬áá¬áá«á áá»áœááºá¯ááºááá¯á·ááẠ11 pods ááá¯ááœáá·áºáá«á á¡á²áá« ááá·áºáá áºáá®áá®áá¶á áá®ááᯠáá¶áá«ááºááœá± ááá¬áá¬ááŒá±á¬áá·áº ááá¯ááºáá² ááá¯ááºááá¯áẠááŒááºááá¯ááºáááá¯á· ááŒá áºáá«áááºá
ááŒá áºáááºááŸááºáá¬ááºáááºážá ááá± áá¯á¶ážáááºážáá±á¬á·áááºá áá±á¬áá·áºá áœááºážááŸá¬ááá¯ááºáá±áá²á· developer á¡ááœá²á·áá áºááœá²á·ááᯠáá°ááá¯á·áá²á·áááºááºáá±á¬á·áá²á· áá áºáá¯áá¯áá¯ááºáá±áá¬ááᯠáá»áœááºáá±á¬áºááŒááºáááºá áá«á áá±á¬ááºá»á¬ážááœá±áá®ááœá¬ážááŒá®áž âáááºáž áá¬ááŒá áºááœá¬ážáá¬áá²â ááá¯á· áá±ážáááºá
á¡áááºážáááºá á±á¬ááŒá®áž ááá± ááá¯ážáá¬áá®ááá·áºááœáẠdeveloper áá áºáŠážá á¡áááºááŒááºááẠááŒááºáááºáá±áá«áááºá ááŒá®ážáá±á¬á· áá«áá¯á¶ážááŒááºáá²á·áááº- "áá« á¡áᯠáá«á·áá»áŸá±á¬ááºááœáŸá¬ááᯠá¡ááá¯ááºážá¡áá¬áá áºáá¯á¡áá áá»á²á·ááá¯ááºáááºá" áá áºáá»ááºááŸáááºááá¯ááºáá±ááá·áº á¡ááºáá¬áááºá áááºážáááºážááŸá±ážááœá¬ážáááºá áá áºáá»ááºááŸáááºááá¯ááºá áá áºáá»ááºááŸáááºááŒá®áž Enter ááŸáááºááá¯ááºáá«á áááºááá¯ááºááá»áŸ ááŸáá¯ááºáá²á·áááºá ááá¯á·áá±á¬áẠá¡ááºáá¬áááºááẠá¡áááºáááºáá¬ááẠ- á¡áá¬á¡á¬ážáá¯á¶ážááẠá€áá¶áá«ááºá¡áá á¡ááá¯ááºážá¡áá¬áá áºáá¯á¡áá ááá¯ážáá¬áááºá
ááŸááºáá«áááºá á€áá¬ááºáááºážááẠKubernetes ááœááºáááŒá áºáá²á·áá«á ááá¯á¡áá»áááºá Nomad ááŒá áºáááºá Nomad ááᯠá áá±ážáá»áááºááá¯á· ááŒáá¯ážá á¬ážááŸá¯ááá± áááºááá·áºááá¯á· áá áºáá¬áá®ááŒá¬ ááŒáá¯ážá á¬ážááŒá®ážáá±á¬áẠNomad á áá°á·á¡áá±áá²á· á¡ááá¯ááºážá¡áá¬ááᯠáááºááá·áºááŸá¬ááá¯ááºáá² áááŒá¬ážáá¬á០ááá¯ááºáá±á¬á·áá«áá°ážááá¯á· ááŒááºááŒá±ááá¯ááºáá«áááºá "áááºáááºážáá±ááŒá® áá«ááœááºááœá¬ážáá±á¬á·áááºá" ááŒá®ážáá±á¬á· áá°á áá±á¬ááºááœá±ážáááºá
áá¯á¶ážá á¶á¡ááá¯ááºážá Kubernetes ááœááºáááºáž á¡áá¬ážáá°ááŒáá¯ážá á¬ážáá²á·áááºá Kubernetes ááẠááá·áºáá áºáá®áá®áᶠpods ááŸáá·áº ááá»á±áááºááŒá±á¬ááºážá áááºážá âáá»áœááºáá±á¬áº ááá¯ááºááá¯ááºáá«áá°ážá á¡ááœááºážáá¶á¡áá¬á¡áá¶áá»á¬ážááᯠáá»á±á¬áºááœááºáá±áá«áááºá" áá«áá±ááá·áº á¡áá¯á¶ážáá± á,ááá,ááá,ááá áá² áá±ážááá¯ááºáááºá
áá áºáá®áá®áá¶ááᯠáá¯á¶á·ááŒááºááá·áºá¡áá±ááŒáá·áº Cube ááẠáá°á·á¡ááá¯ááᯠáá¯ááºáááœá¬ážáá±á áá°ááááºá áá±ážá ááŒá¯áá±áá«ááŒá®á áá¯ááºáááºážá ááºááœá± ááá¯ááŒá¬áá±áá±á á¡ááœááºá¡áá áºááœá± áááºáá®ážááá¯á· á¡áá»áááºááá¯áá°áá±áá«áá²á áá«áá±ááá·áº ááŒá áºá ááºá áááºááœá¬ážáá±áá±ážáááºá áá áºáá¯áááºážáá±á¬ááŒá¿áá¬ááŸá¬ áá»áœááºá¯ááºááẠáá»áœááºá¯ááºá namespace ááœáẠpods áá»á¬ážááᯠá¡ááá·áºá¡áááºáááŸá ááœáá·áºááá¯ááºáá«áá áá±á¬ááºážááá¯áá»ááºáá»á¬ážááŸáá·áº ááá·áºáááºáá»ááºáá»á¬ážáááŸááá»áŸááºááẠá€áá¬áááºáá»á¬ážá¡áá°á¡áá®ááŒáá·áº node áá»á¬ážááẠCPU ááœáẠmemory ááœáẠáá±á«ááºážááá·áºáá¬ááá·áº á¡áá»áá¯á·áá±á¬á¡áá¯ááºáá»á¬ážááŒáá·áº pods á¡áá»á¬ážá¡ááŒá¬ážááᯠá áááºááá¯ááºáááºááŒá áºáááºá pods á¡áá»á¬ážá¡ááŒá¬ážááᯠáá«ááœáá·áºáá±á¬á¡áá«á áááºážááá¯á·áá¶á០á¡áá»ááºá¡áááºáá»á¬ážááẠááá¯ááŸá±á¬ááºááŸá¯áá²ááá¯á· áá±á¬ááºááœá¬ážááá·áºáááºá ááá¯ááá¯áááºááŸá¬á á áááºááá¯á·ááŒá áºáááºá á¡áá»ááºá¡áááºáá»á¬áž á¡ááœááºá¡áá»áœá¶áá±á¬ááºááŸááá±á¬á¡áá«á ááá¯ááŸá±á¬ááºááŸá¯ááẠá¡ááœááºááŸá±ážááœá±ážá áœá¬ ááŒááºá áá¬ááẠ- ááŸáá·áº Kubernetes ááẠááŸá¯ááºááŸáá¯ááºážáá¬áááºá
áá±á¬ááºáááºááŒá¿áá¬áá áºáá¯... áááºááááá·áºá¡ááá¯ááºáž Kubernetes ááááºážáá»á¯ááºááŸá¯ááŒááºá ááºáá»á¬ážááẠá¡áááá¡áá¬áá áºáá¯ááá¯ááºáá±á¬áºáááºáž á¡á áááºá¡ááá¯ááºážáá»á¬ážá áœá¬ááŸááááºá á¡áá°ážáááŒáá·áºá ááááºážáá»á¯ááºáá°áááºáá±áá»á¬á á¡áá»áááºááá¬ážááœá²áá° á¡á ááŸááááºááá¯á· ááŸááá«áááºá áá®áá±á¬ááºááœá± á¡á¬ážáá¯á¶ážáᬠáááá¯á¡ááºáá²á·á ááá¯ááºáá²áá²á· á¡áá¯ááºááœá±ááᯠáááŒáá¯ááºáááºáááºáž á áá¯ááºááŒááŒá®áž á¡áá»áááºááŒá¬áá¬áá¬áá²á·á¡áá»áŸ á¡áá»áááºááá¯áá°áá¬áááºá ááááºážáá»á¯ááºáá°áááºáá±áá»á¬ááẠá¡ááœááºá¡áá áºáá»á¬ážááᯠáááºáá®ážáá±ážáááá·áºáááºá Scheduler ááẠáááºážááá¯á·á¡ááœáẠnode á¡áá áºáá áºáá¯ááᯠááŸá¬ááœá±ááẠááŒáá¯ážá á¬ážáááºááŒá áºáááºá áááŒá¬áá® ááá·áºá¡á á¯á¡áá±ážááŸá node á¡áá áºáá»á¬áž áá¯ááºáá¯á¶ážááœá¬ážááœááºááŸááááºá Kubernetes á¡á á¯á¡áá±ážááẠááá¯ááá¯ááŸá±ážááœá±ážááŒá®áž á¡áá¯ááºááá¯ááºáá±á¬á·áá«á
áá«áá±ááá·áº áá®áááºááá¯ááŒá®áž ááœá¬ážááá¯á· áá¯á¶ážááŒááºááá¯ááºáááºá áááºááááá·áºá¡ááá¯ááºáž Kubernetes ááœáẠáááºáá±á¬ááºááŸá¯áá¯áá±á«áºáá±á¬ á¡áá¬áá áºáá¯ááŸááááºá áá±á¬ááºážááŒá®á ááá·áºá¡á á¯á¡áá±ážáá»á¬ážááœáẠáá¯á¶ááŸááºá¡á¬ážááŒáá·áºá áááºáá±á¬ááºááŸá¯ááẠIP ááá¬ážáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯á á¡áá¯ááºáá¯ááºáá«áááºá
á¥ááá¬á¡á¬ážááŒáá·áº áááºááẠPods áá áºáá®áá®áá¶ááᯠá¡áá¯á¶ážááŒá¯ááŒá®áž áááºáá±á¬ááºááŸá¯á¡áá áºáá»á¬ážáááºáá®ážááẠKubernetis á¡á¬áž áá¬ááºááœáŸááºážááá¯áá¯á¶ážáá«-
for i in {1..1111111}; do
kubectl expose deployment test --port 80
--overrides="{"apiVersion": "v1",
"metadata": {"name": "nginx$i"}}";
done
á¡á á¯á¡áá±ážá¡á¬ážáá¯á¶ážááœááºá iptables á ááºážáá»ááºážá¡áá áºáá»á¬áž ááá¯áá»á¬ážáá¬ááŒá®áž ááá·áºááŸááºážááŒá±á¡á¬ážááŒáá·áº áááŒáá¯ááºáááºáááºáž áá¯ááºáá±ážáááºááŒá áºáááºá ááá¯á·á¡ááŒááºá áááºáá±á¬ááºááŸá¯áá áºáá¯á á®á¡ááœáẠáá áºáá®áá®áᶠiptables á ááºážáá»ááºážáá»á¬ážááᯠáá¯ááºáá±ážáááºááŒá áºáááºá
áá±á¬ááºáá±á«ááºážáá»á¬ážá áœá¬á áááºááááºážá¡áá áá®á¡áá¬á¡á¬ážáá¯á¶ážááᯠá á áºáá±ážáá²á·áááºá ááŒá¿áá¬ááá±á¬á· áá® threshold ááŸá¬ ssh ááᯠnode ááŸá¬áá¯ááºááᬠáá±á¬áºáá±á¬áºááŒá¿áá¬ááŸáááá¯á·áá«áá²á áá¯ááºááá¯ážááŸá¯áá»á¬ážááẠááœááºážáááºáá»á¬ážá áœá¬ááᯠááŒááºáááºážáá±ááá±á¬ááŒá±á¬áá·áº á¡ááœááºááá±á¬ááºážááŒá±á¬ááºáž áá¶á á¬ážááá±á¬á·ááẠá
ááá¯á·á¡ááŒáẠáááºážááá¯áááºáž Kubernetes áá¡áá°á¡áá®ááŒáá·áº ááŒá±ááŸááºážáá¬ážáááºá á¡á²áá®ááᯠResource quota object ááŸááááºá á¡á
á¯á¡áá±ážááŸá namespace á¡ááœáẠáááá¯ááºáá±á¬á¡áááºážá¡ááŒá
áºáá»á¬ážááŸáá·áº á¡áá¬ááá¹áá¯á¡áá±á¡ááœááºááᯠáááºááŸááºáá±ážáááºá Kubernetes á¡á
á¯á¡áá±ážá namespace áá
áºáá¯á
á®ááœáẠyaml object áá
áºáá¯ááᯠáááºáá®ážááá¯ááºáááºá á€á¡áá¬ááá¹áá¯ááᯠá¡áá¯á¶ážááŒá¯á ဠnamespace á¡ááœáẠááœá²áá±áááºááŸááºáá¬ážáá±á¬ áá±á¬ááºážááá¯áá»ááºáá»á¬ážááŸáá·áº ááá·áºáááºáá»ááºáá»á¬áž á¡áá»á¬ážá¡ááŒá¬ážááŸááááºáᯠáá»áœááºá¯ááºááá¯á·ááŒá±á¬ááá¯ááºáááºá ááá¯á·áá±á¬áẠဠnamespace ááœáẠáááºáá±á¬ááºááŸá¯ 10 áá¯ááŸáá·áº pods 10 áá¯ááᯠáááºáá®ážááá¯ááºáááºáᯠááŒá±á¬ááá¯ááºáá«áááºá ááŒá®ážáá±á¬á· developer áá
áºáá¯áááºážá á¡áááºážáá¯á¶áž ááá±áááºážááœá±ááŸá¬ áá°á·ááá¯ááºáá° á¡á¶ááŒáááºááá¯ááºáá«áááºá Kubernetes á áá°á·ááá¯ááŒá±á¬áá«áááá·áºáááº- "á¡áááºážá¡ááŒá
áºá ááœá²áááºážáááºáá»á±á¬áºááœááºáá±áá¬ááŒá±á¬áá·áº áááºážáá²á· pods ááœá±ááᯠá¡á²áá®ááá¬ááá²á· ááá¯ááºážáá¬ááá¯á· áááá°ážá" áá«áá²á ááŒá¿áᬠááŒá±áááºááœá¬ážááŒá®á
áá®ááá á¹á ááŸá¬ ááŒá¿áá¬áá áºáá¯áá±á«áºáá¬áááºá Kubernetes ááœáẠnamespace áá áºáá¯áááºáá®ážááẠáááºáá»áŸáááºáá²áá¬áááºááᯠáááºáá¶á á¬ážááááºá áááºážááá¯áááºáá®ážáááºá áá»áœááºá¯ááºááá¯á·ááẠá¡áá¬áá»á¬ážá áœá¬ááᯠááá·áºááœááºážá ááºážá á¬ážááẠááá¯á¡ááºáá«áááºá
á¡áááºážá¡ááŒá
áºááœá²áááºáž + ááá·áºáááºá¡ááá¯ááºážá¡ááŒá¬áž + RBAC
⢠namespace áááºáá®ážáá«á
⢠á¡ááœááºážááœáẠááá·áºáááºáá±á¬ááºáá
áºáᯠáááºáá®ážáá«á
⢠á¡áááºážá¡ááŒá
áºááœá²áááºážá¡ááœááºáž áááºáá®ážáá«á
⢠CI á¡ááœáẠáááºáá±á¬ááºááŸá¯á¡áá±á¬áá·áºáá
áºáᯠáááºáá®ážáá«á
⢠CI ááŸáá·áº áá¯á¶ážá
áœá²áá°áá»á¬ážá¡ááœáẠá¡áááºážááá¹ááá±á«ááºážá
ááºááŒááºážááᯠáááºáá®ážáá«á
⢠ááá¯á¡ááºáá±á¬ áááºáá±á¬ááºááŸá¯ pods áá»á¬ážááᯠááœá±ážáá»ááºááá¯ááºáááºá
ááá¯á·ááŒá±á¬áá·áº áá»áœááºá¯ááºáááá¯ážáááºááŸá¯áá»á¬ážááᯠáá»áŸáá±ááẠá€á¡ááœáá·áºá¡áá±ážááᯠááá°ááá¯áá«áááºá SDK á¡á±á¬áºááá±áá¬ááá¯á·áá±á«áºáá²á· á¡áá¬áá áºáá¯ááŸááá«áááºá áááºážááẠKubernetes á¡á á¯á¡áá±ážá¡ááœáẠáááºážá¡ááœáẠá¡á±á¬áºááá±áá¬áá»á¬ážáá±ážáá¬ážááẠáááºážáááºážáá áºáá¯ááŒá áºáááºá Ansible ááᯠá¡áá¯á¶ážááŒá¯á áá¯ááºááŒááºáá»ááºáá»á¬ážááᯠáá±ážáá¬ážááá¯ááºáááºá
á¡á ááá¯ááºážááœáẠáááºážááᯠAnsible ááŒáá·áºáá±ážáá¬ážáá²á·ááŒá®ážá ááá¯á·áá±á¬ááºááœáẠSDK á¡á±á¬áºááá±áá¬áá áºáá¯ááŸááá±áááºááá¯ááœá±á·áá²á·áááŒá®áž Ansible á¡áááºážááá¹áááᯠá¡á±á¬áºááá±áá¬á¡ááŒá áºááŒááºáááºáá±ážáá¬ážáá²á·áááºá á€áá¯ááºááŒááºáá»ááºááẠááá·áºá¡á¬áž á¡áááá·áºáá áºáá¯áá¯áá±á«áºáá±á¬ Kubernetes á¡á á¯á¡áá±ážááœáẠá¡áá¬áá áºáá¯ááᯠáááºáá®ážááá¯ááºá á±áá«áááºá command áá áºáá¯á¡ááœááºážá áááºážááẠááá·áºá¡á¬áž yaml ááœáẠဠcommand á¡ááœáẠáááºáááºážáá»ááºááᯠáá±á¬áºááŒááẠááœáá·áºááŒá¯áááºá á¡áááºážáááºáááºážáá»ááºá¡ááœááºážá áá»áœááºá¯ááºááá¯á·ááẠá¡áááºážá¡ááŒá áºáá»á¬ážá áœá¬ááᯠááœá²áá±áá»áá¬ážááŒá±á¬ááºáž áá±á¬áºááŒááá¯ááºá á±áá«áááºá
áá»á
áºáá»á
áºáá±ážááœááº
áááá¯á¶ážáá»á¯ááºáááºá áá«ááœá±á¡á¬ážáá¯á¶ážáá²á· áá¬áá¯ááºáááá²á
áááá Pod Security Policy á áá±á¬ááºážáá«áááºá Kubernetes áááºáááºáá°áá»á¬áž ááá±á·á¡áá»áááºá¡áá áááºážááá¯á·ááᯠá¡áá¯á¶ážáááŒá¯áá±á¬áºáááºážá áááºážááá¯á·ááᯠááá·áºá¡á
á¯á¡áá±ážáá»á¬ážááœáẠá¡áá¯á¶ážááŒá¯ááẠááá¯á¡ááºáá±áá±ážáááºá
ááœááºáááºáá°áá«áááẠáááá¯á¡ááºáá±á¬ á¡ááºá¹áá«áááºáá áºáá¯áá»áŸáᬠááá¯ááºáá«á áá«á á¡á á¯á¡ááœá²á·áá áºáá¯á¡ááœáẠááááºááá¯á¡ááºáá²á·á¡áá¬áá«á
LimitRange/ResourceQuota - áááºážááᯠá¡áá¯á¶ážááŒá¯ááẠá¡áá»áááºáááºáá«ááŒá®á áá«ááᯠáá»áœááºáá±á¬áºááá¯á· á áááºá¡áá¯á¶ážááŒá¯áá±áᬠááŒá¬ááŒá®ááŒá áºááŒá®áž áá°ááá¯ááºážáá¯á¶ážáá±ááŒáááºááá¯áᬠáá±áá»á¬áá±áᬠááŒá¬áá«ááŒá®á áá«á ááŸá¬ážááŸá¬ážáá«ážáá«áž ááŒá áºááœá¬ážáááºá
á¡á
á®áááºáá¶á
á¬á¡ááœááºáž áá»áœááºá¯ááºáá±á¬áºááŒáá²á·ááá·áºá¡áá¬áá»á¬ážá¡ááŒááºá á¡á
á¯á¡áá±ážááᯠááá¯ááºááá¯ááºááá¯ááºá
á±ááá·áº á¡áá±á¬ááºá¡áá¬ážáá²á·á¡ááºá¹áá«áááºáá»á¬áž ááŸááá«áááºá áááŒá¬áá±ážáá®á áá¯ááºááŒááºáá²á·áááºá
áá áºáá»áá¯á·á¡áá¬ááœá±á á¡áááºážáááºážáááºážááŒá®áž áá¬áá»ááºá áá¬áá±á¬ááºážáááºá á¥ááá¬á¡á¬ážááŒáá·áºá á¡áá»áá¯á·áá±á¬á¡ááŒá±á¡áá±áá»á¬ážááœáẠKubernetes á¡á á¯á¡áá±ážááŸá cubelets áá»á¬ážááẠwarlocks directory á á¡ááŒá±á¬ááºážá¡áá¬áá»á¬ážááᯠááœáá·áºááŒá¯áá»ááºáááŸááá² á¡áá¯á¶ážááŒá¯áá°áá áºáŠážá¡á¬áž áá±ážááá¯ááºáá«áááºá
á¡á¬ážáá¯á¶ážááá¯áá»á±ážáá°ážáááºáá«áááºá
source: www.habr.com