ProHoster > Blog > Tsamaiso > Netefatsa ho Kubernetes u sebelisa GitHub OAuth le Dex
Netefatsa ho Kubernetes u sebelisa GitHub OAuth le Dex
Ke fana ka tlhokomelo ea hau thuto ea ho hlahisa phihlello ho sehlopha sa Kubernetes ho sebelisa Dex, dex-k8s-authenticator le GitHub.
Meme ea lehae e tsoang ho Kubernetes ea puo ea Serussia thelekramo
Selelekela
Re sebelisa Kubernetes ho theha tikoloho e matla bakeng sa nts'etsopele le sehlopha sa QA. Kahoo re batla ho ba fa monyetla oa ho kena sehlopheng sa dashboard le kubectl. Ho fapana le OpenShift, vanilla Kubernetes ha e na netefatso ea lehae, ka hona re sebelisa lisebelisoa tsa mokha oa boraro bakeng sa sena.
GitHub - hobane feela re sebelisa GitHub k'hamphaning ea rona
Re lekile ho sebelisa Google OIDC, empa ka bomalimabe re hlotsoe ho li qala ka lihlopha, kahoo ho kopanngoa le GitHub ho ne ho re tšoanela hantle. Ntle le 'mapa oa lihlopha, ho ke ke ha khoneha ho theha maano a RBAC ho latela lihlopha.
Joale, ts'ebetso ea rona ea tumello ea Kubernetes e sebetsa joang ka boemeli ba pono:
Ts'ebetso ea tumello
Lintlha tse ling le ntlha ka ntlha:
Mosebelisi o kena ho dex-k8s-authenticator (login.k8s.example.com)
dex-k8s-authenticator e fetisetsa kopo ho Dex (dex.k8s.example.com)
Dex e lebisa leqepheng la ho kena la GitHub
GitHub e hlahisa tlhahisoleseling e hlokahalang ea tumello mme e e khutlisetsa ho Dex
Dex e fetisetsa tlhahisoleseling ho dex-k8s-authenticator
Mosebelisi o fumana letšoao la OIDC ho tsoa ho GitHub
dex-k8s-authenticator e eketsa letšoao ho kubeconfig
kubectl e fetisetsa letšoao ho KubeAPIServer
KubeAPIServer e khutlisetsa phihlello ho kubectl ho ipapisitsoe le tokeneng e fetileng
Mosebelisi o fumana phihlello ho tsoa ho kubectl
Mesebetsi ea boitokisetso
Ehlile, re se re ntse re e-na le sehlopha sa Kubernetes se kentsoeng (k8s.example.com), hape e tla le HELM e kentsoeng pele. Re boetse re na le mokhatlo ho GitHub (super-org).
Haeba u sena HELM, e kenye bonolo haholo.
Pele re hloka ho theha GitHub.
Eya leqepheng la litlhophiso tsa mokhatlo, (https://github.com/organizations/super-org/settings/applications) 'me u thehe sesebelisoa se secha (App Authorized OAuth):
Ho theha sesebelisoa se secha ho GitHub
Tlatsa masimo ka li-URL tse hlokahalang, mohlala:
URL ea leqephe la lehae: https://dex.k8s.example.com
URL ea tumello ea ho letsetsa: https://dex.k8s.example.com/callback
E-ba hlokolosi ka li-link, ke habohlokoa hore u se ke ua lahleheloa ke li-slashes.
Ho arabela foromo e tlatsitsoeng, GitHub e tla hlahisa Client ID и Client secret, li boloke sebakeng se sireletsehileng, li tla ba molemo ho rona (mohlala, re li sebelisa Ho phatloha bakeng sa ho boloka liphiri):
Eya leqepheng la ho kena (https://login.k8s.example.com) 'me u kenelle u sebelisa ak'haonte ea hau ea GitHub:
Leqephe la ho kena
Leqephe la ho kena le fetiselitsoe ho GitHub
Latela litaelo tse hlahisitsoeng ho fumana phihlello
Kamora ho kopitsa ho tsoa leqepheng la sebaka sa marang-rang, re ka sebelisa kubectl ho laola lisebelisoa tsa rona tsa sehlopha:
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"
'Me e ea sebetsa, basebelisi bohle ba GitHub mokhatlong oa rona ba ka bona lisebelisoa le ho kena ka har'a li-pods, empa ha ba na litokelo tsa ho li fetola.