ኩበርኔትስ ዳሽቦርድ ስለአሂድ ክላስተርህ ወቅታዊ መረጃ ለማግኘት እና በትንሹ ጥረት ለማስተዳደር ለአጠቃቀም ቀላል መሳሪያ ነው። እነዚህን ችሎታዎች ማግኘት በአስተዳዳሪዎች/DevOps መሐንዲሶች ብቻ ሳይሆን ኮንሶሉን እምብዛም ባልለመዱ እና/ወይም ከ kubectl እና ከኩቤክቴል ጋር የመገናኘት ውስብስብ ነገሮችን ሁሉ ለማይፈልጉ ሰዎች ሲያስፈልጉ የበለጠ ማድነቅ ይጀምራሉ። ሌሎች መገልገያዎች. ይህ በእኛ ጋር ሆነ፡ ገንቢዎቹ ወደ Kubernetes ድር በይነገጽ በፍጥነት መድረስ ፈልገው ነበር፣ እና GitLabን ስለምንጠቀም መፍትሄው በተፈጥሮ የመጣ ነው።
ይህ ለምን ሆነ?
ቀጥተኛ ገንቢዎች እንደ K8s ዳሽቦርድ ያሉ ተግባራትን ለማረም ሊፈልጉ ይችላሉ። አንዳንድ ጊዜ መዝገቦችን እና ሀብቶችን ማየት ይፈልጋሉ ፣ እና አንዳንድ ጊዜ ፖድዎችን መግደል ፣ ማሰማራት / StatefulSets ፣ እና ወደ ኮንቴይነሩ ኮንሶል መሄድ እንኳን ይፈልጋሉ (ጥያቄዎችም አሉ ፣ ግን ሌላ መንገድ አለ - ለምሳሌ ፣ በ
በተጨማሪም ፣ ለአስተዳዳሪዎች ክላስተርን ለመመልከት ሲፈልጉ የስነ-ልቦና ጊዜ አለ - “ሁሉም ነገር አረንጓዴ” መሆኑን ለማየት ፣ እና “ሁሉም ነገር እየሰራ ነው” (በእርግጥ ፣ በጣም አንፃራዊ ነው… ነገር ግን ይህ ከጽሑፉ ወሰን በላይ ነው).
እንደ መደበኛ የሲአይ ስርዓት አለን።
እንዲሁም NGINX Ingress እንደምንጠቀም አስተውያለሁ። ከሌሎች ጋር የምትሠራ ከሆነ
ውህደትን በመሞከር ላይ
ዳሽቦርድ መጫን
ትኩረትከዚህ በታች ያሉትን እርምጃዎች ለመድገም ከፈለጉ - አላስፈላጊ ስራዎችን ለማስወገድ - መጀመሪያ ወደ ቀጣዩ ንዑስ ርዕስ ያንብቡ።
ይህንን ውህደት በብዙ ጭነቶች ውስጥ ስለምንጠቀም, መጫኑን በራስ ሰር አድርገነዋል. ለዚህ የሚያስፈልጉ ምንጮች በ ውስጥ ታትመዋል
ስክሪፕቱ ዳሽቦርድን በክላስተር ውስጥ ይጭናል እና ከ 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 ይሂዱ - እና ለወደፊቱ ፓነል አዲስ መተግበሪያ ማከል ያስፈልግዎታል። “ኩበርኔትስ ዳሽቦርድ” እንበለው፡-
በማከል የተነሳ 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
ይዋል ይደር እንጂ ሁሉም ነገር ይጀምራል ፈቃድ ወዲያውኑ አይሰራም! እውነታው ግን ጥቅም ላይ የዋለው ምስል (በሌሎች ምስሎች ውስጥ ያለው ሁኔታ ተመሳሳይ ነው) በመልሶ መደወል ላይ የማዞሪያ ሂደትን የመያዙ ሂደት በትክክል አልተተገበረም. ይህ ሁኔታ መሐላ በራሱ የሚሰጠንን ኩኪ ወደመሆኑ ይመራል...
ችግሩ የሚፈታው የራስዎን የመሃላ ምስል በፕላስተር በመገንባት ነው።
መሐላውን ያስተካክሉ እና እንደገና ጫን
ይህንን ለማድረግ, የሚከተለውን 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 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 መዳረሻ ያላቸው ሁሉም ተጠቃሚዎች ወደ ዳሽቦርድ መዳረሻ ያገኛሉ። ከዳሽቦርዱ ራሱ መብቶች ጋር የሚዛመደው በዳሽቦርዱ ውስጥ ተመሳሳይ መዳረሻ አላቸው።
በዳሽቦርዱ ውስጥ ካሉት ጉልህ ጉዳቶች መካከል የሚከተሉትን አስተውያለሁ።
- ወደ ኢንቲት ኮንቴይነሩ ኮንሶል ውስጥ ለመግባት የማይቻል ነው;
- ምንም እንኳን ይህ በClusterRole ውስጥ ሊስተካከል የሚችል ቢሆንም Deployments እና StatefulSetsን ማርትዕ አይቻልም።
- የዳሽቦርድ ተኳኋኝነት ከቅርብ ጊዜዎቹ የኩበርኔትስ ስሪቶች እና የፕሮጀክቱ የወደፊት ሁኔታ ጥያቄዎችን ያስነሳል።
የመጨረሻው ችግር ልዩ ትኩረት ሊሰጠው ይገባል.
ዳሽቦርድ ሁኔታ እና አማራጮች
የዳሽቦርድ ተኳሃኝነት ሠንጠረዥ ከኩበርኔትስ ልቀቶች ጋር ፣በቅርቡ የፕሮጀክቱ ሥሪት ቀርቧል (
ይህ ቢሆንም፣ (ቀድሞውንም በጃንዋሪ ተቀባይነት አግኝቷል)
በመጨረሻም ከዳሽቦርድ አማራጮች አሉ። ከነሱ መካክል:
-
K8 ዳሽ - ወጣት በይነገጽ (የመጀመሪያው የሚፈፀመው በዚህ ዓመት መጋቢት ወር ላይ ነው) ፣ እሱም ቀድሞውኑ ጥሩ ባህሪዎችን ይሰጣል ፣ ለምሳሌ የእቃዎቹን ስብስብ እና የአስተዳደር ሁኔታን የሚያሳይ ምስላዊ መግለጫ። እንደ "እውነተኛ ጊዜ በይነገጽ" ተቀምጧል, ምክንያቱም በአሳሹ ውስጥ ገጹን ማደስ ሳያስፈልግ የሚታየውን ውሂብ በራስ-ሰር ያዘምናል። -
OpenShift Console - የድረ-ገጽ በይነገጽ ከ Red Hat OpenShift, ሆኖም ግን, የፕሮጀክቱን ሌሎች እድገቶችን ወደ ክላስተርዎ ያመጣል, ይህም ለሁሉም ሰው ተስማሚ አይደለም. -
Kubernator ሁሉንም የክላስተር ዕቃዎችን የማየት ችሎታ ያለው እንደ ዝቅተኛ ደረጃ (ከዳሽቦርድ) በይነገጽ የተፈጠረ አስደሳች ፕሮጀክት ነው። ይሁን እንጂ እድገቱ የቆመ ይመስላል. -
ፖላሪስ - ልክ ሌላ ቀንአስታወቀ የአንድ ፓነል ተግባራትን የሚያጣምር ፕሮጀክት (የእዝባውን ወቅታዊ ሁኔታ ያሳያል ነገር ግን ዕቃዎቹን የማያስተዳድር) እና አውቶማቲክ “ምርጥ ልምዶችን ማረጋገጥ” (በውስጡ የሚሄዱትን የዲፕሎይመንት ውቅረቶች ትክክለኛነት ለማረጋገጥ ክላስተርን ያረጋግጣል)።
ከመደምደም ይልቅ
ዳሽቦርድ ለምናገለግላቸው የኩበርኔትስ ስብስቦች መደበኛ መሳሪያ ነው። ከ GitLab ጋር ያለው ውህደት እንዲሁ የእኛ ነባሪ ጭነት አካል ሆኗል፣ ምክንያቱም ብዙ ገንቢዎች በዚህ ፓነል ላይ ስላላቸው ችሎታ በጣም ስለሚደሰቱ።
የኩበርኔትስ ዳሽቦርድ በየጊዜው ከክፍት ምንጭ ማህበረሰብ አማራጮች አሉት (እና እነሱን ከግምት ውስጥ ስናስገባ ደስተኞች ነን) ግን በዚህ ደረጃ በዚህ መፍትሄ እንቀጥላለን።
PS
በብሎጋችን ላይ ያንብቡ፡-
- «
kubebox እና ሌሎች ዛጎሎች ለ Kubernetes "; - «
ከ Kubernetes እና GitLab ጋር ያሉ ምርጥ የሲአይ/ሲዲ ልምዶች (የግምገማ እና የቪዲዮ ዘገባ) "; - «
dapp እና GitLab CI በመጠቀም በኩበርኔትስ ውስጥ መተግበሪያዎችን ይገንቡ እና ያሰማሩ "; - «
GitLab CI ለቀጣይ ውህደት እና በምርት ውስጥ ማድረስ። ክፍል 1: የእኛ ቧንቧ ».
ምንጭ: hab.com