เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเต เดกเดพเดทเตโ€Œเดฌเต‹เตผเดกเดฟเดจเตเดฑเต†เดฏเตเด‚ GitLab เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เดณเตเดŸเต†เดฏเตเด‚ เดธเด‚เดฏเต‹เดœเดจเด‚

เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเต เดกเดพเดทเตโ€Œเดฌเต‹เตผเดกเดฟเดจเตเดฑเต†เดฏเตเด‚ GitLab เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เดณเตเดŸเต†เดฏเตเด‚ เดธเด‚เดฏเต‹เดœเดจเด‚

เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจ เด•เตเดฒเดธเตเดฑเตเดฑเดฑเดฟเดจเต†เดฏเตเด‚ เด…เดคเดฟเดจเตเดฑเต† เดเดฑเตเดฑเดตเตเด‚ เด•เตเดฑเดžเตเดž เดฎเดพเดจเต‡เดœเตเดฎเต†เดจเตเดฑเดฟเดจเต†เดฏเตเด‚ เด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เด•เดพเดฒเดฟเด•เดฎเดพเดฏ เดตเดฟเดตเดฐเด™เตเด™เตพ เดฒเดญเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดŽเดณเตเดชเตเดชเดคเตเดคเดฟเตฝ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเดตเตเดจเตเดจ เด’เดฐเต เด‰เดชเด•เดฐเดฃเดฎเดพเดฃเต Kubernetes เดกเดพเดทเตโ€Œเดฌเต‹เตผเดกเต. เด…เดกเตโ€Œเดฎเดฟเดจเดฟเดธเตโ€ŒเดŸเตเดฐเต‡เดฑเตเดฑเตผเดฎเดพเตผ/DevOps เดŽเดžเตเดšเดฟเดจเต€เดฏเตผเดฎเดพเตผเด•เตเด•เต เดฎเดพเดคเตเดฐเดฎเดฒเตเดฒ, เด•เตบเดธเต‹เดณเตเดฎเดพเดฏเดฟ เดชเดฐเดฟเดšเดฟเดคเดฎเดฒเตเดฒเดพเดคเตเดคเดตเดฐเตเด‚ เด•เต‚เดŸเดพเดคเต†/เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ kubectl-เดฎเดพเดฏเดฟ เด‡เดŸเดชเดดเด•เตเดจเตเดจเดคเดฟเดจเตเดฑเต† เดŽเดฒเตเดฒเดพ เดธเด™เตเด•เต€เตผเดฃเดคเด•เดณเตเด‚ เด•เตˆเด•เดพเดฐเตเดฏเด‚ เดšเต†เดฏเตเดฏเดพเตป เด†เด—เตเดฐเดนเดฟเด•เตเด•เดพเดคเตเดคเดตเดฐเตเด‚ เดˆ เด•เดดเดฟเดตเตเด•เดณเดฟเดฒเต‡เด•เตเด•เตเดณเตเดณ เด†เด•เตโ€Œเดธเดธเต เด†เดตเดถเตเดฏเดฎเดพเดฏเดฟ เดตเดฐเตเดฎเตเดชเต‹เตพ เดจเดฟเด™เตเด™เตพ เด…เดคเดฟเดจเต† เด•เต‚เดŸเตเดคเตฝ เด…เดญเดฟเดจเดจเตเดฆเดฟเด•เตเด•เดพเตป เดคเตเดŸเด™เตเด™เตเดจเตเดจเต. เดฎเดฑเตเดฑเต เดฏเต‚เดŸเตเดŸเดฟเดฒเดฟเดฑเตเดฑเดฟเด•เตพ. เด‡เดคเต เดžเด™เตเด™เตพเด•เตเด•เต เดธเด‚เดญเดตเดฟเดšเตเดšเต: เดกเดตเดฒเดชเตเดชเตผเดฎเดพเตผเด•เตเด•เต Kubernetes เดตเต†เดฌเต เด‡เดจเตเดฑเตผเดซเต‡เดธเดฟเดฒเต‡เด•เตเด•เต เดชเต†เดŸเตเดŸเต†เดจเตเดจเตเดณเตเดณ เด†เด•เตเดธเดธเต เดตเต‡เดฃเด‚, เดžเด™เตเด™เตพ GitLab เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเดพเตฝ, เดชเดฐเดฟเดนเดพเดฐเด‚ เดธเตเดตเดพเดญเดพเดตเดฟเด•เดฎเดพเดฏเดฟ เดตเดจเตเดจเต.

เด‡เดคเต†เดจเตเดคเตเด•เต†เดพเดฃเตเดŸเดพเดฃเต?

เดกเต€เดฌเด—เตเด—เดฟเด‚เด—เต เดŸเดพเดธเตโ€Œเด•เตเด•เตเด•เตพเด•เตเด•เดพเดฏเดฟ K8s เดกเดพเดทเตโ€Œเดฌเต‹เตผเดกเต เดชเต‹เดฒเตเดณเตเดณ เด’เดฐเต เดŸเต‚เดณเดฟเตฝ เดจเต‡เดฐเดฟเดŸเตเดŸเตเดณเตเดณ เดกเต†เดตเดฒเดชเตเดชเตผเดฎเดพเตผเด•เตเด•เต เดคเดพเตฝเดชเตเดชเดฐเตเดฏเดฎเตเดฃเตเดŸเดพเด•เดพเด‚. เดšเดฟเดฒเดชเตเดชเต‹เตพ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดฒเต‹เด—เตเด•เดณเตเด‚ เด‰เดฑเดตเดฟเดŸเด™เตเด™เดณเตเด‚ เด•เดพเดฃเดพเดจเตเด‚ เดšเดฟเดฒเดชเตเดชเต‹เตพ เดชเต‹เดกเตโ€Œเดธเต เดจเดถเดฟเดชเตเดชเดฟเด•เตเด•เดพเดจเตเด‚ เดตเดฟเดจเตเดฏเดพเดธเด™เตเด™เตพ/เดธเตเดฑเตเดฑเต‡เดฑเตเดฑเตโ€Œเดซเตเตพเดธเต†เดฑเตเดฑเตเด•เตพ เดธเตโ€Œเด•เต†เดฏเดฟเตฝ เดšเต†เดฏเตเดฏเดพเดจเตเด‚ เด•เดฃเตเดŸเต†เดฏเตโ€Œเดจเตผ เด•เตบเดธเต‹เดณเดฟเดฒเต‡เด•เตเด•เต เดชเต‹เด•เดพเดจเตเด‚ เดคเดพเตฝเดชเตเดชเดฐเตเดฏเดชเตเดชเต†เดŸเตเดจเตเดจเต (เด…เดคเดฟเดจเตเด‚ เด…เดญเตเดฏเตผเดคเตเดฅเดจเด•เดณเตเดฃเตเดŸเต, เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เดฎเดฑเตเดฑเตŠเดฐเต เดตเดดเดฟเดฏเตเดฃเตเดŸเต - เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดตเดดเดฟ kubectl-debug).

เด•เต‚เดŸเดพเดคเต†, เดฎเดพเดจเต‡เดœเตผเดฎเดพเตผเด•เตเด•เต เด•เตเดฒเดธเตเดฑเตเดฑเดฑเดฟเดฒเต‡เด•เตเด•เต เดจเต‹เด•เตเด•เดพเตป เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ เด’เดฐเต เดฎเดพเดจเดธเดฟเด• เดจเดฟเดฎเดฟเดทเดฎเตเดฃเตเดŸเต - "เดŽเดฒเตเดฒเดพเด‚ เดชเดšเตเดšเดฏเดพเดฃเต†เดจเตเดจเต" เด•เดพเดฃเดพเดจเตเด‚ เด…เด™เตเด™เดจเต† "เดŽเดฒเตเดฒเดพเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต" เดŽเดจเตเดจเต เดธเตเดตเดฏเด‚ เด‰เดฑเดชเตเดชเตเดจเตฝเด•เดพเดจเตเด‚ (เดคเต€เตผเดšเตเดšเดฏเดพเดฏเตเด‚, เด‡เดคเต เดตเดณเดฐเต† เด†เดชเต‡เด•เตเดทเดฟเด•เดฎเดพเดฃเต ... เดŽเดจเตเดจเดพเตฝ เด‡เดคเต เดฒเต‡เด–เดจเดคเตเดคเดฟเดจเตเดฑเต† เดชเดฐเดฟเดงเดฟเด•เตเด•เดชเตเดชเตเดฑเดฎเดพเดฃเต ).

เด’เดฐเต เดธเดพเดงเดพเดฐเดฃ CI เดธเดฟเดธเตเดฑเตเดฑเด‚ เดŽเดจเตเดจ เดจเดฟเดฒเดฏเดฟเตฝ เดžเด™เตเด™เตพเด•เตเด•เต เด‰เดฃเตเดŸเต เดฌเดพเดงเด•เดฎเดพเดฃเต GitLab: เดŽเดฒเตเดฒเดพ เดกเต†เดตเดฒเดชเตเดชเตผเดฎเดพเดฐเตเด‚ เด‡เดคเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต. เด…เดคเดฟเดจเดพเตฝ, เด…เดตเตผเด•เตเด•เต เด†เด•เตโ€Œเดธเดธเต เดจเตฝเด•เตเดจเตเดจเดคเดฟเดจเต, เดกเดพเดทเตโ€Œเดฌเต‹เตผเดกเดฟเดจเต† GitLab เด…เด•เตเด•เต—เดฃเตเดŸเตเด•เดณเตเดฎเดพเดฏเดฟ เดธเด‚เดฏเต‹เดœเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเต เดฏเตเด•เตเดคเดฟเดธเดนเดฎเดพเดฏเดฟเดฐเตเดจเตเดจเต.

เดžเด™เตเด™เตพ NGINX เดชเตเดฐเดตเต‡เดถเดจเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเตเด‚ เดžเดพเตป เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เตเด‚. เดจเดฟเด™เตเด™เตพ เดฎเดฑเตเดฑเตเดณเตเดณเดตเดฐเตเดฎเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ เดชเตเดฐเดตเต‡เดถเดจ เดชเดฐเดฟเดนเดพเดฐเด™เตเด™เตพ, เด…เด‚เด—เต€เด•เดพเดฐเดคเตเดคเดฟเดจเดพเดฏเดฟ เดตเตเดฏเดพเด–เตเดฏเดพเดจเด™เตเด™เดณเตเดŸเต† เด…เดจเดฒเต‹เด—เตเด•เตพ เดจเดฟเด™เตเด™เตพ เดธเตเดตเดคเดจเตเดคเตเดฐเดฎเดพเดฏเดฟ เด•เดฃเตเดŸเต†เดคเตเดคเต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต.

เดธเด‚เดฏเต‹เดœเดจเด‚ เดถเตเดฐเดฎเดฟเด•เตเด•เตเดจเตเดจเต

เดกเดพเดทเตเดฌเต‹เตผเดกเต เด‡เตปเดธเตเดฑเตเดฑเดพเดณเต‡เดทเตป

เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เตเด•: เดจเดฟเด™เตเด™เตพ เดšเตเดตเดŸเต†เดฏเตเดณเตเดณ เด˜เดŸเตเดŸเด™เตเด™เตพ เด†เดตเตผเดคเตเดคเดฟเด•เตเด•เดพเตป เดชเต‹เด•เตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, - เด…เดจเดพเดตเดถเตเดฏ เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เตพ เด’เดดเดฟเดตเดพเด•เตเด•เดพเตป - เด†เดฆเตเดฏเด‚ เด…เดŸเตเดคเตเดค เด‰เดชเดถเต€เตผเดทเด•เดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เดตเดพเดฏเดฟเด•เตเด•เตเด•.

เดชเดฒ เด‡เตปเดธเตเดฑเตเดฑเดฒเต‡เดทเดจเตเด•เดณเดฟเดฒเตเด‚ เดžเด™เตเด™เตพ เดˆ เดธเด‚เดฏเต‹เดœเดจเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเดพเตฝ, เดžเด™เตเด™เตพ เด…เดคเดฟเดจเตเดฑเต† เด‡เตปเดธเตเดฑเตเดฑเดพเดณเต‡เดทเตป เด“เดŸเตเดŸเต‹เดฎเต‡เดฑเตเดฑเต เดšเต†เดฏเตเดคเดฟเดŸเตเดŸเตเดฃเตเดŸเต. เด‡เดคเดฟเดจเดพเดตเดถเตเดฏเดฎเดพเดฏ เด‰เดฑเดตเดฟเดŸเด™เตเด™เตพ เดชเตเดฐเดธเดฟเดฆเตเดงเต€เด•เดฐเดฟเดšเตเดšเดฟเดŸเตเดŸเตเดฃเตเดŸเต เดชเตเดฐเดคเตเดฏเต‡เด• GitHub เดถเต‡เด–เดฐเด‚. เด…เดตเดฏเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดšเต†เดฑเตเดคเดพเดฏเดฟ เดชเดฐเดฟเดทเตเด•เดฐเดฟเดšเตเดš YAML เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเดจเตเด•เดณเต† เด…เดŸเดฟเดธเตเดฅเดพเดจเดฎเดพเด•เตเด•เดฟเดฏเตเดณเตเดณเดคเดพเดฃเต เด”เดฆเตเดฏเต‹เด—เดฟเด• เดกเดพเดทเตเดฌเต‹เตผเดกเต เดถเต‡เด–เดฐเด‚, เด…เดคเตเดชเต‹เดฒเต† เดชเต†เดŸเตเดŸเต†เดจเตเดจเตเดณเตเดณ เดตเดฟเดจเตเดฏเดพเดธเดคเตเดคเดฟเดจเตเดณเตเดณ เด’เดฐเต เดฌเดพเดทเต เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต.

เดธเตโ€Œเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เด•เตเดฒเดธเตเดฑเตเดฑเดฑเดฟเตฝ เดกเดพเดทเตโ€Œเดฌเต‹เตผเดกเต เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ GitLab-เดฎเดพเดฏเดฟ เดธเด‚เดฏเต‹เดœเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเดพเดฏเดฟ เด•เต‹เตบเดซเดฟเด—เตผ เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต:

$ ./ctl.sh  
Usage: ctl.sh [OPTION]... --gitlab-url GITLAB_URL --oauth2-id ID --oauth2-secret SECRET --dashboard-url DASHBOARD_URL
Install kubernetes-dashboard to Kubernetes cluster.
Mandatory arguments:
 -i, --install                install into 'kube-system' namespace
 -u, --upgrade                upgrade existing installation, will reuse password and host names
 -d, --delete                 remove everything, including the namespace
     --gitlab-url             set gitlab url with schema (https://gitlab.example.com)
     --oauth2-id              set OAUTH2_PROXY_CLIENT_ID from gitlab
     --oauth2-secret          set OAUTH2_PROXY_CLIENT_SECRET from gitlab
     --dashboard-url          set dashboard url without schema (dashboard.example.com)
Optional arguments:
 -h, --help                   output this message

เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เด‡เดคเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดฎเตเดฎเตเดชเต, เดจเดฟเด™เตเด™เตพ GitLab: เด…เดกเตเดฎเดฟเตป เดเดฐเดฟเดฏ โ†’ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เดณเดฟเดฒเต‡เด•เตเด•เต เดชเต‹เด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต - เด•เต‚เดŸเดพเดคเต† เดญเดพเดตเดฟ เดชเดพเดจเดฒเดฟเดจเดพเดฏเดฟ เด’เดฐเต เดชเตเดคเดฟเดฏ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดšเต‡เตผเด•เตเด•เตเด•. เดจเดฎเตเด•เตเด•เต เด‡เดคเดฟเดจเต† "เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเต เดกเดพเดทเตเดฌเต‹เตผเดกเต" เดŽเดจเตเดจเต เดตเดฟเดณเดฟเด•เตเด•เดพเด‚:

เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเต เดกเดพเดทเตโ€Œเดฌเต‹เตผเดกเดฟเดจเตเดฑเต†เดฏเตเด‚ GitLab เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เดณเตเดŸเต†เดฏเตเด‚ เดธเด‚เดฏเต‹เดœเดจเด‚

เด‡เดคเต เดšเต‡เตผเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดฑเต† เดซเดฒเดฎเดพเดฏเดฟ, GitLab เดนเดพเดทเตเด•เตพ เดจเตฝเด•เตเด‚:

เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเต เดกเดพเดทเตโ€Œเดฌเต‹เตผเดกเดฟเดจเตเดฑเต†เดฏเตเด‚ GitLab เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เดณเตเดŸเต†เดฏเตเด‚ เดธเด‚เดฏเต‹เดœเดจเด‚

เด…เดตเดฏเดพเดฃเต เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเดจเตเดฑเต† เดตเดพเดฆเด™เตเด™เดณเดพเดฏเดฟ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเต. เดคเตฝเดซเดฒเดฎเดพเดฏเดฟ, เด‡เตปเดธเตเดฑเตเดฑเดพเดณเต‡เดทเตป เด‡เดคเตเดชเต‹เดฒเต† เด•เดพเดฃเดชเตเดชเต†เดŸเตเดจเตเดจเต:

$ ./ctl.sh -i --gitlab-url https://gitlab.example.com --oauth2-id 6a52769eโ€ฆ --oauth2-secret 6b79168fโ€ฆ --dashboard-url dashboard.example.com

เด…เดคเดฟเดจเตเดถเต‡เดทเด‚, เดŽเดฒเตเดฒเดพเด‚ เด†เดฐเด‚เดญเดฟเดšเตเดšเตเดตเต†เดจเตเดจเต เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เดพเด‚:

$ kubectl -n kube-system get pod | egrep '(dash|oauth)'
kubernetes-dashboard-76b55bc9f8-xpncp   1/1       Running   0          14s
oauth2-proxy-5586ccf95c-czp2v           1/1       Running   0          14s

เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เดคเดพเดฎเดธเดฟเดฏเดพเดคเต† เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดชเดฟเดจเตเดจเต€เดŸเต เดŽเดฒเตเดฒเดพเด‚ เด†เดฐเด‚เดญเดฟเด•เตเด•เตเด‚ เด…เด‚เด—เต€เด•เดพเดฐเด‚ เด‰เดŸเดจเดŸเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดฟเดฒเตเดฒ! เด‰เดชเดฏเต‹เด—เดฟเดšเตเดš เดšเดฟเดคเตเดฐเดคเตเดคเดฟเตฝ (เดฎเดฑเตเดฑเต เดšเดฟเดคเตเดฐเด™เตเด™เดณเดฟเดฒเต† เดธเดพเดนเดšเดฐเตเดฏเด‚ เดธเดฎเดพเดจเดฎเดพเดฃเต) เด•เต‹เตพเดฌเดพเด•เตเด•เดฟเตฝ เด’เดฐเต เดฑเต€เดกเดฏเดฑเด•เตเดŸเต เดชเดฟเดŸเดฟเด•เตเด•เตเดจเตเดจ เดชเตเดฐเด•เตเดฐเดฟเดฏ เดคเต†เดฑเตเดฑเดพเดฏเดฟ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเดจเตเดจเต เดŽเดจเตเดจเดคเดพเดฃเต เดตเดธเตเดคเตเดค. เดˆ เดธเดพเดนเดšเดฐเตเดฏเด‚ เด’เต—เดคเตเดคเต เดคเดจเตเดจเต† เดจเดฎเตเด•เตเด•เต เดจเตฝเด•เตเดจเตเดจ เด•เตเด•เตเด•เดฟเดฏเต† เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เตเดจเตเดจเต เดŽเดจเตเดจ เดตเดธเตเดคเตเดคเดฏเดฟเดฒเต‡เด•เตเด•เต เดจเดฏเดฟเด•เตเด•เตเดจเตเดจเต...

เด’เดฐเต เดชเดพเดšเตเดšเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดจเดฟเด™เตเด™เดณเตเดŸเต† เดธเตเดตเดจเตเดคเด‚ เด“เดคเตเดคเต เด‡เดฎเต‡เดœเต เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดฒเต‚เดŸเต† เดชเตเดฐเดถเตเดจเด‚ เดชเดฐเดฟเดนเดฐเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเดจเตเดจเต.

เด“เดคเตเดคเต เดชเดพเดšเตเดšเต เดตเต€เดฃเตเดŸเตเด‚ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเด•

เด‡เดคเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต, เดžเด™เตเด™เตพ เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดกเต‹เด•เตเด•เตผเดซเดฏเตฝ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด‚:

FROM golang:1.9-alpine3.7
WORKDIR /go/src/github.com/bitly/oauth2_proxy

RUN apk --update add make git build-base curl bash ca-certificates wget 
&& update-ca-certificates 
&& curl -sSO https://raw.githubusercontent.com/pote/gpm/v1.4.0/bin/gpm 
&& chmod +x gpm 
&& mv gpm /usr/local/bin
RUN git clone https://github.com/bitly/oauth2_proxy.git . 
&& git checkout bfda078caa55958cc37dcba39e57fc37f6a3c842  
ADD rd.patch .
RUN patch -p1 < rd.patch 
&& ./dist.sh

FROM alpine:3.7
RUN apk --update add curl bash  ca-certificates && update-ca-certificates
COPY --from=0 /go/src/github.com/bitly/oauth2_proxy/dist/ /bin/

EXPOSE 8080 4180
ENTRYPOINT [ "/bin/oauth2_proxy" ]
CMD [ "--upstream=http://0.0.0.0:8080/", "--http-address=0.0.0.0:4180" ]

rd.patch เดชเดพเดšเตเดšเต เดคเดจเตเดจเต† เดŽเด™เตเด™เดจเต†เดฏเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเดฎเต†เดจเตเดจเต เด‡เดคเดพ

diff --git a/dist.sh b/dist.sh
index a00318b..92990d4 100755
--- a/dist.sh
+++ b/dist.sh
@@ -14,25 +14,13 @@ goversion=$(go version | awk '{print $3}')
sha256sum=()
 
echo "... running tests"
-./test.sh
+#./test.sh
 
-for os in windows linux darwin; do
-    echo "... building v$version for $os/$arch"
-    EXT=
-    if [ $os = windows ]; then
-        EXT=".exe"
-    fi
-    BUILD=$(mktemp -d ${TMPDIR:-/tmp}/oauth2_proxy.XXXXXX)
-    TARGET="oauth2_proxy-$version.$os-$arch.$goversion"
-    FILENAME="oauth2_proxy-$version.$os-$arch$EXT"
-    GOOS=$os GOARCH=$arch CGO_ENABLED=0 
-        go build -ldflags="-s -w" -o $BUILD/$TARGET/$FILENAME || exit 1
-    pushd $BUILD/$TARGET
-    sha256sum+=("$(shasum -a 256 $FILENAME || exit 1)")
-    cd .. && tar czvf $TARGET.tar.gz $TARGET
-    mv $TARGET.tar.gz $DIR/dist
-    popd
-done
+os='linux'
+echo "... building v$version for $os/$arch"
+TARGET="oauth2_proxy-$version.$os-$arch.$goversion"
+GOOS=$os GOARCH=$arch CGO_ENABLED=0 
+    go build -ldflags="-s -w" -o ./dist/oauth2_proxy || exit 1
  
checksum_file="sha256sum.txt"
cd $DIR/dists
diff --git a/oauthproxy.go b/oauthproxy.go
index 21e5dfc..df9101a 100644
--- a/oauthproxy.go
+++ b/oauthproxy.go
@@ -381,7 +381,9 @@ func (p *OAuthProxy) SignInPage(rw http.ResponseWriter, req *http.Request, code
       if redirect_url == p.SignInPath {
               redirect_url = "/"
       }
-
+       if req.FormValue("rd") != "" {
+               redirect_url = req.FormValue("rd")
+       }
       t := struct {
               ProviderName  string
               SignInMessage string

เด‡เดชเตเดชเต‹เตพ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดšเดฟเดคเตเดฐเด‚ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เดพเดจเตเด‚ เดžเด™เตเด™เดณเตเดŸเต† GitLab-เดฒเต‡เด•เตเด•เต เดคเดณเตเดณเดพเดจเตเด‚ เด•เดดเดฟเดฏเตเด‚. เด…เดŸเตเดคเตเดคเดคเต manifests/kube-dashboard-oauth2-proxy.yaml เด†เดตเดถเตเดฏเดฎเตเดณเตเดณ เดšเดฟเดคเตเดฐเดคเตเดคเดฟเดจเตเดฑเต† เด‰เดชเดฏเต‹เด—เด‚ เดธเต‚เดšเดฟเดชเตเดชเดฟเด•เตเด•เตเด• (เด…เดคเต เดจเดฟเด™เตเด™เดณเตเดŸเต‡เดคเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดฎเดพเดฑเตเดฑเดฟเดธเตเดฅเดพเดชเดฟเด•เตเด•เตเด•):

 image: docker.io/colemickens/oauth2_proxy:latest

เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด…เด‚เด—เต€เด•เดพเดฐเดคเตเดคเดพเตฝ เด…เดŸเดšเตเดš เด’เดฐเต เดฐเดœเดฟเดธเตเดŸเตเดฐเดฟ เด‰เดฃเตเดŸเต†เด™เตเด•เดฟเตฝ, เดšเดฟเดคเตเดฐเด™เตเด™เตพ เดตเดฒเดฟเดšเตเดšเดฟเดŸเตเดจเตเดจเดคเดฟเดจเต เด’เดฐเต เดฐเดนเดธเตเดฏเด‚ เดšเต‡เตผเด•เตเด•เดพเตป เดฎเดฑเด•เตเด•เดฐเตเดคเต:

      imagePullSecrets:
     - name: gitlab-registry

... เด•เต‚เดŸเดพเดคเต† เดฐเดœเดฟเดธเตเดŸเตเดฐเดฟเด•เตเด•เดพเดฏเดฟ เดฐเดนเดธเตเดฏเด‚ เดคเดจเตเดจเต† เดšเต‡เตผเด•เตเด•เตเด•:

---
apiVersion: v1
data:
 .dockercfg: eyJyZWdpc3RyeS5jb21wYW55LmNvbSI6IHsKICJ1c2VybmFtZSI6ICJvYXV0aDIiLAogInBhc3N3b3JkIjogIlBBU1NXT1JEIiwKICJhdXRoIjogIkFVVEhfVE9LRU4iLAogImVtYWlsIjogIm1haWxAY29tcGFueS5jb20iCn0KfQoK
=
kind: Secret
metadata:
 annotations:
 name: gitlab-registry
 namespace: kube-system
type: kubernetes.io/dockercfg

เดฎเตเด•เดณเดฟเดฒเต† เดจเต€เดณเดฎเตเดณเตเดณ เดธเตเดŸเตเดฐเดฟเด‚เด—เต เด•เต‹เตบเดซเดฟเด—เดฑเดฟเตฝ เดจเดฟเดจเตเดจเต base64 เด†เดฃเต†เดจเตเดจเต เดถเตเดฐเดฆเตเดงเดฏเตเดณเตเดณ เดตเดพเดฏเดจเด•เตเด•เดพเดฐเตป เด•เดพเดฃเตเด‚:

{"registry.company.com": {
 "username": "oauth2",
 "password": "PASSWORD",
 "auth": "AUTH_TOKEN",
 "email": "[email protected]"
}
}

เด‡เดคเดพเดฃเต GitLab-เดฒเต† เด‰เดชเดฏเต‹เด•เตเดคเตƒ เดกเดพเดฑเตเดฑ, Kubernetes เด•เต‹เดกเต เดฐเดœเดฟเดธเตเดŸเตเดฐเดฟเดฏเดฟเตฝ เดจเดฟเดจเตเดจเต เดšเดฟเดคเตเดฐเด‚ เดชเดฟเตปเดตเดฒเดฟเด•เตเด•เตเด‚.

เดŽเดฒเตเดฒเดพเด‚ เดšเต†เดฏเตเดคเตเด•เดดเดฟเดžเตเดžเดพเตฝ, เด•เดฎเดพเตปเดกเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดจเดฟเดฒเดตเดฟเดฒเตเดณเตเดณ (เดถเดฐเดฟเดฏเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเดฟเดฒเตเดฒ) เดกเดพเดทเตโ€Œเดฌเต‹เตผเดกเต เด‡เตปเดธเตเดฑเตเดฑเดพเดณเต‡เดทเตป เดจเต€เด•เตเด•เด‚เดšเต†เดฏเตเดฏเดพเด‚:

$ ./ctl.sh -d

... เด•เต‚เดŸเดพเดคเต† เดŽเดฒเตเดฒเดพเด‚ เดตเต€เดฃเตเดŸเตเด‚ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเด•:

$ ./ctl.sh -i --gitlab-url https://gitlab.example.com --oauth2-id 6a52769eโ€ฆ --oauth2-secret 6b79168fโ€ฆ --dashboard-url dashboard.example.com

เดกเดพเดทเตโ€Œเดฌเต‹เตผเดกเดฟเดฒเต‡เด•เตเด•เต เดชเต‹เดฏเดฟ เด’เดฐเต เดชเตเดฐเดพเดคเดจ เดฒเต‹เด—เดฟเตป เดฌเดŸเตเดŸเตบ เด•เดฃเตเดŸเต†เดคเตเดคเดพเดจเตเดณเตเดณ เดธเดฎเดฏเดฎเดพเดฃเดฟเดคเต:

เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเต เดกเดพเดทเตโ€Œเดฌเต‹เตผเดกเดฟเดจเตเดฑเต†เดฏเตเด‚ GitLab เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เดณเตเดŸเต†เดฏเตเด‚ เดธเด‚เดฏเต‹เดœเดจเด‚

เด…เดคเดฟเตฝ เด•เตเดฒเดฟเด•เตเด•เตเดšเต†เดฏเตเดคเดคเดฟเดจเตเดถเต‡เดทเด‚, GitLab เดžเด™เตเด™เดณเต† เดธเตเดตเดพเด—เดคเด‚ เดšเต†เดฏเตเดฏเตเด‚, เด…เดคเดฟเดจเตเดฑเต† เดธเดพเดงเดพเดฐเดฃ เดชเต‡เดœเดฟเดฒเต‡เด•เตเด•เต เดฒเต‹เด—เดฟเตป เดšเต†เดฏเตเดฏเดพเตป เดตเดพเด—เตเดฆเดพเดจเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต (เดคเต€เตผเดšเตเดšเดฏเดพเดฏเตเด‚, เดžเด™เตเด™เตพ เดฎเตเดฎเตเดชเต เด…เดตเดฟเดŸเต† เดฒเต‹เด—เดฟเตป เดšเต†เดฏเตเดคเดฟเดŸเตเดŸเดฟเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ):

เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเต เดกเดพเดทเตโ€Œเดฌเต‹เตผเดกเดฟเดจเตเดฑเต†เดฏเตเด‚ GitLab เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เดณเตเดŸเต†เดฏเตเด‚ เดธเด‚เดฏเต‹เดœเดจเด‚

เดžเด™เตเด™เตพ GitLab เด•เตเดฐเต†เดกเตปเดทเตเดฏเดฒเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดฒเต‹เด—เดฟเตป เดšเต†เดฏเตเดฏเตเดจเตเดจเต - เดŽเดฒเตเดฒเดพเด‚ เดชเต‚เตผเดคเตเดคเดฟเดฏเดพเดฏเดฟ:

เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเต เดกเดพเดทเตโ€Œเดฌเต‹เตผเดกเดฟเดจเตเดฑเต†เดฏเตเด‚ GitLab เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เดณเตเดŸเต†เดฏเตเด‚ เดธเด‚เดฏเต‹เดœเดจเด‚

เดกเดพเดทเตโ€Œเดฌเต‹เตผเดกเต เดซเต€เดšเตเดšเดฑเตเด•เดณเต† เด•เตเดฑเดฟเดšเตเดšเต

เดจเดฟเด™เตเด™เตพ เดฎเตเดฎเตเดชเต Kubernetes-เตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดšเตเดšเดฟเดŸเตเดŸเดฟเดฒเตเดฒเดพเดคเตเดค เด’เดฐเต เดกเต†เดตเดฒเดชเตเดชเตผ เด†เดฃเต†เด™เตเด•เดฟเตฝ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดšเดฟเดฒ เด•เดพเดฐเดฃเด™เตเด™เดณเดพเตฝ เดฎเตเดฎเตเดชเต เดกเดพเดทเตเดฌเต‹เตผเดกเต เดจเต‡เดฐเดฟเดŸเตเดŸเดฟเดŸเตเดŸเดฟเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ, เด…เดคเดฟเดจเตเดฑเต† เดšเดฟเดฒ เด•เดดเดฟเดตเตเด•เตพ เดžเดพเตป เดšเดฟเดคเตเดฐเต€เด•เดฐเดฟเด•เตเด•เตเด‚.

เด’เดจเตเดจเดพเดฎเดคเดพเดฏเดฟ, "เดŽเดฒเตเดฒเดพเด‚ เดชเดšเตเดšเดฏเดพเดฃเต" เดŽเดจเตเดจเต เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด•เดพเดฃเดพเตป เด•เดดเดฟเดฏเตเด‚:

เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเต เดกเดพเดทเตโ€Œเดฌเต‹เตผเดกเดฟเดจเตเดฑเต†เดฏเตเด‚ GitLab เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เดณเตเดŸเต†เดฏเตเด‚ เดธเด‚เดฏเต‹เดœเดจเด‚

เดŽเตปเดตเดฏเต‹เตบเดฎเต†เดจเตเดฑเต เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพ, เดกเต—เตบเดฒเต‹เดกเต เดšเต†เดฏเตโ€Œเดค เดšเดฟเดคเตเดฐเด‚, เดฒเต‹เดžเตเดšเต เด†เตผเด—เตเดฏเตเดฎเต†เดจเตเดฑเตเด•เตพ, เด…เดตเดฏเตเดŸเต† เด…เดตเดธเตเดฅ เดŽเดจเตเดจเดฟเดต เดชเต‹เดฒเตเดณเตเดณ เดชเต‹เดกเตเด•เตพเด•เตเด•เดพเดฏเดฟ เด•เต‚เดŸเตเดคเตฝ เดตเดฟเดถเดฆเดฎเดพเดฏ เดกเดพเดฑเตเดฑเดฏเตเด‚ เดฒเดญเตเดฏเดฎเดพเดฃเต:

เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเต เดกเดพเดทเตโ€Œเดฌเต‹เตผเดกเดฟเดจเตเดฑเต†เดฏเตเด‚ GitLab เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เดณเตเดŸเต†เดฏเตเด‚ เดธเด‚เดฏเต‹เดœเดจเด‚

เดตเดฟเดจเตเดฏเดพเดธเด™เตเด™เตพเด•เตเด•เต เดฆเตƒเดถเตเดฏเดฎเดพเดฏ เดจเดฟเดฒเด•เดณเตเดฃเตเดŸเต:

เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเต เดกเดพเดทเตโ€Œเดฌเต‹เตผเดกเดฟเดจเตเดฑเต†เดฏเตเด‚ GitLab เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เดณเตเดŸเต†เดฏเตเด‚ เดธเด‚เดฏเต‹เดœเดจเด‚

...เด•เต‚เดŸเดพเดคเต† เดฎเดฑเตเดฑเต เดตเดฟเดถเดฆเดพเด‚เดถเด™เตเด™เดณเตเด‚:

เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเต เดกเดพเดทเตโ€Œเดฌเต‹เตผเดกเดฟเดจเตเดฑเต†เดฏเตเด‚ GitLab เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เดณเตเดŸเต†เดฏเตเด‚ เดธเด‚เดฏเต‹เดœเดจเด‚

... เด•เต‚เดŸเดพเดคเต† เดตเดฟเดจเตเดฏเดพเดธเด‚ เด…เดณเด•เตเด•เดพเดจเตเดณเตเดณ เด•เดดเดฟเดตเตเด‚ เด‰เดฃเตเดŸเต:

เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเต เดกเดพเดทเตโ€Œเดฌเต‹เตผเดกเดฟเดจเตเดฑเต†เดฏเตเด‚ GitLab เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เดณเตเดŸเต†เดฏเตเด‚ เดธเด‚เดฏเต‹เดœเดจเด‚

เดˆ เดชเตเดฐเดตเตผเดคเตเดคเดจเดคเตเดคเดฟเดจเตเดฑเต† เดซเดฒเด‚:

เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเต เดกเดพเดทเตโ€Œเดฌเต‹เตผเดกเดฟเดจเตเดฑเต†เดฏเตเด‚ GitLab เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เดณเตเดŸเต†เดฏเตเด‚ เดธเด‚เดฏเต‹เดœเดจเด‚

เดฒเต‡เด–เดจเดคเตเดคเดฟเดจเตเดฑเต† เดคเตเดŸเด•เตเด•เดคเตเดคเดฟเตฝ เด‡เดคเดฟเดจเด•เด‚ เดธเต‚เดšเดฟเดชเตเดชเดฟเดšเตเดš เดฎเดฑเตเดฑเต เด‰เดชเดฏเต‹เด—เดชเตเดฐเดฆเดฎเดพเดฏ เดธเดตเดฟเดถเต‡เดทเดคเด•เดณเดฟเตฝ เดฒเต‹เด—เตเด•เตพ เด•เดพเดฃเตเดจเตเดจเดคเดพเดฃเต:

เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเต เดกเดพเดทเตโ€Œเดฌเต‹เตผเดกเดฟเดจเตเดฑเต†เดฏเตเด‚ GitLab เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เดณเตเดŸเต†เดฏเตเด‚ เดธเด‚เดฏเต‹เดœเดจเด‚

... เด•เต‚เดŸเดพเดคเต† เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดคเตเดค เดชเต‹เดกเดฟเดจเตเดฑเต† เด•เดฃเตเดŸเต†เดฏเตโ€Œเดจเตผ เด•เตบเดธเต‹เดณเดฟเดฒเต‡เด•เตเด•เต เดฒเต‹เด—เดฟเตป เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดชเตเดฐเดตเตผเดคเตเดคเดจเดตเตเด‚:

เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเต เดกเดพเดทเตโ€Œเดฌเต‹เตผเดกเดฟเดจเตเดฑเต†เดฏเตเด‚ GitLab เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เดณเตเดŸเต†เดฏเตเด‚ เดธเด‚เดฏเต‹เดœเดจเด‚

เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดจเต‹เดกเตเด•เดณเดฟเดฒเต† เดชเดฐเดฟเดงเดฟเด•เตพ/เด…เดญเตเดฏเตผเดคเตเดฅเดจเด•เตพ เดจเต‹เด•เตเด•เดพเด‚:

เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเต เดกเดพเดทเตโ€Œเดฌเต‹เตผเดกเดฟเดจเตเดฑเต†เดฏเตเด‚ GitLab เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เดณเตเดŸเต†เดฏเตเด‚ เดธเด‚เดฏเต‹เดœเดจเด‚

เดคเต€เตผเดšเตเดšเดฏเดพเดฏเตเด‚, เด‡เดตเดฏเต†เดฒเตเดฒเดพเด‚ เดชเดพเดจเดฒเดฟเดจเตเดฑเต† เด•เดดเดฟเดตเตเด•เดณเดฒเตเดฒ, เดชเด•เตเดทเต‡ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดชเตŠเดคเตเดตเดพเดฏ เด†เดถเดฏเด‚ เดฒเดญเดฟเด•เตเด•เตเดฎเต†เดจเตเดจเต เดžเดพเตป เดชเตเดฐเดคเต€เด•เตเดทเดฟเด•เตเด•เตเดจเตเดจเต.

เดธเด‚เดฏเต‹เดœเดจเดคเตเดคเดฟเดจเตเดฑเต†เดฏเตเด‚ เดกเดพเดทเตโ€Œเดฌเต‹เตผเดกเดฟเดจเตเดฑเต†เดฏเตเด‚ เดชเต‹เดฐเดพเดฏเตเดฎเด•เตพ

เดตเดฟเดตเดฐเดฟเดšเตเดš เดเด•เต€เด•เดฐเดฃเดคเตเดคเดฟเตฝ เด‡เดฒเตเดฒ เดชเตเดฐเดตเต‡เดถเดจ เดจเดฟเดฏเดจเตเดคเตเดฐเดฃเด‚. เด‡เดคเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต, GitLab-เดฒเต‡เด•เตเด•เต เดเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เด†เด•เตโ€Œเดธเดธเต เด‰เดณเตเดณ เดŽเดฒเตเดฒเดพ เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เดณเตเด‚ เดกเดพเดทเตโ€Œเดฌเต‹เตผเดกเดฟเดฒเต‡เด•เตเด•เต เด†เด•เตโ€Œเดธเดธเต เดจเต‡เดŸเตเดจเตเดจเต. เดกเดพเดทเตโ€Œเดฌเต‹เตผเดกเดฟเดจเตเดฑเต† เด…เดตเด•เดพเดถเด™เตเด™เตพเด•เตเด•เต เด…เดจเตเดธเตƒเดคเดฎเดพเดฏเดฟ เดกเดพเดทเตโ€Œเดฌเต‹เตผเดกเดฟเตฝ เดคเดจเตเดจเต† เด…เดตเตผเด•เตเด•เต เด’เดฐเต‡ เด†เด•เตโ€Œเดธเดธเต เด‰เดฃเตเดŸเต RBAC-เตฝ เดจเดฟเตผเดตเดšเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เดตเตเดฏเด•เตเดคเดฎเดพเดฏเตเด‚, เด‡เดคเต เดŽเดฒเตเดฒเดพเดตเตผเด•เตเด•เตเด‚ เด…เดจเตเดฏเต‹เดœเตเดฏเดฎเดฒเตเดฒ, เดชเด•เตเดทเต‡ เดžเด™เตเด™เดณเตเดŸเต† เด•เดพเดฐเตเดฏเดคเตเดคเดฟเตฝ เด‡เดคเต เดฎเดคเดฟเดฏเดพเด•เตเด‚.

เดกเดพเดทเตโ€Œเดฌเต‹เตผเดกเดฟเดฒเต† เดคเดจเตเดจเต† เดถเตเดฐเดฆเตเดงเต‡เดฏเดฎเดพเดฏ เดชเต‹เดฐเดพเดฏเตเดฎเด•เดณเดฟเตฝ, เดžเดพเตป เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจเดต เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เตเดจเตเดจเต:

  • init เด•เดฃเตเดŸเต†เดฏเตโ€Œเดจเดฑเดฟเดจเตเดฑเต† เด•เตบเดธเต‹เดณเดฟเตฝ เดชเตเดฐเดตเต‡เดถเดฟเด•เตเด•เตเดจเตเดจเดคเต เด…เดธเดพเดงเตเดฏเดฎเดพเดฃเต;
  • เดกเดฟเดชเตเดฒเต‹เดฏเตโ€Œเดฎเต†เดจเตเดฑเตเด•เดณเตเด‚ เดธเตเดฑเตเดฑเต‡เดฑเตเดฑเตโ€Œเดซเตเตพเดธเต†เดฑเตเดฑเตเด•เดณเตเด‚ เดŽเดกเดฟเดฑเตเดฑเตเดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต เด…เดธเดพเดงเตเดฏเดฎเดพเดฃเต, เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚ เด‡เดคเต เด•เตเดฒเดธเตเดฑเตเดฑเตผเดฑเต‹เดณเดฟเตฝ เดถเดฐเดฟเดฏเดพเด•เตเด•เดพเด‚;
  • เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเดฟเดจเตเดฑเต† เดเดฑเตเดฑเดตเตเด‚ เดชเตเดคเดฟเดฏ เดชเดคเดฟเดชเตเดชเตเด•เดณเตเดฎเดพเดฏเตเดณเตเดณ เดกเดพเดทเตโ€Œเดฌเต‹เตผเดกเดฟเดจเตเดฑเต† เด…เดจเตเดฏเต‹เดœเตเดฏเดคเดฏเตเด‚ เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเดฟเดจเตเดฑเต† เดญเดพเดตเดฟเดฏเตเด‚ เดšเต‹เดฆเตเดฏเด™เตเด™เตพ เด‰เดฏเตผเดคเตเดคเตเดจเตเดจเต.

เด…เดตเดธเดพเดจ เดชเตเดฐเดถเตเดจเด‚ เดชเตเดฐเดคเตเดฏเต‡เด• เดถเตเดฐเดฆเตเดง เด…เตผเดนเดฟเด•เตเด•เตเดจเตเดจเต.

เดกเดพเดทเตโ€Œเดฌเต‹เตผเดกเต เดจเดฟเดฒเดฏเตเด‚ เด‡เดคเดฐ เดฎเดพเตผเด—เด™เตเด™เดณเตเด‚

เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเดฟเดจเตเดฑเต† เดเดฑเตเดฑเดตเตเด‚ เดชเตเดคเดฟเดฏ เดชเดคเดฟเดชเตเดชเดฟเตฝ เด…เดตเดคเดฐเดฟเดชเตเดชเดฟเดšเตเดš เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเต เดฑเดฟเดฒเต€เดธเตเด•เดณเตเดณเตเดณ เดกเดพเดทเตโ€Œเดฌเต‹เตผเดกเต เด…เดจเตเดฏเต‹เดœเตเดฏเดคเดพ เดชเดŸเตเดŸเดฟเด• (v1.10.1), เดตเดณเดฐเต† เดธเดจเตเดคเต‹เดทเดฎเดฟเดฒเตเดฒ:

เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเต เดกเดพเดทเตโ€Œเดฌเต‹เตผเดกเดฟเดจเตเดฑเต†เดฏเตเด‚ GitLab เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เดณเตเดŸเต†เดฏเตเด‚ เดธเด‚เดฏเต‹เดœเดจเด‚

เด‡เดคเตŠเด•เตเด•เต†เดฏเดพเดฃเต†เด™เตเด•เดฟเดฒเตเด‚, เด‰เดฃเตเดŸเต (เด‡เดคเดฟเดจเด•เด‚ เดœเดจเตเดตเดฐเดฟเดฏเดฟเตฝ เดธเตเดตเต€เด•เดฐเดฟเดšเตเดšเดคเต) PR # 3476, เด‡เดคเต K8s 1.13-เดจเตเดณเตเดณ เดชเดฟเดจเตเดคเตเดฃ เดชเตเดฐเด–เตเดฏเดพเดชเดฟเด•เตเด•เตเดจเตเดจเต. เด•เต‚เดŸเดพเดคเต†, เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเต เดชเตเดฐเดถเตเดจเด™เตเด™เดณเดฟเตฝ, เดชเดพเดจเดฒเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจ เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เดณเตเดŸเต† เดฑเดซเดฑเตปเดธเตเด•เตพ K8s 1.14-เตฝ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด•เดฃเตเดŸเต†เดคเตเดคเดพเดจเดพเด•เตเด‚. เด’เดŸเตเดตเดฟเตฝ, เดšเต†เดฏเตเดฏเตเดจเตเดจเต เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเดฟเดจเตเดฑเต† เด•เต‹เดกเต เดฌเต‡เดธเดฟเดฒเต‡เด•เตเด•เต เดชเตเดฐเดตเต‡เดถเดฟเด•เตเด•เตเดจเตเดจเดคเต เดจเดฟเตผเดคเตเดคเดฐเตเดคเต. เด…เดคเดฟเดจเดพเตฝ (เด•เตเดฑเดžเตเดžเดคเต!) เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเดฟเดจเตเดฑเต† เดฏเดฅเดพเตผเดคเตเดฅ เดจเดฟเดฒ, เด”เดฆเตเดฏเต‹เด—เดฟเด• เด…เดจเตเดฏเต‹เดœเตเดฏเดคเดพ เดชเดŸเตเดŸเดฟเด•เดฏเดฟเตฝ เดจเดฟเดจเตเดจเต เด†เดฆเตเดฏเด‚ เดคเต‹เดจเตเดจเดฟเดฏเต‡เด•เตเด•เดพเดตเตเดจเตเดจเดคเตเดฐ เดฎเต‹เดถเดฎเดฒเตเดฒ.

เด…เดตเดธเดพเดจเดฎเดพเดฏเดฟ, เดกเดพเดทเตเดฌเต‹เตผเดกเดฟเดจเต เด‡เดคเดฐเดฎเดพเตผเด—เด™เตเด™เดณเตเดฃเตเดŸเต. เด…เดตเตผเด•เตเด•เดฟเดŸเดฏเดฟเตฝ:

  1. เด•เต†8เดกเดพเดทเต โ€” เด’เดฐเต เดฏเตเดต เด‡เดจเตเดฑเตผเดซเต‡เดธเต (เด†เดฆเตเดฏเดคเตเดคเต† เด•เดฎเตเดฎเดฟเดฑเตเดฑเต เดˆ เดตเตผเดทเด‚ เดฎเดพเตผเดšเตเดšเดฟเดฒเดพเดฃเต), เด‡เดคเต เด•เตเดฒเดธเตเดฑเตเดฑเดฑเดฟเดจเตเดฑเต† เดจเดฟเดฒเดตเดฟเดฒเต† เด…เดตเดธเตเดฅเดฏเตเดŸเต†เดฏเตเด‚ เด…เดคเดฟเดจเตเดฑเต† เด’เดฌเตโ€Œเดœเด•เตเดฑเตเดฑเตเด•เดณเตเดŸเต† เดฎเดพเดจเต‡เดœเตโ€Œเดฎเต†เดจเตเดฑเดฟเดจเตเดฑเต†เดฏเตเด‚ เดตเดฟเดทเตเดตเตฝ เดชเตเดฐเดพเดคเดฟเดจเดฟเดงเตเดฏเด‚ เดชเต‹เดฒเตเดณเตเดณ เดจเดฒเตเดฒ เดธเดตเดฟเดถเต‡เดทเดคเด•เตพ เด‡เดคเดฟเดจเด•เด‚ เดตเดพเด—เตเดฆเดพเดจเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เด’เดฐเต "เดคเดคเตเดธเดฎเดฏ เด‡เดจเตเดฑเตผเดซเต‡เดธเต" เด†เดฏเดฟ เดธเตเดฅเดพเดชเดฟเดšเตเดšเต, เด•เดพเดฐเดฃเด‚ เดฌเตเดฐเต—เดธเดฑเดฟเตฝ เดชเต‡เดœเต เดชเตเดคเตเด•เตเด•เต‡เดฃเตเดŸ เด†เดตเดถเตเดฏเดฎเดฟเดฒเตเดฒเดพเดคเต† เดคเดจเตเดจเต† เดชเตเดฐเดฆเตผเดถเดฟเดชเตเดชเดฟเดšเตเดš เดกเดพเดฑเตเดฑ เดฏเดพเดจเตเดคเตเดฐเดฟเด•เดฎเดพเดฏเดฟ เด…เดชเตเดกเต‡เดฑเตเดฑเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต.
  2. เด“เดชเตเดชเตบเดทเดฟเดซเตเดฑเตเดฑเต เด•เตบเดธเต‹เตพ - Red Hat OpenShift-เตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เด’เดฐเต เดตเต†เดฌเต เด‡เดจเตเดฑเตผเดซเต‡เดธเต, เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเดฟเดจเตเดฑเต† เดฎเดฑเตเดฑเต เดธเด‚เดญเดตเดตเดฟเด•เดพเดธเด™เตเด™เตพ เดจเดฟเด™เตเด™เดณเตเดŸเต† เด•เตเดฒเดธเตเดฑเตเดฑเดฑเดฟเดฒเต‡เด•เตเด•เต เด•เตŠเดฃเตเดŸเตเดตเดฐเตเด‚, เด‡เดคเต เดŽเดฒเตเดฒเดพเดตเตผเด•เตเด•เตเด‚ เด…เดจเตเดฏเต‹เดœเตเดฏเดฎเดฒเตเดฒ.
  3. เด•เตเดฌเต‡เตผเดจเต‡เดฑเตเดฑเตผ เดŽเดฒเตเดฒเดพ เด•เตเดฒเดธเตเดฑเตเดฑเตผ เด’เดฌเตโ€Œเดœเด•เตโ€Œเดฑเตเดฑเตเด•เดณเตเด‚ เด•เดพเดฃเดพเดจเตเดณเตเดณ เด•เดดเดฟเดตเตเดณเตเดณ เด’เดฐเต เดคเดพเดดเตเดจเตเดจ เดจเดฟเดฒเดฏเดฟเดฒเตเดณเตเดณ (เดกเดพเดทเตโ€Œเดฌเต‹เตผเดกเดฟเดจเต‡เด•เตเด•เดพเตพ) เด‡เดจเตเดฑเตผเดซเต‡เดธเดพเดฏเดฟ เดธเตƒเดทเตโ€ŒเดŸเดฟเดšเตเดš เด’เดฐเต เดฐเดธเด•เดฐเดฎเดพเดฏ เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเดพเดฃเต. เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เด…เดคเดฟเดจเตเดฑเต† เดตเดฟเด•เดธเดจเด‚ เดจเดฟเดฒเดšเตเดšเดคเดพเดฏเดฟ เดคเต‹เดจเตเดจเตเดจเตเดจเต.
  4. เดชเต‹เดณเดพเดฐเดฟเดธเต - เด•เดดเดฟเดžเตเดž เดฆเดฟเดตเดธเด‚ เดชเตเดฐเด–เตเดฏเดพเดชเดฟเดšเตเดšเต เด’เดฐเต เดชเดพเดจเดฒเดฟเดจเตเดฑเต† เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เตพ เดธเด‚เดฏเต‹เดœเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเต (เด•เตเดฒเดธเตเดฑเตเดฑเดฑเดฟเดจเตเดฑเต† เดจเดฟเดฒเดตเดฟเดฒเต† เด…เดตเดธเตเดฅ เด•เดพเดฃเดฟเด•เตเด•เตเดจเตเดจเต, เดชเด•เตเดทเต‡ เด…เดคเดฟเดจเตเดฑเต† เด’เดฌเตเดœเด•เตเดฑเตเดฑเตเด•เตพ เด•เตˆเด•เดพเดฐเตเดฏเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเดฟเดฒเตเดฒ), เดฏเดพเดจเตเดคเตเดฐเดฟเด• "เดฎเดฟเด•เดšเตเดš เดธเดฎเตเดชเตเดฐเดฆเดพเดฏเด™เตเด™เดณเตเดŸเต† เดฎเต‚เดฒเตเดฏเดจเดฟเตผเดฃเตเดฃเดฏเด‚" (เด…เดคเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจ เดตเดฟเดจเตเดฏเดพเดธเด™เตเด™เดณเตเดŸเต† เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเดจเตเด•เดณเตเดŸเต† เด•เตƒเดคเตเดฏเดคเดฏเตเด•เตเด•เดพเดฏเดฟ เด•เตเดฒเดธเตเดฑเตเดฑเตผ เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเดจเตเดจเต).

เดจเดฟเด—เดฎเดจเด™เตเด™เตพเด•เตเด•เต เดชเด•เดฐเด‚

เดžเด™เตเด™เตพ เดธเต‡เดตเดฟเด•เตเด•เตเดจเตเดจ เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเต เด•เตเดฒเดธเตเดฑเตเดฑเดฑเตเด•เตพเด•เตเด•เตเดณเตเดณ เด’เดฐเต เดธเดพเดงเดพเดฐเดฃ เด‰เดชเด•เดฐเดฃเดฎเดพเดฃเต เดกเดพเดทเตโ€Œเดฌเต‹เตผเดกเต. เดชเดฒ เดกเต†เดตเดฒเดชเตเดชเตผเดฎเดพเดฐเตเด‚ เดˆ เดชเดพเดจเดฒเดฟเตฝ เด‰เดณเตเดณ เด•เดดเดฟเดตเตเด•เดณเดฟเตฝ เด†เดตเต‡เดถเดญเดฐเดฟเดคเดฐเดพเดฏเดคเดฟเดจเดพเตฝ GitLab-เดฎเดพเดฏเตเดณเตเดณ เด…เดคเดฟเดจเตเดฑเต† เดธเด‚เดฏเต‹เดœเดจเดตเตเด‚ เดžเด™เตเด™เดณเตเดŸเต† เดกเดฟเดซเต‹เตพเดŸเตเดŸเต เด‡เตปเดธเตเดฑเตเดฑเดพเดณเต‡เดทเดจเตเดฑเต† เดญเดพเด—เดฎเดพเดฏเดฟ เดฎเดพเดฑเดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต.

เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเต เดกเดพเดทเตโ€Œเดฌเต‹เตผเดกเดฟเดจเต เด“เดชเตเดชเตบ เดธเต‹เดดเตโ€Œเดธเต เด•เดฎเตเดฎเตเดฏเต‚เดฃเดฟเดฑเตเดฑเดฟเดฏเดฟเตฝ เดจเดฟเดจเตเดจเต เด†เดจเตเด•เดพเดฒเดฟเด•เดฎเดพเดฏเดฟ เด‡เดคเดฐเดฎเดพเตผเด—เด™เตเด™เดณเตเดฃเตเดŸเต (เด…เดต เดชเดฐเดฟเด—เดฃเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเตฝ เดžเด™เตเด™เตพเด•เตเด•เต เดธเดจเตเดคเต‹เดทเดฎเตเดฃเตเดŸเต), เดŽเดจเตเดจเดพเตฝ เดˆ เด˜เดŸเตเดŸเดคเตเดคเดฟเตฝ เดžเด™เตเด™เตพ เดˆ เดชเดฐเดฟเดนเดพเดฐเดคเตเดคเดฟเตฝ เดคเตเดŸเดฐเตเดจเตเดจเต.

เดชเดฟ.เดŽเดธเต

เดžเด™เตเด™เดณเตเดŸเต† เดฌเตเดฒเต‹เด—เดฟเดฒเตเด‚ เดตเดพเดฏเดฟเด•เตเด•เตเด•:

เด…เดตเดฒเด‚เดฌเด‚: www.habr.com

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•