Bidh mi a’ toirt dhut oideachadh airson a bhith a’ gineadh ruigsinneachd gu cruinneachadh Kubernetes a’ cleachdadh Dex, dex-k8s-authenticator agus GitHub.
Meme ionadail bhon chat ann an cànan na Ruis Kubernetes teileagram
Ro-ràdh
Bidh sinn a’ cleachdadh Kubernetes gus àrainneachdan fiùghantach a chruthachadh airson an sgioba leasachaidh agus QA. Mar sin tha sinn airson cothrom a thoirt dhaibh faighinn chun bhuidheann airson an deas-bhòrd agus kubectl. Eu-coltach ris an aon OpenShift, chan eil dearbhadh dùthchasach aig vanilla Kubernetes, agus mar sin bidh sinn a’ cleachdadh innealan treas-phàrtaidh airson seo.
GitHub - dìreach air sgàth gu bheil sinn a’ cleachdadh GitHub nar companaidh
Dh'fheuch sinn ri Google OIDC a chleachdadh, ach gu mì-fhortanach tha sinn fàilligeadh gus an tòiseachadh le buidhnean, agus mar sin bha an aonachadh le GitHub freagarrach dhuinn gu math. Às aonais mapadh buidhne, cha bhith e comasach poileasaidhean RBAC a chruthachadh stèidhichte air buidheann.
Mar sin, ciamar a tha ar pròiseas ceadachaidh Kubernetes ag obair ann an riochdachadh lèirsinneach:
Pròiseas ceadachaidh
Beagan a bharrachd mion-fhiosrachaidh agus puing air puing:
Bidh cleachdaiche a’ logadh a-steach do dex-k8s-authenticator (login.k8s.example.com)
dex-k8s-authenticator ag ath-stiùireadh an iarrtais gu Dex (dex.k8s.example.com)
Bidh Dex ag ath-stiùireadh gu duilleag logadh a-steach GitHub
Bidh GitHub a’ gineadh am fiosrachadh ùghdarrais a tha a dhìth agus ga thilleadh gu Dex
Bidh Dex a’ toirt seachad an fhiosrachaidh a fhuaireadh gu dex-k8s-authenticator
Bidh cleachdaiche a’ faighinn tòcan OIDC bho GitHub
dex-k8s-authenticator a’ cur tòcan ri kubeconfig
kubectl a’ dol seachad air tòcan gu KubeAPIServer
Bidh KubeAPIServer stèidhichte air an tòcan a chaidh seachad a’ tilleadh ruigsinneachd gu kubectl
Ruigsinneachd luchd-cleachdaidh bho kubectl
Gnìomhan ullachaidh
Gu dearbh, tha cruinneachadh Kubernetes againn mu thràth air a chuir a-steach (k8s.example.com), a bharrachd air HELM ro-stàlaichte. Tha buidheann againn cuideachd air GitHub (super-org).
Mura h-eil HELM agad, stàlaich e gu math sìmplidh.
An toiseach feumaidh sinn GitHub a stèidheachadh.
Rach gu duilleag roghainnean na buidhne, (https://github.com/organizations/super-org/settings/applications) agus cruthaich tagradh ùr (App OAuth Ùghdarraichte):
Cruthaich app ùr air GitHub
Lìon a-steach na raointean leis na URLan riatanach, mar eisimpleir:
URL na duilleige-dachaigh: https://dex.k8s.example.com
URL fios air ais ceadachaidh: https://dex.k8s.example.com/callback
Bi faiceallach le ceanglaichean, tha e cudromach gun a bhith a 'call slashes.
Mar fhreagairt don fhoirm chrìochnaichte, ginidh GitHub Client ID и Client secret, sàbhail iad ann an àite sàbhailte, bidh iad feumail dhuinn (mar eisimpleir, bidh sinn a 'cleachdadh Bùrn airson dìomhaireachdan a chumail):
Feuch an dèan sinn cinnteach dè cho feumail sa tha na seirbheisean (bu chòir dha Dex còd 400 a thilleadh, agus bu chòir do dex-k8s-authenticator còd 200 a thilleadh):
curl -sI https://dex.k8s.example.com/callback | head -1
HTTP/2 400
curl -sI https://login.k8s.example.com/ | head -1
HTTP/2 200
rèiteachadh RBAC
Cruthaich ClusterRole airson a’ chuantail, anns a’ chùis againn le ruigsinneachd leughaidh a-mhàin:
Rach gu duilleag logadh a-steachhttps://login.k8s.example.com) agus log a-steach le cunntas GitHub:
Duilleag ceadachaidh
Duilleag ceadachaidh air ath-stiùireadh gu GitHub
Lean an stiùireadh a chaidh a chruthachadh gus faighinn a-steach
Às deidh dhuinn leth-bhreac a dhèanamh bhon duilleag-lìn, is urrainn dhuinn kubectl a chleachdadh gus na goireasan cnuasachaidh againn a riaghladh:
kubectl get po
NAME READY STATUS RESTARTS AGE
mypod 1/1 Running 0 3d
kubectl delete po mypod
Error from server (Forbidden): pods "mypod" is forbidden: User "[email protected]" cannot delete pods in the namespace "default"
Agus bidh e ag obair, chì a h-uile neach-cleachdaidh GitHub sa bhuidheann againn goireasan agus logadh a-steach gu Pods, ach chan eil cead aca an atharrachadh.