ProHoster > blog > Utawala > Muunganisho wa Dashibodi ya Kubernetes na watumiaji wa GitLab
Muunganisho wa Dashibodi ya Kubernetes na watumiaji wa GitLab
Dashibodi ya Kubernetes ni zana rahisi kutumia ya kupata taarifa za kisasa kuhusu nguzo yako inayoendesha na kuisimamia kwa juhudi kidogo. Unaanza kuithamini zaidi wakati ufikiaji wa uwezo huu unahitajika sio tu na wasimamizi/wahandisi wa DevOps, lakini pia na wale ambao hawajazoea kiweko na/au hawana nia ya kushughulikia ugumu wote wa kuingiliana na kubectl na. huduma zingine. Hii ilitokea kwetu: watengenezaji walitaka ufikiaji wa haraka wa kiolesura cha wavuti cha Kubernetes, na kwa kuwa tunatumia GitLab, suluhisho lilikuja kwa kawaida.
Kwa nini hii?
Wasanidi wa moja kwa moja wanaweza kupendezwa na zana kama Dashibodi ya K8s kwa kazi za utatuzi. Wakati mwingine unataka kutazama kumbukumbu na rasilimali, na wakati mwingine kuua maganda, kupima Usambazaji/StatefulSets, na hata kwenda kwenye koni ya kontena (pia kuna maombi ambayo, hata hivyo, kuna njia nyingine - kwa mfano, kupitia kubectl-debug).
Kwa kuongezea, kuna wakati wa kisaikolojia kwa wasimamizi wakati wanataka kuangalia nguzo - kuona kwamba "kila kitu ni kijani", na hivyo kujihakikishia kuwa "kila kitu kinafanya kazi" (ambayo, kwa kweli, ni jamaa sana ... lakini hii ni zaidi ya upeo wa makala).
Kama mfumo wa kawaida wa CI tunayo inatumika GitLab: watengenezaji wote wanaitumia pia. Kwa hivyo, ili kuwapa ufikiaji, ilikuwa ni busara kuunganisha Dashibodi na akaunti za GitLab.
Pia nitatambua kuwa tunatumia NGINX Ingress. Ikiwa unafanya kazi na wengine ufumbuzi wa ingress, utahitaji kujitegemea kupata analogi za maelezo kwa idhini.
Inajaribu kujumuisha
Ufungaji wa dashibodi
Attention: Ikiwa utarudia hatua zilizo hapa chini, basi - ili kuepuka shughuli zisizo za lazima - kwanza soma kwa kichwa kidogo kinachofuata.
Kwa kuwa tunatumia ushirikiano huu katika mitambo mingi, tumeweka usakinishaji wake kiotomatiki. Vyanzo vinavyohitajika kwa hili vinachapishwa katika hazina maalum ya GitHub. Zinatokana na usanidi wa YAML uliobadilishwa kidogo kutoka hazina rasmi ya Dashibodi, pamoja na hati ya Bash ya kupelekwa haraka.
Hati husanikisha Dashibodi kwenye nguzo na kuisanidi ili kuunganishwa na 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
Walakini, kabla ya kuitumia, unahitaji kwenda kwa GitLab: Eneo la Msimamizi β Maombi - na uongeze programu mpya ya paneli ya baadaye. Wacha tuiite "dashibodi ya kubernetes":
Kama matokeo ya kuiongeza, GitLab itatoa heshi:
Ndio zinazotumika kama hoja kwa maandishi. Kama matokeo, ufungaji unaonekana kama hii:
Baada ya hayo, hebu tuangalie ikiwa kila kitu kilianza:
$ 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
Hivi karibuni au baadaye kila kitu kitaanza, hata hivyo idhini haitafanya kazi mara moja! Ukweli ni kwamba katika picha iliyotumiwa (hali katika picha zingine ni sawa) mchakato wa kukamata uelekezaji katika urejeshaji wa simu unatekelezwa vibaya. Hali hii inaongoza kwa ukweli kwamba kiapo kinafuta kidakuzi ambacho kiapo chenyewe hutupatia...
Tatizo linatatuliwa kwa kujenga picha yako ya kiapo na kiraka.
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
Sasa unaweza kuunda picha na kuisukuma kwenye GitLab yetu. Inayofuata manifests/kube-dashboard-oauth2-proxy.yaml onyesha matumizi ya picha inayotaka (ibadilishe na yako mwenyewe):
image: docker.io/colemickens/oauth2_proxy:latest
Ikiwa una sajili ambayo imefungwa kwa idhini, usisahau kuongeza matumizi ya siri kwa picha za kuvuta:
Ni wakati wa kwenda kwenye Dashibodi na kutafuta kitufe cha kuingia cha kizamani:
Baada ya kubofya juu yake, GitLab itatusalimia, ikitoa kuingia kwenye ukurasa wake wa kawaida (bila shaka, ikiwa hatujaingia hapo awali):
Tunaingia na vitambulisho vya GitLab - na kila kitu kimefanywa:
Kuhusu vipengele vya Dashibodi
Ikiwa wewe ni msanidi programu ambaye hujawahi kufanya kazi na Kubernetes hapo awali, au kwa sababu fulani tu hujakutana na Dashibodi hapo awali, nitaonyesha baadhi ya uwezo wake.
Kwanza, unaweza kuona kwamba "kila kitu ni kijani":
Data ya kina zaidi inapatikana pia kwa maganda, kama vile vigeu vya mazingira, picha iliyopakuliwa, hoja za uzinduzi, na hali zao:
Usambazaji una hali zinazoonekana:
... na maelezo mengine:
... na pia kuna uwezo wa kuongeza upelekaji:
Matokeo ya operesheni hii:
Miongoni mwa vipengele vingine muhimu vilivyotajwa tayari mwanzoni mwa makala ni kutazama kumbukumbu:
... na kazi ya kuingia kwenye koni ya kontena ya pod iliyochaguliwa:
Kwa mfano, unaweza pia kuangalia mipaka/maombi kwenye nodi:
Bila shaka, haya sio uwezo wote wa jopo, lakini natumaini kwamba utapata wazo la jumla.
Hasara za ushirikiano na Dashibodi
Katika ushirikiano ulioelezwa hakuna udhibiti wa ufikiaji. Kwa hiyo, watumiaji wote walio na ufikiaji wowote wa GitLab wanapata ufikiaji wa Dashibodi. Wana ufikiaji sawa katika Dashibodi yenyewe, inayolingana na haki za Dashibodi yenyewe, ambayo zimefafanuliwa katika RBAC. Kwa wazi, hii haifai kwa kila mtu, lakini kwa upande wetu iligeuka kuwa ya kutosha.
Miongoni mwa ubaya unaoonekana kwenye Dashibodi yenyewe, naona yafuatayo:
haiwezekani kuingia kwenye console ya chombo cha init;
haiwezekani kuhariri Deployments na StatefulSets, ingawa hii inaweza kurekebishwa katika ClusterRole;
Utangamano wa Dashibodi na matoleo mapya zaidi ya Kubernetes na mustakabali wa mradi huzua maswali.
Tatizo la mwisho linastahili tahadhari maalum.
Hali ya dashibodi na njia mbadala
Jedwali la uoanifu la Dashibodi na matoleo ya Kubernetes, yaliyowasilishwa katika toleo jipya zaidi la mradi (v1.10.1), sio furaha sana:
Pamoja na hayo, kuna (tayari imepitishwa Januari) PR # 3476, ambayo inatangaza msaada kwa K8s 1.13. Kwa kuongeza, kati ya masuala ya mradi unaweza kupata marejeleo kwa watumiaji wanaofanya kazi na jopo katika K8s 1.14. Hatimaye, anajituma kwenye msingi wa msimbo wa mradi usisimame. Kwa hivyo (angalau!) hali halisi ya mradi sio mbaya kama inavyoweza kuonekana kutoka kwa jedwali rasmi la utangamano.
Hatimaye, kuna njia mbadala za Dashibodi. Kati yao:
K8Dashi - kiolesura chachanga (azima ya kwanza ni ya Machi mwaka huu), ambayo tayari inatoa huduma nzuri, kama vile uwakilishi wa kuona wa hali ya sasa ya nguzo na usimamizi wa vitu vyake. Imewekwa kama "kiolesura cha wakati halisi", kwa sababu husasisha kiotomatiki data iliyoonyeshwa bila kukuhitaji uonyeshe upya ukurasa kwenye kivinjari.
OpenShift Console - interface ya wavuti kutoka kwa Red Hat OpenShift, ambayo, hata hivyo, italeta maendeleo mengine ya mradi kwenye nguzo yako, ambayo haifai kwa kila mtu.
Kubernator ni mradi wa kuvutia, ulioundwa kama kiolesura cha kiwango cha chini (kuliko Dashibodi) chenye uwezo wa kutazama vitu vyote vya nguzo. Walakini, inaonekana kama maendeleo yake yamesimama.
Polaris - siku nyingine tu alitangaza mradi unaochanganya utendakazi wa paneli (inaonyesha hali ya sasa ya nguzo, lakini haidhibiti vitu vyake) na "uthibitishaji wa mbinu bora" moja kwa moja (huangalia nguzo kwa usahihi wa usanidi wa Usambazaji unaoendeshwa ndani yake).
Badala ya hitimisho
Dashibodi ni zana ya kawaida kwa makundi ya Kubernetes tunayohudumia. Ujumuishaji wake na GitLab pia umekuwa sehemu ya usakinishaji wetu chaguo-msingi, kwani wasanidi wengi wanafurahishwa na uwezo walio nao kwenye paneli hii.
Dashibodi ya Kubernetes mara kwa mara huwa na njia mbadala kutoka kwa jumuiya ya Open Source (na tunafurahi kuzizingatia), lakini kwa hatua hii tunasalia na suluhisho hili.