ááŸááºáá»ááºá áá¬áá¬ááŒááº: GitLab ááœáẠKubernetes ááœá±ážá á¬ážááŒááºážááᯠáá¯áá¹ááá®áááá¯ážáááºááŸá¯á¡ááœáẠá¡áá±á¬ááºá¡áá°ááŒá áºá á±áá±á¬ á¡áááá¡ááŒá±á¬ááºážáááºážááŸá áºáá¯áá²á០áá áºáá¯áᯠáá°ááá«áááºá ááá¯á·áá±á¬áºáááºáž áááŒá¬áá±ážáá®á¡ááá GitLab.com á¡áœááºááá¯ááºážáááºáá±á¬ááºááŸá¯á á¡ááŒá±áá¶á¡áá±á¬ááºá¡á¡á¯á¶ááᯠvirtual machines áá»á¬ážáá±á«áºááœáẠáááºáá±á¬ááºáá²á·ááŒá®áž ááŒá®ážáá²á·áá±á¬áá áºááŸá áºááá·áºáá០K8s ááá¯á· ááŒá±á¬ááºážááœáŸá±á·ááŒááºážá áááºáá²á·ááŒá®áž áááºážááẠáááŒá®ážááŒááºáá±ážáá«á GitLab SRE á¡ááºáá»ááºáá®áá¬áá áºáŠážá០áááŒá¬áá±ážáá®á áá±á¬ááºážáá«ážáá áºáá¯ááºá áá¬áá¬ááŒááºáá»ááºááᯠáá»áœááºá¯ááºááá¯á· áá»á±áááºá áœá¬ áááºáááºááá¯ááºááá«áááºá
ááá¯áá
áºááŸá
áºááá·áºááŸáááŒá®á áá»áœááºá¯ááºááá¯á·á á¡ááŒá±áá¶á¡áá±á¬ááºá¡á¡á¯á¶áá¬áááœá²ááẠGitLab.com ááœáẠáá¯ááºáá±á¬ááºáá±ááá·áº áááºáá±á¬ááºááŸá¯á¡á¬ážáá¯á¶ážááᯠKubernetes ááá¯á· ááŒá±á¬ááºážááœáŸá±á·áá±áá«áááºá á€á¡áá»áááºá¡áá±á¬á¡ááœááºážá áá»áœááºá¯ááºááá¯á·ááẠKubernetes ááá¯á· ááŒá±á¬ááºážááœáŸá±á·áááºáá±á¬ááºááŸá¯áá»á¬ážáá¬áá á¡áá°ážá¡ááŒá±á¬ááºážáá¬áá¡ááœááºáž áá±á«ááºážá
ááºááŒáá·áºáá»ááºááŸá¯ááᯠá
á®áá¶ááá·áºááœá²ááŒááºážááŸáá·áº áááºááá¯ááºááá·áº á
áááºáá±á«áºááŸá¯áá»á¬ážááŸáá·áº ááŒá¯á¶ááœá±á·áá²á·ááááºá á¡ááá¯ážáááºáááºáááºážá
á¬áá»á¬ážááᯠá€áá±á¬ááºážáá«ážááœáẠááœá±ážááœá±ážáá«áááºá
GitLab.com áá¡á
ááááºážáá áááºážááá¬áá¬áá»á¬ážááẠvirtual machines áá»á¬ážáá±á«áºááœáẠcloud ááœááºáááºáááºáá²á·áááºá ဠvirtual machines áá»á¬ážááᯠChef á០á
á®áá¶ááá·áºááœá²ááŒá®áž áá»áœááºá¯ááºááá¯á·ááᯠá¡áá¯á¶ážááŒá¯á ááá·áºááœááºážáá¬ážáá«áááºá
GitLab á áááá¹áá°áá»á¬ážááᯠááá·áºááœááºážááŒá®áž ááŒááºáááºáááºááŸááºáá¬ááœáẠáá¬áááºá¡ááá¯ááºážá¡ááá¯ááºážá¡ááœá²á·áááºáá»á¬áž ááœá±á·ááŒá¯á¶áá¶á á¬ážáááá·áº áááºážáááºážááŸá¯ááŸáá·áº áá»á±á¬áºááœáŸááºááŸá¯áá»á¬ážá¡á¬ážáá¯á¶ážááᯠááœá±á·ááŒá¯á¶áá¶á á¬ážáááẠá¡ááœááºá¡áá±ážááŒá®ážáá±á¬ááŒá±á¬áá·áº á€áááºážáááºážááᯠáá»áœááºá¯ááºááá¯á· á¡áá¯á¶ážááŒá¯áá«áááºá á€áá»ááºážáááºááŸá¯ááẠá¡áá»áááºá¡áááºááŒá¬ áá±á¬ááºážááœááºá áœá¬ á¡áá¯ááºáá¯ááºáá±á¬áºáááºáž GitLab ááŸá ááá±á¬áá»ááºá¡áá±á¡ááœááºááẠ10 áááºážáá»á±á¬áºááœá¬ážáá±á¬á¡áá«ááœáẠáááºážááẠáá»áœááºá¯ááºááá¯á·á ááá¯á¡ááºáá»ááºáá»á¬ážááᯠá¡ááá¯ááºážá¡áá¬ááŸáá·áº ááŒáá·áºáá»ááºááŒááºážá¡ááœáẠááŒáá·áºáááºážáá±ážáá±á¬á·ááẠááá¯ááºááŒá±á¬ááºáž áá»áœááºá¯ááºááá¯á· ááá±á¬áá±á«ááºáá«áááºá
Kubernetes ááŸáá·áº cloud-native GitLab ááá¯á· ááááá¯á¶ážááŒá±ááŸááºážáá»á¬áž
á¡ááá¯áá«ááá±á¬áá»ááºááᯠ2017 áá¯ááŸá
áºááœááºáááºáá®ážáá²á·áááºá
cloud áá¬ááááŸáá·áº Kubernetes áá®ááá¯á· ááœááºážá¡á¬ážáá±ážááŒááºážááŒáá·áº áá»áœááºá¯ááºááá¯á·áá¡ááºáá»ááºáá®áá¬áá»á¬ážá¡á¬áž á¡ááœááºáá°ážááŒá±á¬ááºážááŸá¯á¡á á®á¡á ááºááᯠáááŒááºážááŒááºážáá»ááºáž á á®á ááºááá¯ááºá á±áá²á·ááŒá®áž áááºáá±á¬ááºááŸá¯á¡áá áºáá»á¬ážááᯠáááºáááºáá¯ááºáá±á¬ááºáá±á ááºááœáẠááœááºáááºááá¯ááŸá±á¬ááºááŸá¯á¡áá±á«áº á¡ááá®áá±ážááŸááºážáááŸá®ááá¯ááŸá¯á¡áá»áá¯á·ááᯠá áœáá·áºááœáŸááºáá²á·áááºá 2019 áá¯ááŸá Ạááœá±áá¬áá®ááœáẠááœáŸá±á·ááŒá±á¬ááºážááŒááºážá¡á¬áž áá»áœááºá¯ááºááá¯á· á áááºá á®á ááºááááºážáá á€ááá·áºáááºáá»ááºáá»á¬áž á¡áá»á¬ážá¡ááŒá¬ážááᯠááŒá±ááŸááºážááŒá®ážááŒá áºááŒá®ážá GitLab.com ááá¯á· Kubernetes ááá¯á· ááŒá±á¬ááºážááœáŸá±á·ááŒááºážáá¯ááºáááºážá ááºááẠááá¯á¡áá« áá±á¬ááºážááœááºá áœá¬ áá¯ááºáá±á¬ááºáá±ááŒá®ááŒá áºáááºá
Kubernetes ááŸá GitLab.com áá¡ááºá¹áá«áááºáá»á¬áž
GitLab.com á¡ááœááºá áá»áœááºá¯ááºááá¯á·ááẠá¡ááá®áá±ážááŸááºážá¡ááœá¬ážá¡áá¬á¡á¬ážáá¯á¶ážááᯠááá¯ááºááœááºáá±ážááá·áº áá±áááá¯ááºáᬠGKE á¡á á¯á¡áá±ážáá áºáá¯áááºážááᯠá¡áá¯á¶ážááŒá¯áá«áááºá (ááŸá¯ááºááœá±ážááŒá®ážáá¬áž) ááœáŸá±á·ááŒá±á¬ááºážááŒááºážá ááŸá¯ááºááœá±ážááŸá¯ááᯠáá»áŸá±á¬á·áá»áááºá áá»áœááºá¯ááºááá¯á·ááẠáá±áááœááºáž ááá¯ááŸá±á¬ááºááŸá¯ ááá¯á·ááá¯áẠNFS ááᯠá¡á¬ážááá¯ážááŒááºážáááŸááá±á¬ áááºáá±á¬ááºááŸá¯áá»á¬ážááᯠá¡á¬áá¯á¶á áá¯ááºáá«áááºá GitLab.com ááẠá¡áá»á¬ážá¡á¬ážááŒáá·áº monolithic Rails áá¯ááºáá±á·á áºááᯠá¡áá¯á¶ážááŒá¯ááŒá®áž áááºážááá¯á·ááá¯ááºááá¯áẠnode pool áá»á¬ážá¡ááœááºáž áá®ážááŒá¬ážááœá²áá¬ážáá±á¬ ááá°áá®áá±á¬ á¡áá¯á¶ážááŸááºáá»á¬ážáá®ááá¯á· á¡áá¯ááºáááºááá¹ááá¬áá»á¬ážáá±á«áºáá°áááºá áááºážááŒá±á¬ááºážá¡ááœá¬ážá¡áá¬ááᯠáááºážááŒá±á¬ááºážáá±ážáá«áááºá
Frontend ááá
á¹á
ááœááºá á€á¡áá»áá¯ážá¡á
á¬ážáá»á¬ážááᯠáááºá APIá Git SSH/HTTPS ááŸáá·áº Registry ááá¯á· áá±á¬ááºážááá¯ááŸá¯áá»á¬ážá¡ááŒá
Ạááá¯ááºážááŒá¬ážáá¬ážáááºá backend áá¡ááŒá±á¡áá±ááœááºá áá»áœááºá¯ááºááá¯á·ááẠááá°áá®áá±á¬áááá±áááá¹ááá¬áá»á¬ážá¡ááá¯áẠáááºážá
á®áá±áá±á¬á¡áá¯ááºáá»á¬ážááᯠááá¯ááºážááŒá¬ážáá¬ážáááºá
ဠGitLab.com áááºáá±á¬ááºááŸá¯áá»á¬ážá¡á¬ážáá¯á¶ážááẠááœááºážáá¶áá¬ážáá±á¬ GitLab Helm ááá¬ážááᯠá¡áá¯á¶ážááŒá¯á ááŒááºáááºáááºááŸááºáá¬ážáá«áááºá áá»áœááºá¯ááºááá¯á·ááẠáááºáá±á¬ááºááŸá¯áá»á¬ážááᯠá¡á á¯á¡áá±ážááá¯á· ááŒááºážááŒááºážáá»ááºáž ááŒá±á¬ááºážááœáŸá±á·ááŒááºážááŒáá·áº ááœá±ážáá»ááºáá¯ááºáá±á¬ááºááá¯ááºáá±á¬ááŒá±á¬áá·áº ááœá²á·á ááºážááŸá¯áá¯á¶á á¶ááᯠááá¬ážááœááºááœá²áá»á¬ážááœáẠáá¯ááºáá±á¬ááºáá«áááºá Redisá Postgresá GitLab Pages ááŸáá·áº Gitaly áá²á·ááá¯á·áá±á¬ ááœáŸá±á·ááŒá±á¬ááºážáá±ááá¯ááºááŸá¯ááœáẠáá»áœááºá¯ááºááá¯á·áááá¯ááºáá¶ááá¯ááºáááºáá±á¬ááºááŸá¯á¡áá»áá¯á·ááᯠáááá·áºááœááºážááẠáá»áœááºá¯ááºááá¯á· áá¯á¶ážááŒááºáá¬ážáá±á¬áºáááºáž Kubernetes ááá¯á¡áá¯á¶ážááŒá¯ááŒááºážááŒáá·áº áá»áœááºá¯ááºááá¯á·á¡á¬áž áááºááŸáá á¬ážááá¯ááŸá°ážá á®áá¶ááá·áºááœá²ááá·áº VM á¡áá±á¡ááœááºááᯠáááááá¬áá¬áá»áŸá±á¬á·áá»ááá¯ááºá á±áá«áááºá
Kubernetes ááœá²á·á ááºážááŸá¯ááŒááºááá¯ááºááŸá¯ááŸáá·áº á á®áá¶ááá·áºááœá²ááŸá¯
áááºáááºá¡á¬ážáá¯á¶ážááᯠGitLab ááá¯ááºááá¯ááºá á á®áá¶ááá·áºááœá²áá«áááºá áááºážá¡ááœááºá Terraform ááŸáá·áº Helm ááᯠá¡ááŒá±áá¶á ááœá²á·á ááºážááŸá¯ááá¯ááºáᬠááá±á¬áá»ááºáá¯á¶ážáá¯ááᯠá¡áá¯á¶ážááŒá¯áá¬ážáááºá áá»áœááºá¯ááºááá¯á·ááẠGitLab ááá¯áááºáááºááẠááŒá áºááá¯ááºááá·áºá¡áá«ááá¯ááºáž GitLab ááá¯ááºááá¯ááºá¡áá¯á¶ážááŒá¯ááẠááŒáá¯ážá á¬ážáá±á¬áºáááºáž áá¯ááºáááºážáááºáááºááŸá¯ááá¯ááºáá¬áá¯ááºáááºážáá»á¬ážá¡ááœáẠáá®ážááŒá¬áž GitLab áááºáááºááŸá¯áá áºáá¯ááŸááááºá GitLab.com ááŒáá·áºáá»ááºááŸá¯áá»á¬ážááŸáá·áº á¡ááºááááºáá»á¬ážááᯠáá¯ááºáá±á¬ááºáá±á¬á¡áá«ááœáẠáááºááẠGitLab.com ááááŸáááá¯ááºááŸá¯á¡áá±á«áºááœáẠááŸá®ááá¯áá±ááŒááºážáááŸáááŒá±á¬ááºáž áá±áá»á¬á á±ááẠáááºážááẠááá¯á¡ááºáá«áááºá
Kubernetes á¡á á¯á¡áá±ážá¡ááœáẠáá»áœááºá¯ááºááá¯á·áááá¯ááºááá¯ááºážáá»á¬ážááẠáá®ážááŒá¬áž GitLab áááºáááºááŸá¯ááœáẠáá¯ááºáá±á¬ááºáá±áá±á¬áºáááºážá á¡á±á¬ááºáá«ááááºá á¬áá»á¬ážááœáẠáá°ááááŸááºááŒá¬ážáááŸáááá¯ááºááá·áº áá¯ááºááá¯ááŸá±á¬ááºáá±áá¬áá»á¬ážá ááŸááºáá»á¬ážááŸááá«áááºá
-
k8s-workloads/gitlab-com â GitLab Helm ááá¬ážá¡ááœáẠGitLab.com ááœá²á·á ááºážááŸá¯áá±á¬ááºá -
k8s-workloads/gitlab-helmfiles - GitLab á¡ááá®áá±ážááŸááºážááŸáá·áº ááá¯ááºááá¯ááºááááºááá¯ááºáá±á¬ áááºáá±á¬ááºááŸá¯áá»á¬ážá¡ááœáẠááœá²á·á ááºážááŸá¯áá¯á¶á á¶áá»á¬áž áá«ááŸááááºá áááºážááá¯á·ááœáẠáá áºáá¯ááºááŒááºážááŸáá·áº á¡á á¯á¡áá±ážá á±á¬áá·áºááŒáá·áºááŒááºážá¡ááœáẠááœá²á·á ááºážááŸá¯áá¯á¶á á¶áá»á¬ážá¡ááŒáẠPlantUML áá²á·ááá¯á· áá±á«ááºážá ááºáááááá¬áá»á¬áž áá«áááºáááºá -
Gitlab-com-á¡ááŒá±áá¶á¡áá±á¬ááºá¡á¡á¯á¶ - Kubernetes ááŸáá·áº á¡ááœá±á¡ááŸá ẠVM á¡ááŒá±áá¶á¡áá±á¬ááºá¡áŠá¡ááœáẠTerraform ááœá²á·á ááºážááŸá¯á á€ááœáẠáááºááẠá¡á á¯á¡áá±ážááá¯áááºáááºááẠááá¯á¡ááºáá±á¬á¡áááºážá¡ááŒá áºáá»á¬ážá¡á¬ážáá¯á¶ážááᯠá¡á á¯á¡áá±ážááá¯ááºááá¯ááºá node poolsá áááºáá±á¬ááºááŸá¯á¡áá±á¬áá·áºáá»á¬ážááŸáá·áº IP ááááºá á¬ááŒáá¯áááºááŸá¬áá°ááŸá¯áá»á¬ážá¡áá«á¡ááẠá¡áááºážá¡ááŒá áºá¡á¬ážáá¯á¶ážááᯠconfigure áá¯ááºáá«á
á¡ááŒá±á¬ááºážá¡áá²áá»á¬áž ááŒá¯áá¯ááºááá·áºá¡áá« á¡áá»á¬ážáá°ááŸá¬ ááŒáá·áºááŸá¯ááŸá¯ááᯠááŒááááºá
SRE á¡ááœááºá ááá·áºááºááẠá¡ááá·áºá¡áááºááŸááá±á¬ áá¯ááºáá¯ááºááŒááºážááŸáá·áº á¡áá¯á¶ážááŒá¯ááœáá·áºá¡ááœáẠá¡áá¯á¶ážááŒá¯ááá·áº GitLab áááºáááºááŸá¯ááœáẠá¡áá±ážá áááºááœá²ááŒá¬ážááŸá¯ááᯠáŠážáááºá á±áááºá áááºážááẠáááºáááºážáá»á¬ážááŸáá·áº á¡ááá¯ááºá¡áááºážá¡á¬áž áá¯ááºáááºážáááºáááºááŸá¯ááá±á¬áá»áẠ(SREs áá»á¬ážá¡ááœááºáá¬ááœáá·áºáá¬ážááá·áº) ááá¯á·áááºáá±á¬ááºááœáá·áºáááŸááá² á¡ááá¯ááŒá¯áá¬ážáá±á¬ááœá²á·á ááºážáá¯á¶á¡ááŒá±á¬ááºážá¡áá²áá»á¬ážááá¯ááŒáá·áºááŸá¯áááºááœáá·áºááŒá¯áááºá CI ááá¯ááºááá¯ááºážáá»á¬ážá¡ááœáẠáá®ážááá·áºá¥ááá¬áá áºáá¯ááŸáá·áº áá¯ááºá¡ááœáẠá¡áá»á¬ážáá°ááŸá¬ GitLab instance ááᯠáá±á«ááºážá ááºááŒááºážááŒáá·áºá configuration updates áá»á¬ážá¡ááœáẠGitLab.com á០á¡ááŸá®á¡ááá¯áááºážááŒá±á¬ááºáž áá±áá»á¬á á±ááŒá®ážá áá»áœááºá¯ááºááá¯á·ááẠáá áºáá¯áááºážáá±á¬ á¡áá¯ááºá¡ááœá¬ážá¡áá¬ááᯠááááºážááááºážáá¬ážáá«áááºá
ááœáŸá±á·ááŒá±á¬ááºážáá±ááá¯ááºá ááºá¡ááœááºáž áá»áœááºá¯ááºááá¯á· ááœá±á·ááŸááá²á·ááá»áŸ
ááŒá±á¬ááºážááœáŸá±á·ááŸá¯á¡ááœááºáž Kubernetes ááœáẠááœáŸá±á·ááŒá±á¬ááºážááŒááºážááŸáá·áº á¡áá¯á¶ážáá»ááŒááºážá¡áá áºáá»á¬ážááŸáá·áº áááºááá¯ááºááá·áº á¡ááœá±á·á¡ááŒá¯á¶ááᯠáááŸááá²á·áá«áááºá
1. áááŸáááá¯ááºááŸá¯áá¯ááºáá»á¬ážááŒá¬ážááœáẠáá¬ááºááŒá±á¬ááááºááá¯á·ááŸá¯ááŒá±á¬áá·áº áá¯ááºáá»á ááááºáá»á¬áž ááá¯ážáá¬áááºá
Git ááá¯ááŸá±á¬ááºáá±áá¬ááºá
á¯á¡ááœáẠGitLab.com ááŸá Git repository fleet á¡ááœáẠáá±á·á
ááºááœááºáá±á«ááºá
á¬áááºážá¡ááºážáá»á¬áž (áá
áºáá±á·áá»áŸáẠbytes)
Google ááẠáááºážáááœááºáááºááᯠáá±ááá»á¬ážá¡ááŒá Ạááá¯ááºážááŒá¬ážáá¬ážáááºá áá áºááẠáááºážááá¯á·ááᯠáá¯á¶ážá áœá²ááá¯ááºááŸá¯áá¯ááºáá»á¬áž (AZ) áá°á ááœá²ááŒá¬ážáá¬ážáááºá Git hosting ááẠáá±áá¬á¡ááŒá±á¬ááºá¡ááŒá¬ážááŸáá·áº áááºá ááºáá±áá±á¬ááŒá±á¬áá·áº ááœááºáááºá០ááœááºááœá¬ááŸá¯ááᯠááááºážáá»á¯ááºááẠá¡áá±ážááŒá®ážáá«áááºá á¡ááœááºážá¡ááœá¬ážá¡áá¬á¡ááœááºá áá°áá®áá±á¬áááŸáááá¯ááºááŸá¯áá¯ááºá¡ááœááºážááŸááá±áá«á egress ááẠá¡ááá²á·ááŒá áºáááºá á€áá±ážáá¬ážááŸá¯á¡áá áá»áœááºá¯ááºááá¯á·ááẠáá¯á¶ááŸááºá¡áá¯ááºáá±á·ááœáẠáá±áᬠ100 TB ááá·áºááᯠáááºáá±á¬ááºááŸá¯áá±ážáá±ááẠ(áááºážááẠGit repositories á¡ááœááºáá¬ááŒá áºáááº)á áá»áœááºá¯ááºááá¯á·á VM-based topology áá±á¬ááºážááŸá áá°áá®áá±á¬ virtual machines áá»á¬ážááœáẠáá±ááá¯ááºááá·áº áááºáá±á¬ááºááŸá¯áá»á¬ážááẠááᯠááá°áá®áá±á¬ Kubernetes pods áá»á¬ážááœáẠáá¯ááºáá±á¬ááºáá±áá«áááºá ááá¯ááá¯áááºááŸá¬ VM ááá¯á·ááááºáááŒááºááœááºážááŸáá¡ááœá¬ážá¡áá¬á¡áá»áá¯á·áááºáááŸáááá¯ááºááŸá¯áá¯ááºáá»á¬ážá¡ááŒááºáááºááá¯á·ááœá¬ážáá¬ááá¯ááºáááºáá¯ááá¯ááá¯áááºá
áá±áááá¯ááºáᬠGKE á¡á
á¯á¡áá±ážáá»á¬ážááẠááá·áºá¡á¬áž á¡ááŒáááºáá±á¡ááœáẠáááŸáááá¯ááºááŸá¯áá¯ááºáá»á¬ážá
áœá¬ááᯠáá»á²á·ááœááºááá¯ááºá
á±áá«áááºá ááŒá
áºááá¯ááºáá»á±ááᯠáá»áœááºáá±á¬áºááá¯á· á
ááºážá
á¬ážáá±áá«áááºá
2. ááá·áºáááºáá»ááºáá»á¬ážá á¡áááºážá¡ááŒá áºáá±á¬ááºážááá¯ááŸá¯áá»á¬ážááŸáá·áº á¡ááá¯ááºážá¡áá¬áá»á¬áž
registry.gitlab.com ááœáẠáá¯ááºáá¯ááºááŸá¯áááºážááŒá±á¬ááºážááᯠáá¯ááºáá±á¬ááºáá±ááá·áº áá¯á¶áá°á¡áá±á¡ááœááºá ~ 15:00 UTC ááœáẠáá¬ááºá¡ááœá¬ážá¡áᬠá¡ááŒáá·áºáá¯á¶ážá
áá»áœááºá¯ááºááá¯á·áááááá¯á¶ážáááºáá±á¬ááºááŸá¯ááŒá áºáá±á¬ GitLab ááœááºááááºáá¬ááŸááºáá¯á¶áááºááŒááºážááᯠKubernetes ááá¯á· ááŒá±á¬ááºážááœáŸá±á·áá±á¬á¡áá« áá»áœááºá¯ááºááá¯á·áááœáŸá±á·ááŒá±á¬ááºážááŒááºážáá¬ááºáááºážááẠ2019 áá¯ááŸá ẠááŒáá¯ááºáááœáẠá áááºáá²á·áááºá á€áá áºááŸááºá¡áá±ážáá«áá±á¬á á¡ááœá¬ážá¡áá¬áá»á¬ážáá±á¬áááºáá±á¬ááºááŸá¯ááẠááá¯ááºáá¶áá²á·á¡ááá®áá±ážááŸááºážááŒá áºáá±á¬ááŒá±á¬áá·áº ááŒááºáááŸá®ááá¯ááŸá¯á¡áááºážáááºááŸááá±á¬ ááá¯ááºáá¶áá²á·á¡ááºááá®áá±ážááŸááºážááŒá áºáá±á¬ááŒá±á¬áá·áº ááááá¯á¶ážááœáŸá±á·ááŒá±á¬ááºážááŒááºážá¡ááœáẠáá±á¬ááºážáá±á¬ááœá±ážáá»ááºááŸá¯ááŒá áºáááºá áá»áœááºá¯ááºááá¯á· ááááá¯á¶ážááŒá¯á¶ááœá±á·áááá·áº ááŒá¿áá¬ááŸá¬ node áá»á¬ážááœáẠmemory áááŸáááŒááºážááŒá±á¬áá·áº ááŸááºáá¯ááºáá¶ááá±á¬ pods á¡áá»á¬ážá¡ááŒá¬ážááŒá áºáááºá ááá¯á·á¡ááœááºááŒá±á¬áá·áº áá»áœááºá¯ááºááá¯á·ááẠáá±á¬ááºážááá¯ááŸá¯áá»á¬ážááŸáá·áº ááá·áºáááºáá»ááºáá»á¬ážááᯠááŒá±á¬ááºážáá²áá²á·ááááºá
á¡áá»áááºááŒá¬áá¬áááºááŸáá·áºá¡áá»áŸ ááŸááºáá¬ááºáá¯á¶ážá
áœá²ááŸá¯ ááá¯ážáá¬áá±ááá·áº á¡ááºááá®áá±ážááŸááºážáá
áºáá¯ááœááºá á¡áá¯á¶ážááŒá¯ááŸá¯á¡áá±á«áº "áááºáá±á¬áá±á¬" áááºáá²áá±á¬ááá·áºáááºáá»ááºááŒáá·áº ááœá²áá»áẠáá±á¬ááºážááá¯ááŸá¯áá»á¬ážá¡ááœáẠáááºááá¯ážáá»á¬áž (pod áá
áºáá¯á
á®á¡ááœáẠááŸááºáá¬ááºááᯠááááºážáááºážááŒááºáž) áááºážáá«ážáááºááᯠááŸá¬ááœá±ááœá±á·ááŸááá²á·áááºá (ááœáŸá²) nodes áá»á¬ážááŸáá·áº ááŸááºáá¯ááºááŒááºáž á¡ááá·áºááŒáá·áºáá¬ážáááºá áá®ááŒá¿áá¬ááᯠááŒá±ááŸááºážááá¯á·á
3. áááºááá áºáá»á¬ážááŸáá·áº ááŸááºáááºážáá»á¬áž
á¡ááŒá±áá¶á¡áá±á¬ááºá¡áŠáá¬áááœá²ááẠáááºáááºáá¬ážááá·áºá¡áá»áááºá á¡ááŸá¬ážá¡ááœááºážááŸá¯ááºážáá»á¬ážááŸáá·áº ááœáŸá²ááœáŸá²á
áá¯á
áœááºááŸá¯á¡áá±á«áº á¡á¬áá¯á¶á
áá¯ááºáááºá
ááŒá®ážáá²á·áá±á¬ááŸá áºááœááºá á¡ááŒá±áá¶á¡áá±á¬ááºá¡á¡á¯á¶áá¬áááœá²ááŸá á¡áááááŒá áºáááºáá»á¬ážáá²ááŸáá áºáá¯ááŸá¬ SLO áá»á¬ážá á±á¬áá·áºááŒáá·áºááŒááºážááŸáá·áº áááºááœá²áá¯ááºáá±á¬ááºááŒááºážááœáẠááá¯ážáááºááŸá¯áá»á¬ážááŒá áºáááºá SLO áá»á¬ážááẠááŒá±á¬ááºážááœáŸá±á·ááŸá¯á¡ááœááºáž áá»áœááºá¯ááºááá¯á·á¡áá®ážáááºá á±á¬áá·áºááŒáá·áºáá²á·ááá·áº áá áºáŠážáá»ááºážáááºáá±á¬ááºááŸá¯áá»á¬ážá¡ááœáẠáááºážááá¯ááºáá»á¬ážáá»ááŸááºááá¯ááºá á±áá²á·áááºá ááá¯á·áá±á¬áº á€ááá¯ážáááºáá¬áá±á¬ ááŸá¯ááŒááºááá¯ááºá áœááºážááŒáá·áºáááºá áááºááá áºáá»á¬ážááŸáá·áº ááááá±ážáá»ááºáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯á ááŒá¿áá¬áá»á¬ážááᯠáá»ááºááŒááºážááŒááºááẠá¡ááŒá²áááºážáááŒá áºááá¯ááºáá«á á¥ááá¬á¡á¬ážááŒáá·áºá ááŒá¬ááŒáá·áºáá»áááºááŸáá·áº á¡ááŸá¬ážá¡ááœááºážááŸá¯ááºážáá»á¬ážááᯠá¡á¬áá¯á¶á áá¯ááºááŒááºážááŒáá·áºá ááœáŸá±á·ááŒá±á¬ááºážááŒááºážáá¯ááºáá±á¬ááºáá±ááá·áº áááºáá±á¬ááºááŸá¯á¡ááœáẠá¡áá¯á¶ážááŒá¯ááŸá¯ááá á¹á á¡á¬ážáá¯á¶ážááᯠáá»áœááºá¯ááºááá¯á· á¡ááŒáá·áºá¡á á¡áá»á¯á¶ážááááºáá«á
á¡áá¯ááºáá»áááºá¡áá»áá¯á·ááᯠá¡á
á¯á¡áá±ážááá¯á· ááŒá±á¬ááºážááœáŸá±á·ááŒá®ážáá±á¬áẠá€ááŒá¿áá¬ááᯠááŸá¬ááœá±ááœá±á·ááŸááá²á·áááºá áá±á¬ááºážááá¯áá»ááºá¡áá±á¡ááœáẠáááºážáá«ážáá±á¬áºáááºáž á¡ááœááºáááá»áá±á¬ ááœá²á·á
ááºážááŸá¯ááá¯ááºáᬠááŸá®ááá¯ááŸá¯ááŸáááá·áº áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááᯠá
á
áºáá±ážáá±á¬á¡áá«ááœáẠá¡áá°ážáááŒáá·áº ááŒááºážáááºáá¬áááºá ááœáŸá±á·ááŒá±á¬ááºážáá±ááá¯ááºááŒááºážá០á¡ááááááºáááºážá
á¬áá»á¬ážáá²á០áá
áºáá¯ááŸá¬ á
á±á¬áá·áºááŒáá·áºá
á
áºáá±ážááá·áºá¡áá« áááºááá
áºáá»á¬ážáá¬áá ááŸááºáááºážáá»á¬ážááŸáá·áº "á¡ááŒá®ážááŸááº" ááá¯áá« ááá·áºááœááºážá
ááºážá
á¬ážááẠááá¯á¡ááºáá«áááºá (áá«á á¡ááŒá±á¬ááºážáá«á
áá°áá®áá±á¬áá±á¬ááºážááá¯ááŸá¯áá»á¬ážááᯠVM á¡ááŒá±áá¶á¡áá±á¬ááºá¡á¡á¯á¶áá±á¬ááºážááŸáá·áº Kubernetes á¡ááŒá±ááŒá¯á¡ááŒá±áá¶á¡áá±á¬ááºá¡á¡á¯á¶á¡áá
áºááœáẠááŒáá¯ááºáá°áá±á¬ááºááœááºáá±ážááŒááºážááẠáá°ážááŒá¬ážáá±á¬á
áááºáá±á«áºááŸá¯ááá¯áááºááŒáááºá lift-and-shift ááœáŸá±á·ááŒá±á¬ááºážááŒááºážááŸáá·áº ááá°áá«á (á¡ááá®áá±ážááŸááºážáá»á¬ážááᯠá¡ááŒá±áá¶á¡áá±á¬ááºá¡á¡á¯á¶á¡áá
áºáá
áºáá¯ááá¯á· âá¡ááá¯ááºážâ á¡ááŒááºááœáŸá²ááŒá±á¬ááºážááŒááºážá á¡áá±ážá
áááºá¡áá»ááºá¡áááºáá»á¬ážááᯠáááºááŸá¯ááá¯ááºááẠá¥ááá¬á
4. áá¬ááºá¡ááœá¬ážá¡áá¬ááᯠá¡á á¯á¡áá±ážá¡áá áºááá¯á· ááŒá±á¬ááºážááŒááºážá
GitLab.com á¡ááœááºá áá¬áá¬áá»á¬ážá áá
áºá
áááºáá
áºááá¯ááºážááᯠáááºááœááºáá«áááºá
ááœáŸá±á·ááŒá±á¬ááºážááŒááºážááá á¹á ááœááºá áááºážááẠá¡ááœááºážááá±á¬áá»ááºáá»á¬ážááá¯á· áá±á¬ááºážááá¯áá»ááºáá»á¬ážááᯠKubernetes áᶠáŠážá áœá¬áá±ážááá¯á·ááŒá®áž HAProxy ááŸáá áºááá·áº áá±á¬ááºáá¶á¡ááœáẠá¡áá±ážáá»áááºááᯠááŒá±á¬ááºážáá²ááŒááºážááŒáá·áº áá»ááºá¡ááœá¬ážá¡áá¬á¡á¬ážáá¯á¶ážááᯠá¡á á¯á¡áá±ážááá¯á· ááŒááºážááŒááºážáá»ááºážááŒá±á¬ááºážáá±ážáá«áááºá VM á០Kubernetes ááá¯á· ááŒá±á¬ááºážááœáŸá±á·ááŸá¯á¡ááœááºážá á¡áá±á¬ááºážááŸáá·áº á¡ááŒá±áá¶á¡áá±á¬ááºá¡á¡á¯á¶á¡áá áºáá»á¬ážááŒá¬áž áááºážááŒá±á¬ááºážááŒá±á¬ááºážááẠááœááºáá°áá±á¬áááºážáááºážááŸáááŒááºážááŸá¬ á¡ááœááºá¡áá»áá¯ážááŸáááŒá®áž ááŒá±á¬ááºážááœáŸá±á·ááŒá®ážáá±á¬áẠááááááºá¡áááºážáááºá¡ááœááºáž á¡ááŒá±áá¶á¡áá±á¬ááºá¡á¡á¯á¶áá±á¬ááºážááᯠá¡áááºááá·áºáá¬ážááŸááá«á
5. á¡á á±á·áá»á¬ážá á áœááºážáá±á¬ááºáááºááŸáá·áº áááºážááá¯á·á á¡áá¯á¶ážááŒá¯ááŸá¯ááᯠááááºážáááºážáá«á
áá»ááºáá»ááºážááá¯áááá¯ááẠá¡á±á¬ááºáá«ááŒá¿áá¬ááᯠáá±á¬áºáá¯ááºááœá±á·ááŸááá²á·áááº- Registry áááºáá±á¬ááºááŸá¯á¡ááœáẠpods áá»á¬ážááẠáá»ááºááŒááºá
áœá¬á
áááºáá²á·ááŒá®ážá ááá¯á·áá±á¬áº Sidekiq á¡ááœáẠá
áááºááá·áº pods áá»á¬ážááẠá¡áá»áááºááŒá¬ááŒáá·áºáá²á·áááºá
á€ááá á¹á ááœááºá áááºáááºážá á¬ááŸá¬ Kubernetes á Horizontal Pod Autoscaler (HPA) ááẠáá¬ááºá¡ááœá¬ážá¡áá¬ááá¯ážáááºááŸá¯ááᯠáá±á¬ááºážááœááºá áœá¬ááá¯ááºááœááºááá¯ááºáá±á¬áºáááºážá á¡áá¯ááºáááºáá»á¬ážááááá±áááá¹ááá¬áá»á¬ážááᯠááá·áºááœááºážá ááºážá á¬ážáááºááŸáá·áº pods áá»á¬ážááá¯á· á¡á¬ážáááºáá»áááºááá¬áááᯠááœá²áá±áááºááŸááºááẠá¡áá±ážááŒá®ážáááºááŸá¬ (á¡áá°ážáááŒáá·áº áááºááá¯á¡á¬áž ááá®ááá¬ááŒá áºáá±áá±á¬á¡áá«)á áá»áœááºá¯ááºááá¯á·áá¡ááŒá±á¡áá±ááœááºá á¡áá¯ááºáá»á¬ážáá¯ááºááááºááŒáá·áºáááºáá¬ááŒá®áž áá»ááºááŒááºáá±á¬á áá±ážáá»á²á·ááŒááºážááá¯ááŒá áºáá±á«áºá á±ááŒá®áž node pool ááá¯á áá±ážáá»áááºáááá®ááœáẠCPU áááºážááŒá áºáá»á¬áž ááœáŸá²áá¬á á±áááºá
á¡á
á¯á¡ááœá²á·áá
áºáá¯á០áááºááá¯ááºááá»áŸ ááŸá
áºáá¯ááºááẠááœá±ážáá±á¬ááºááŸá¯ á¡ááŒá²ááŸááá±áááºá ááá¯á·áá±á¬áº á¡á
ááá¯ááºážááœáẠá
áœááºážáá±á¬ááºááẠááŒá¿áá¬áá»á¬áž ááŒá¯á¶ááœá±á·áá²á·áááŒá®áž ááá¯á¡áá« áá»áœááºá¯ááºááá¯á·ááẠáááºáá±á¬áá±á¬ áááºáá»ááºááŒáá·áº á
áááºáᬠáá±á¬ááºááá¯ááºážááœáẠáááºážááᯠáá»áŸá±á¬á·áá»áᬠSLO áá»á¬ážááᯠá¡áá®ážááẠá
á±á¬áá·áºááŒáá·áºáá±áá«áááºá Sidekiq áááºáá±á¬ááºááŸá¯á¡ááœáẠá
áááºá¡áá¯á¶ážááŒá¯ááá·áº pods áá»á¬ážááẠáááááá¬áᬠá¡ááŸáááºááŒáŸáá·áºáá²á·ááŒá®áž ááá¯á¡áá« áá»ááºážáá»áŸ á
áá¹ááá·áº 40 ááá·áº ááŒá¬áá«áááºá
áá±á¬ááºáá»ááº
áááºáá±á¬ááºááŸá¯áá áºáá¯á á®ááᯠááŒá±á¬ááºážááœáŸá±á·ááŒá®ážáá±á¬ááºá áá¯ááºáá¯ááºááŸá¯ááœáẠKubernetes ááᯠá¡áá¯á¶ážááŒá¯ááŒááºážá á¡áá»áá¯ážáá»á±ážáá°ážáá»á¬ážááᯠáá»áœááºá¯ááºááá¯á· áááºážááŒá±á¬ááºáááá«áááº- á¡ááºááá®áá±ážááŸááºážááᯠááá¯ááá¯ááŒááºáááºá áœá¬ ááŒáá·áºáá»ááºááŒááºážá áá»á²á·ááœááºááŒááºážááŸáá·áº ááá¯ááá¯áááá±á¬ááºáá±á¬ á¡áááºážá¡ááŒá áºááœá²áá±áá±ážááŒááºážááá¯á·ááᯠáááºážááŒá±á¬ááºáááá«áááºá ááá¯á·á¡ááŒááºá ááœáŸá±á·ááŒá±á¬ááºážááŒááºážáá¡á¬ážáá¬áá»ááºáá»á¬ážááẠGitLab.com áááºáá±á¬ááºááŸá¯ááẠáá»á±á¬áºááœááºááœá¬ážáá«áááºá ááá¬ážááẠHelm ááá¬ážá¡ááœáẠááá¯ážáááºááŸá¯ááá¯ááºážááẠáááºážáá¡áá¯á¶ážááŒá¯áá°áá»á¬ážááᯠá¡áá»áá¯ážááŒá¯áááºá
áá»áœááºá¯ááºááá¯á·á Kubernetes ááœáŸá±á·ááŒá±á¬ááºážááŒááºážá áœáá·áºá á¬ážáááºážáá¬ááºáááºážááᯠáááºááŸá áºáááºáááºáᯠáá»áŸá±á¬áºááá·áºáá«áááºá áá»áœááºá¯ááºááá¯á·ááẠáááºáá±á¬ááºááŸá¯á¡áá áºá¡á¬ážáá¯á¶ážááᯠá¡á á¯á¡áá±ážááá¯á· áááºáááºááŒá±á¬ááºážááœáŸá±á·áá«áááºá áá±á¬ááºáááºá¡áá»ááºá¡áááºáá»á¬ážááᯠá¡á±á¬ááºáá«áá¯ááºáá±ááŸá¯áá»á¬ážááœáẠááœá±á·ááŸáááá¯ááºáááº-
- «
áá»áœááºá¯ááºááá¯á·ááẠKubernetes ááá¯á· á¡áááºááŒá±á¬áá·áº ááŒá±á¬ááºážááœáŸá±á·áá±ááŒááááºážá "; - «
Kubernetes ááœáẠGitLab.com "; -
GitLab.com ááᯠKubernetes ááá¯á· ááŒá±á¬ááºážááœáŸá±á·ááŒááºážááá¯ááºáᬠEpic .
PS áá¬áá¬ááŒááºááŸ
áá»áœááºá¯ááºááá¯á·áááá±á¬á·ááºááœááºáááºážáááºáá«
- «
Kubernetes ááŒáá·áº á ááŸá áºááŒá¬ áá¯ááºáá¯ááºáá²á·áááº- á€áááºááŸá¬ áá»áœááºá¯ááºááá¯á· áá¬ážáááºáá«áááºá "; - «
á¡ááŒá áºáá»á¬ážáá±á¬ Kubernetes á¡ááŸá¬áž áá áᯠ"; - «
Kubernetes áá¯ááºáá¯ááºáá±ážááœáẠá¡á±á¬ááºááŒááºááŸá¯áá¬ááºáááºážáá»á¬ážá á¡ááá¯ááºáž 3- GitHub "; - «
Tinder ááẠKubernetes ááá¯á· áá°ážááŒá±á¬ááºážááŒááºážá "á
source: www.habr.com