ProHoster > Blog > Rianachd > Amalachadh luchd-cleachdaidh deas-bhòrd Kubernetes agus GitLab
Amalachadh luchd-cleachdaidh deas-bhòrd Kubernetes agus GitLab
Tha Kubernetes Dashboard na inneal furasta a chleachdadh airson fiosrachadh as ùire fhaighinn mun bhuidheann ruith agad agus a riaghladh gun mòran oidhirp. Bidh tu a’ tòiseachadh a ’cur luach eadhon nas motha air nuair a tha feum air ruigsinneachd air na comasan sin chan ann a-mhàin le luchd-rianachd / innleadairean DevOps, ach cuideachd leis an fheadhainn nach eil cho eòlach air a’ chonsail agus / no nach eil an dùil dèiligeadh ris a h-uile duilgheadas a thaobh a bhith ag eadar-obrachadh le kubectl agus goireasan eile. Thachair seo leinn: bha an luchd-leasachaidh ag iarraidh ruigsinneachd luath air eadar-aghaidh lìn Kubernetes, agus bhon a chleachdas sinn GitLab, thàinig am fuasgladh gu nàdarrach.
Carson a tha seo?
Is dòcha gum bi ùidh aig luchd-leasachaidh dìreach ann an inneal mar K8s Dashboard airson gnìomhan deasbaid. Aig amannan bidh thu airson sùil a thoirt air logaichean agus goireasan, agus uaireannan marbhadh pods, sgèile Cleachdaidhean / StatefulSets, agus eadhon a dhol gu consol an t-soithich (tha iarrtasan ann cuideachd agus, ge-tà, tha dòigh eile ann - mar eisimpleir, troimhe kubectl-debug).
A bharrachd air an sin, tha àm saidhgeòlach ann do mhanaidsearan nuair a tha iad airson sùil a thoirt air a’ bhuidheann - a bhith a’ faicinn gu bheil “a h-uile dad uaine”, agus mar sin a’ toirt misneachd dhaibh fhèin gu bheil “a h-uile dad ag obair” (a tha, gu dearbh, gu math càirdeach ... ach tha seo taobh a-muigh raon an artaigil).
Mar shiostam CI àbhaisteach tha againn buntainn GitLab: bidh gach leasaiche ga chleachdadh cuideachd. Mar sin, gus cothrom a thoirt dhaibh, bha e loidsigeach Dashboard fhilleadh a-steach le cunntasan GitLab.
Bheir mi fa-near cuideachd gu bheil sinn a’ cleachdadh NGINX Ingress. Ma tha thu ag obair còmhla ri daoine eile fuasglaidhean a-steach, feumaidh tu analogues de notaichean a lorg gu neo-eisimeileach airson cead.
A 'feuchainn ri amalachadh
Stàladh dashboard
Thoir aire: Ma tha thu gu bhith ag ath-aithris na ceumannan gu h-ìosal, an uairsin - gus obrachaidhean neo-riatanach a sheachnadh - leugh an toiseach chun ath fho-cheann.
Leis gu bheil sinn a’ cleachdadh an aonachadh seo ann an iomadh ionad, tha sinn air a stàladh a dhèanamh fèin-ghluasadach. Tha na stòran a tha a dhìth airson seo air am foillseachadh ann an stòr sònraichte GitHub. Tha iad stèidhichte air rèiteachadh YAML beagan atharraichte bho ionad-tasgaidh oifigeil Dashboard, a bharrachd air sgriobt Bash airson a chleachdadh gu sgiobalta.
Bidh an sgriobt a’ stàladh Dashboard sa bhuidheann agus ga rèiteachadh airson amalachadh le 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
Ach, mus cleachd thu e, feumaidh tu a dhol gu GitLab: Raon rianachd → Tagraidhean - agus cuir a-steach tagradh ùr airson a’ phannal san àm ri teachd. Canaidh sinn “deas-bhòrd kubernetes” ris:
Mar thoradh air a chuir ris, bheir GitLab seachad na hashes:
Is iadsan an fheadhainn a tha air an cleachdadh mar argamaidean don sgriobt. Mar thoradh air an sin, tha coltas mar seo air an stàladh:
Às deidh sin, dèan cinnteach gun do thòisich a h-uile càil:
$ 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
Ann an ùine ghoirid no nas fhaide air adhart tòisichidh a h-uile càil, ge-tà chan obraich cead sa bhad! Is e an fhìrinn, anns an ìomhaigh a chaidh a chleachdadh (tha an suidheachadh ann an ìomhaighean eile coltach) gu bheil am pròiseas airson ath-sheòladh a ghlacadh anns a ’ghairm air ais air a chuir an gnìomh gu ceàrr. Tha an suidheachadh seo a’ leantainn gu bheil oauth a’ cur às don bhriosgaid a tha oauth fhèin a’ toirt dhuinn...
Thèid an duilgheadas fhuasgladh le bhith a’ togail d’ ìomhaigh mhìn fhèin le bad.
Patch oauth agus ath-stàlaich
Gus seo a dhèanamh, cleachdaidh sinn an Dockerfile a leanas:
Agus seo cò ris a tha am paiste rd.patch fhèin coltach
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
A-nis faodaidh tu an ìomhaigh a thogail agus a phutadh a-steach don GitLab againn. An ath rud a-steach manifests/kube-dashboard-oauth2-proxy.yaml comharraich cleachdadh na h-ìomhaigh a tha thu ag iarraidh (cuir do chuid fhèin na àite):
image: docker.io/colemickens/oauth2_proxy:latest
Ma tha clàr agad a tha dùinte le cead, na dì-chuimhnich gun cuir thu cleachdadh dìomhair airson dealbhan tarraing:
imagePullSecrets:
- name: gitlab-registry
... agus cuir ris an dìomhair fhèin airson a’ chlàr:
Tha an t-àm ann a dhol chun deas-bhòrd agus lorg putan logadh a-steach caran àrsaidh:
Às deidh dhut briogadh air, cuiridh GitLab fàilte oirnn, a’ tabhann logadh a-steach don duilleag àbhaisteach aige (gu dearbh, mura h-eil sinn air logadh a-steach an sin roimhe):
Bidh sinn a’ logadh a-steach le teisteanasan GitLab - agus tha a h-uile càil air a dhèanamh:
Mu fheartan Dashboard
Ma tha thu nad leasaiche nach eil air a bhith ag obair le Kubernetes roimhe seo, no dìreach airson adhbhar air choireigin nach do choinnich thu ri Dashboard roimhe seo, seallaidh mi cuid de na comasan aige.
An toiseach, chì thu gu bheil “a h-uile dad uaine”:
Tha dàta nas mionaidiche cuideachd ri fhaighinn airson pods, leithid caochladairean àrainneachd, ìomhaigh air a luchdachadh sìos, argamaidean tòiseachaidh, agus an staid aca:
Tha inbhean faicsinneach aig cleachdadh:
... agus mion-fhiosrachadh eile:
... agus tha comas ann cuideachd an cleachdadh a sgèile:
Toradh na h-obrach seo:
Am measg nam feartan feumail eile a chaidh ainmeachadh aig toiseach an artaigil tha coimhead air logaichean:
...
Mar eisimpleir, faodaidh tu cuideachd coimhead air na crìochan / iarrtasan air nodan:
Gu dearbh, chan e seo uile comasan a’ phannail, ach tha mi an dòchas gum faigh thu am beachd coitcheann.
Eas-bhuannachdan de amalachadh agus Dashboard
Anns an aonachadh a chaidh a mhìneachadh chan eil smachd ruigsinneachd. Leis, gheibh gach neach-cleachdaidh aig a bheil cothrom air GitLab cothrom air an deas-bhòrd. Tha an aon ruigsinneachd aca anns an deas-bhòrd fhèin, a rèir còirichean an deas-bhòrd fhèin, a tha air am mìneachadh ann an RBAC. Gu dearbh, chan eil seo freagarrach airson a h-uile duine, ach airson ar cùise thionndaidh e a-mach a bhith gu leòr.
Am measg nan eas-bhuannachdan follaiseach anns an deas-bhòrd fhèin, tha mi a’ toirt fa-near na leanas:
tha e do-dhèanta faighinn a-steach do chonsail an init container;
tha e do-dhèanta Deasachadh Cleachdaidhean agus StatefulSets, ged a dh'fhaodar seo a shuidheachadh ann an ClusterRole;
Bidh co-chòrdalachd Dashboard leis na dreachan as ùire de Kubernetes agus àm ri teachd a ’phròiseict a’ togail cheistean.
Tha an duilgheadas mu dheireadh airidh air aire shònraichte.
Inbhe deas-bhòrd agus roghainnean eile
Clàr co-chòrdalachd deas-bhòrd le fiosan Kubernetes, air a thaisbeanadh san dreach as ùire den phròiseact (v1.10.1), chan eil mi toilichte:
A dh'aindeoin seo, tha (mar-thà air gabhail ris san Fhaoilleach) PR #3476, a tha ag ainmeachadh taic airson K8s 1.13. A bharrachd air an sin, am measg chùisean a’ phròiseict gheibh thu iomraidhean air luchd-cleachdaidh ag obair leis a’ phannal ann an K8s 1.14. Mu dheireadh, a' gealltainn a-steach do bhunait còd a’ phròiseict na stad. Mar sin (co-dhiù!) Chan eil fìor inbhe a’ phròiseict cho dona ‘s a dh’ fhaodadh e nochdadh bhon chlàr oifigeil co-chòrdalachd.
Mu dheireadh, tha roghainnean eile ann seach Dashboard. Nam measg:
K8 Dash - eadar-aghaidh òg (tha a’ chiad ghealladh a’ dol air ais gu Màrt am-bliadhna), a tha mar-thà a’ tabhann deagh fheartan, leithid riochdachadh lèirsinneach de inbhe làithreach a’ bhuidheann agus riaghladh a nithean. Air a shuidheachadh mar “eadar-aghaidh fìor-ùine”, oir ag ùrachadh an dàta a tha air a thaisbeanadh gu fèin-ghluasadach gun a bhith ag iarraidh ort an duilleag sa bhrobhsair ùrachadh.
Console OpenShift - eadar-aghaidh lìn bho Red Hat OpenShift, a bheir, ge-tà, leasachaidhean eile den phròiseact don bhuidheann agad, nach eil freagarrach don h-uile duine.
Kubernator na phròiseact inntinneach, air a chruthachadh mar eadar-aghaidh aig ìre nas ìsle (na Dashboard) leis a’ chomas a h-uile nì cnuasachaidh fhaicinn. Ach, tha e coltach gu bheil a leasachadh air stad.
Polaris - dìreach an latha eile ainmeachadh pròiseact a tha a’ cothlamadh gnìomhan panail (a’ sealltainn staid làithreach a’ chnuasach, ach nach eil a’ riaghladh a nithean) agus “dearbhadh nan cleachdaidhean as fheàrr” gu fèin-ghluasadach (a’ sgrùdadh a’ bhuidheann airson ceartachd nan rèiteachaidhean de Chleachdaidhean a tha a’ ruith ann).
An àite co-dhùnaidhean
Tha deas-bhòrd na inneal àbhaisteach airson na cruinneachaidhean Kubernetes a bhios sinn a’ frithealadh. Tha an aonachadh le GitLab cuideachd air a thighinn gu bhith na phàirt den stàladh bunaiteach againn, leis gu bheil mòran de luchd-leasachaidh air bhioran mu na comasan a th’ aca leis a’ phannal seo.
Bho àm gu àm tha roghainnean eile aig Kubernetes Dashboard bhon choimhearsnachd Open Source (agus tha sinn toilichte beachdachadh orra), ach aig an ìre seo tha sinn fhathast leis an fhuasgladh seo.