ProHoster > Blog > Rêveberî > Di Kubernetes de bi karanîna GitHub OAuth û Dex verast bikin
Di Kubernetes de bi karanîna GitHub OAuth û Dex verast bikin
Ez ji bo hilberîna gihandina komek Kubernetes bi karanîna Dex, dex-k8s-authenticator û GitHub fêrbûnek pêşkêşî we dikim.
Memê herêmî ji sohbeta Kubernetes a bi zimanê rûsî tê de Têlxiram
Pîrozbahiyê
Em Kubernetes bikar tînin da ku ji bo pêşkeftin û tîmê QA hawîrdorên dînamîkî biafirînin. Ji ber vê yekê em dixwazin hem ji bo dashboard û hem jî kubectl bigihîjin komê. Berevajî OpenShift, vanilla Kubernetes ne xwedan pejirandina xwemalî ye, ji ber vê yekê em ji bo vê amûrên sêyemîn bikar tînin.
GitHub - tenê ji ber ku em GitHub di pargîdaniya xwe de bikar tînin
Me hewl da ku Google OIDC bikar bînin, lê mixabin me nekin ku em wan bi koman bidin dest pê kirin, ji ber vê yekê entegrasyona bi GitHub re pir baş li me xweş bû. Bêyî nexşeya komê, dê ne gengaz be ku li ser bingeha koman polîtîkayên RBAC werin afirandin.
Ji ber vê yekê, pêvajoya destûra meya Kubernetes çawa di nûneriyek dîtbar de dixebite:
dex-k8s-authenticator daxwazê ji Dex re dişîne (dex.k8s.example.com)
Dex beralî dike rûpela têketina GitHub
GitHub agahdariya destûrnameyê ya pêwîst diafirîne û li Dex vedigerîne
Dex agahdariya wergirtî ji dex-k8s-authenticator re derbas dike
Bikarhêner nîşanek OIDC ji GitHub distîne
dex-k8s-authenticator token li kubeconfig zêde dike
kubectl tokenê ji KubeAPIServer re derbas dike
KubeAPIServer li ser bingeha tokena derbasbûyî gihîştina kubectl vedigerîne
Bikarhêner ji kubectl tê gihîştinê
Çalakiyên amadekar
Bê guman, me jixwe komek Kubernetes sazkirî ye (k8s.example.com), û di heman demê de bi HELM-a pêş-sazkirî re jî tê. Li ser GitHub (super-org) rêxistinek me jî heye.
Heke we HELM tune, wê saz bikin pir hêsan e.
Pêşî divê em GitHub saz bikin.
Biçe rûpela mîhengên rêxistinê, (https://github.com/organizations/super-org/settings/applications) û serîlêdanek nû biafirînin (Authorized OAuth App):
Ji lînkan haydar bin, girîng e ku şikestî winda nekin.
Di bersiva formek dagirtî de, GitHub dê çêbike Client ID и Client secret, wan li cîhek ewle bihêlin, ew ê ji me re kêrhatî bin (mînak, em bikar tînin Jûra qasê ji bo veşartina razan):
Biçe rûpela têketinê (https://login.k8s.example.com) û bi karanîna hesabê xweya GitHub têkevin:
Rûpelê têketinê
Rûpelê têketinê ji GitHub re hate verast kirin
Rêwerzên çêkirî bişopînin da ku bigihîjin
Piştî kopî-paskirina ji rûpela malperê, em dikarin kubectl bikar bînin da ku çavkaniyên komê birêve bibin:
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"
Û ew dixebite, hemî bikarhênerên GitHub di rêxistina me de dikarin çavkaniyan bibînin û têkevin nav podan, lê mafên wan tune ku wan biguhezînin.