Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ Kubernetes Dashboard ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ GitLab

Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ Kubernetes Dashboard ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ GitLab

Kubernetes Dashboard β€” простой Π² Ρ€Π°Π±ΠΎΡ‚Π΅ инструмСнт для получСния Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… свСдСний ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅ΠΌ кластСрС ΠΈ минимального управлСния ΠΈΠΌ. ΠΠ°Ρ‡ΠΈΠ½Π°Π΅ΡˆΡŒ Π΅Π³ΠΎ Ρ†Π΅Π½ΠΈΡ‚ΡŒ Π΅Ρ‰Ρ‘ большС, ΠΊΠΎΠ³Π΄Π° доступ ΠΊ этим возмоТностям Π½ΡƒΠΆΠ΅Π½ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ администраторам/DevOps-ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π°ΠΌ, Π½ΠΎ ΠΈ Ρ‚Π΅ΠΌ, ΠΊΡ‚ΠΎ мСньшС ΠΏΡ€ΠΈΠ²Ρ‹ΠΊ ΠΊ консоли ΠΈ/ΠΈΠ»ΠΈ Π½Π΅ Π½Π°ΠΌΠ΅Ρ€Π΅Π½ Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚ΡŒΡΡ со всСми тонкостями взаимодСйствия с kubectl ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°ΠΌΠΈ. Π’Π°ΠΊ ΡΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ ΠΈ Ρƒ нас: Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Π·Π°Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ быстрого доступа ΠΊ Π²Π΅Π±-интСрфСйсу Kubernetes, Π° ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ GitLab, Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π½Π°ΠΏΡ€ΠΎΡΠΈΠ»ΠΎΡΡŒ само собой.

Π—Π°Ρ‡Π΅ΠΌ это?

НСпосрСдствСнныС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ заинтСрСсованы Π² инструмСнтС Π²Ρ€ΠΎΠ΄Π΅ K8s Dashboard для Π·Π°Π΄Π°Ρ‡ ΠΏΠΎ ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅. Иногда хочСтся ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Π»ΠΎΠ³ΠΈ ΠΈ рСсурсы, Π° ΠΏΠΎΡ€ΠΎΠΉ ΠΈ ΡƒΠ±ΠΈΠ²Π°Ρ‚ΡŒ pod’ы, ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Deployments/StatefulSets ΠΈ Π΄Π°ΠΆΠ΅ Π·Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π² консоль ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² (ΡΠ»ΡƒΡ‡Π°ΡŽΡ‚ΡΡ ΠΈ Ρ‚Π°ΠΊΠΈΠ΅ запросы, для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ…, Π²ΠΏΡ€ΠΎΡ‡Π΅ΠΌ, Π΅ΡΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΡƒΡ‚ΡŒ β€” Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‡Π΅Ρ€Π΅Π· kubectl-debug).

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π΅ΡΡ‚ΡŒ ΠΈ психологичСский ΠΌΠΎΠΌΠ΅Π½Ρ‚ для Ρ€ΡƒΠΊΠΎΠ²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ хотят ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° кластСр β€” ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ «всё зСлСнСнькоС», ΠΈ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΡƒΡΠΏΠΎΠΊΠΎΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ «всё Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Β» (Ρ‡Ρ‚ΠΎ, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, вСсьма ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎβ€¦ Π½ΠΎ это ΡƒΠΆΠ΅ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π·Π° Ρ€Π°ΠΌΠΊΠΈ ΡΡ‚Π°Ρ‚ΡŒΠΈ).

Π’ качСствС стандартной CI-систСмы Ρƒ нас примСняСтся GitLab: Π΅ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΈ всС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΈΠΌ доступ, Π±Ρ‹Π»ΠΎ Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡŽ Dashboard с Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Π°ΠΌΠΈ Π² GitLab.

Π’Π°ΠΊΠΆΠ΅ ΠΎΡ‚ΠΌΠ΅Ρ‡Ρƒ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ NGINX Ingress. Если ΠΆΠ΅ Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ingress-Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΠΌΠΈ, потрСбуСтся ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΉ для Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ.

ΠŸΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡŽ

Установка Dashboard

Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Если Π²Ρ‹ ΡΠΎΠ±ΠΈΡ€Π°Π΅Ρ‚Π΅ΡΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡ‚ΡŒ описанныС Π½ΠΈΠΆΠ΅ шаги, Ρ‚ΠΎ β€” Π²ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°Π½ΠΈΠ΅ Π»ΠΈΡˆΠ½ΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉΒ β€” сначала Π΄ΠΎΡ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ Π΄ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΏΠΎΠ΄Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°.

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ эта интСграция ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π½Π°ΠΌΠΈ Π²ΠΎ мноТСствС инсталляций, ΠΌΡ‹ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ Π΅Ρ‘ установку. Π˜ΡΡ…ΠΎΠ΄Π½ΠΈΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ для этого, ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Ρ‹ Π² ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ GitHub-Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ. Π’ ΠΈΡ… основС β€” Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ YAML-ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΈΠ· ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ рСпозитория Dashboard, Π° Ρ‚Π°ΠΊΠΆΠ΅ Bash-скрипт для быстрого развёртывания.

Π‘ΠΊΡ€ΠΈΠΏΡ‚ устанавливаСт Dashboard Π² кластСр ΠΈ настраиваСт Π΅Π³ΠΎ Π½Π° ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡŽ с 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: Admin area β†’ Applications β€” ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½ΠΎΠ²ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ. Назовём Π΅Π³ΠΎ Β«kubernetes dashboardΒ»:

Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ Kubernetes Dashboard ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ GitLab

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π΅Π³ΠΎ добавлСния GitLab прСдоставит Ρ…ΡΡˆΠΈ:

Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ Kubernetes Dashboard ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ 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

Π Π°Π½ΠΎ ΠΈΠ»ΠΈ ΠΏΠΎΠ·Π΄Π½ΠΎ всё запустится, ΠΎΠ΄Π½Π°ΠΊΠΎ сразу авторизация Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚! Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΌ ΠΎΠ±Ρ€Π°Π·Π΅ (ситуация Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΠ±Ρ€Π°Π·Π°Ρ… Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Π°) Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ процСсс Π»ΠΎΠ²Π»ΠΈ Ρ€Π΅Π΄ΠΈΡ€Π΅ΠΊΡ‚Π° Π² callback. Π­Ρ‚ΠΎ ΠΎΠ±ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ oauth стираСт cookie, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ сам ΠΆΠ΅ (oauth) Π½Π°ΠΌ прСдоставляСт…

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ сборкой своСго ΠΎΠ±Ρ€Π°Π·Π° oauth с ΠΏΠ°Ρ‚Ρ‡Π΅ΠΌ.

ΠŸΠ°Ρ‚Ρ‡ ΠΊ oauth ΠΈ повторная установка

Для этого Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ Dockerfile’ом:

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

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚ΡŒ сборку ΠΎΠ±Ρ€Π°Π·Π° ΠΈ за’pushβ€™ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² наш ΠΆΠ΅ GitLab. Π”Π°Π»Π΅Π΅ Π² manifests/kube-dashboard-oauth2-proxy.yaml ΡƒΠΊΠ°ΠΆΠ΅ΠΌ использованиС Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ ΠΎΠ±Ρ€Π°Π·Π° (Π·Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ Π΅Π³ΠΎ Π½Π° свой):

 image: docker.io/colemickens/oauth2_proxy:latest

Если Ρƒ вас Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ registry β€” Π½Π΅ Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ использованиС сСкрСта для pull’а ΠΎΠ±Ρ€Π°Π·ΠΎΠ²:

      imagePullSecrets:
     - name: gitlab-registry

… ΠΈ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ сам сСкрСт для 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 Π±ΡƒΠ΄Π΅Ρ‚ pullβ€™ΠΈΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π· ΠΈΠ· registry.

ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ всё сдСлано, ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ (Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΡƒΡŽ) ΠΈΠ½ΡΡ‚Π°Π»Π»ΡΡ†ΠΈΡŽ Dashboard ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

$ ./ctl.sh -d

… ΠΈ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ всё Π·Π°Π½ΠΎΠ²ΠΎ:

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

Настало врСмя Π·Π°ΠΉΡ‚ΠΈ Π² Dashboard ΠΈ Π½Π°ΠΉΡ‚ΠΈ довольно Π°Ρ€Ρ…Π°ΠΈΡ‡Π½ΡƒΡŽ ΠΊΠ½ΠΎΠΏΠΊΡƒ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ:

Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ Kubernetes Dashboard ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ GitLab

ПослС наТатия Π½Π° Π½Π΅Ρ‘ нас встрСтит GitLab, прСдлагая Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π½Π° своСй ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½ΠΎΠΉ страницС (ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΆΠ΅, Ссли ΠΌΡ‹ Π½Π΅ Π±Ρ‹Π»ΠΈ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ Ρ‚Π°ΠΌ):

Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ Kubernetes Dashboard ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ GitLab

АвторизуСмся с ΡƒΡ‡Ρ‘Ρ‚Π½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ GitLab β€” ΠΈ всё ΡΠ²Π΅Ρ€ΡˆΠΈΠ»ΠΎΡΡŒ:

Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ Kubernetes Dashboard ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ GitLab

О возмоТностях Dashboard

Если Π²Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€Π΅ΠΆΠ΄Π΅ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π» с Kubernetes, ΠΈΠ»ΠΈ ΠΆΠ΅ просто ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ Π½Π΅ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Π»ΠΈΡΡŒ ΠΏΡ€Π΅ΠΆΠ΄Π΅ с Dashboard β€” ΠΏΡ€ΠΎΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΅Π³ΠΎ возмоТности.

Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ «всё зСлСнСнькоС»:

Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ Kubernetes Dashboard ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ GitLab

По pod’ам доступны ΠΈ Π±ΠΎΠ»Π΅Π΅ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ окруТСния, Π²Ρ‹ΠΊΠ°Ρ‡Π΅Π½Π½Ρ‹ΠΉ ΠΎΠ±Ρ€Π°Π·, Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ запуска, ΠΈΡ… состояниС:

Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ Kubernetes Dashboard ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ GitLab

Π£ deployment’ов Π²ΠΈΠ΄Π½Ρ‹ статусы:

Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ Kubernetes Dashboard ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ GitLab

… ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ подробности:

Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ Kubernetes Dashboard ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ GitLab

… Π° Ρ‚Π°ΠΊΠΆΠ΅ Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ‚ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ deployment:

Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ Kubernetes Dashboard ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ GitLab

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ этой ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ:

Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ Kubernetes Dashboard ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ GitLab

Π‘Ρ€Π΅Π΄ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΡ… ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… возмоТностСй, ΡƒΠΆΠ΅ упомянутых Π² Π½Π°Ρ‡Π°Π»Π΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ, β€” просмотр Π»ΠΎΠ³ΠΎΠ²:

Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ Kubernetes Dashboard ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ GitLab

… ΠΈ функция Π²Ρ…ΠΎΠ΄Π° Π² консоль ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ pod’а:

Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ Kubernetes Dashboard ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ GitLab

Π•Ρ‰Ρ‘, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈ limit’ы/request’ы Π½Π° ΡƒΠ·Π»Π°Ρ…:

Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ Kubernetes Dashboard ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ GitLab

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, это Π½Π΅ всС возмоТности ΠΏΠ°Π½Π΅Π»ΠΈ, Π½ΠΎ надСюсь, Ρ‡Ρ‚ΠΎ ΠΎΠ±Ρ‰Π΅Π΅ прСдставлСниС слоТилось.

НСдостатки ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ ΠΈ Dashboard

Π’ описанной ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ Π½Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ разграничСния доступа. Π‘ Π½Π΅ΠΉ всС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ доступ ΠΊ GitLab, ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ доступ Π² Dashboard. Доступ Π² самом Dashboard Ρƒ Π½ΠΈΡ… ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΉ, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€Π°Π²Π°ΠΌ самой Dashboard, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ Π² RBAC. ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ это ΠΏΠΎΠ΄ΠΎΠΉΠ΄Ρ‘Ρ‚ Π½Π΅ всСм, Π½ΠΎ для нашСго случая оказалось достаточным.

Из Π·Π°ΠΌΠ΅Ρ‚Π½Ρ‹Ρ… минусов Π² самой ΠΏΠ°Π½Π΅Π»ΠΈ Dashboard ΠΎΡ‚ΠΌΠ΅Ρ‡Ρƒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅:

  • Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΠ°ΡΡ‚ΡŒ Π² консоль init-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°;
  • Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Deployments ΠΈ StatefulSets, хотя это ΠΏΠΎΠΏΡ€Π°Π²ΠΈΠΌΠΎ Π² ClusterRole;
  • ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ Dashboard с послСдними вСрсиями Kubernetes ΠΈ Π±ΡƒΠ΄ΡƒΡ‰Π΅Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ вопросы.

ПослСдняя ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° заслуТиваСт особого внимания.

Бтатус ΠΈ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ Dashboard

Π’Π°Π±Π»ΠΈΡ†Π° совмСстимости Dashboard с Ρ€Π΅Π»ΠΈΠ·Π°ΠΌΠΈ Kubernetes, прСдставлСнная Π² послСднСй вСрсии ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° (v1.10.1), Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ-Ρ‚ΠΎ Ρ€Π°Π΄ΡƒΠ΅Ρ‚:

Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ Kubernetes Dashboard ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ GitLab

НСсмотря Π½Π° это, сущСствуСт (ΡƒΠΆΠ΅ принятый Π² январС) PR #3476, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅ K8s 1.13. Π’Π΄ΠΎΠ±Π°Π²ΠΎΠΊ, срСди issues ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ упоминания ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… с панСлью Π² K8s 1.14. НаконСц, ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π² ΠΊΠΎΠ΄ΠΎΠ²ΡƒΡŽ Π±Π°Π·Ρƒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π½Π΅ ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π°ΡŽΡ‚ΡΡ. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ (ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ!) фактичСский статус ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π½Π΅ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ»ΠΎΡ…, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ спСрва ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΈΠ· ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ совмСстимости.

НаконСц, Ρƒ Dashboard ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹. Π‘Ρ€Π΅Π΄ΠΈ Π½ΠΈΡ…:

  1. K8Dash β€” ΠΌΠΎΠ»ΠΎΠ΄ΠΎΠΉ интСрфСйс (ΠΏΠ΅Ρ€Π²Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π΄Π°Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΌΠ°Ρ€Ρ‚ΠΎΠΌ этого Π³ΠΎΠ΄Π°), ΡƒΠΆΠ΅ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‰ΠΈΠΉ Π½Π΅ΠΏΠ»ΠΎΡ…ΠΈΠ΅ возмоТности, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ прСдставлСниС Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ статуса кластСра ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΅Π³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ. ΠŸΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΡƒΠ΅Ρ‚ΡΡ ΠΊΠ°ΠΊ «интСрфСйс Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈΒ», Ρ‚.ΠΊ. автоматичСски Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, Π½Π΅ трСбуя ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ страницу Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅.
  2. OpenShift Console β€” Π²Π΅Π±-интСрфСйс ΠΎΡ‚ Red Hat OpenShift, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ, Π²ΠΏΡ€ΠΎΡ‡Π΅ΠΌ, принСсёт Π² ваш кластСр ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π½Π°Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Ρ‡Ρ‚ΠΎ Π½Π΅ всСм ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚.
  3. Kubernator β€” интСрСсный ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, созданный ΠΊΠ°ΠΊ Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹ΠΉ (Ρ‡Π΅ΠΌ Dashboard) интСрфСйс с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ просмотра всСх ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² кластСра. Однако всё выглядит Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ Π΅Π³ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‚ΠΈΠ»Π°ΡΡŒ.
  4. Polaris β€” Π±ΡƒΠΊΠ²Π°Π»ΡŒΠ½ΠΎ Π½Π° днях анонсированный ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ совмСщаСт Π² сСбС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠ°Π½Π΅Π»ΠΈ (ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ состояниС кластСра, Π½ΠΎ Π½Π΅ управляСт Π΅Π³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ) ΠΈ автоматичСской Β«Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ Π»ΡƒΡ‡ΡˆΠΈΡ… ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΒ» (провСряСт кластСр Π½Π° ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Ρ… Π² Π½Ρ‘ΠΌ Deployments).

ВмСсто Π²Ρ‹Π²ΠΎΠ΄ΠΎΠ²

Dashboard β€” стандартный инструмСнт для кластСров Kubernetes, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ обслуТиваСм. Π•Π³ΠΎ интСграция с GitLab Ρ‚ΠΎΠΆΠ΅ стала Ρ‡Π°ΡΡ‚ΡŒΡŽ нашСй «инсталляции ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽΒ», ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Ρ€Π°Π΄Ρ‹ Ρ‚Π΅ΠΌ возмоТностям, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρƒ Π½ΠΈΡ… ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ с этой панСлью.

Π£ Kubernetes Dashboard пСриодичСски ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ ΠΎΡ‚ Open Source-сообщСства (ΠΈ ΠΌΡ‹ Ρ€Π°Π΄Ρ‹ ΠΈΡ… Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ), ΠΎΠ΄Π½Π°ΠΊΠΎ Π½Π° Π΄Π°Π½Π½ΠΎΠΌ этапС остаёмся с этим Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ.

P.S.

Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅ Π² нашСм Π±Π»ΠΎΠ³Π΅:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com