Motuhēhē ki ngā Kubernetes mā te whakamahi i te GitHub OAuth me Dex
Ka whakaatu atu ahau ki a koe he akoranga mo te whakaputa uru ki te roopu Kubernetes ma te whakamahi i te Dex, dex-k8s-authenticator me GitHub.
Ko nga meme o te rohe mai i nga korero a Kubernetes reo Ruhia waea
Whakataki
Ka whakamahi matou i nga Kubernetes ki te hanga taiao hihiri mo te whanaketanga me te roopu QA. Na e hiahia ana matou ki te hoatu ki a ratou te uru ki te tautau mo te papatohu me te kubectl. Kaore i rite ki a OpenShift, kahore he motuhēhēnga taketake o vanilla Kubernetes, no reira ka whakamahia e matou nga taputapu tuatoru mo tenei.
GitHub - na te mea ka whakamahia e matou a GitHub i roto i ta maatau kamupene
I ngana matou ki te whakamahi i a Google OIDC, engari ko matou i rahua ki te timata i a raatau me nga roopu, na te whakaurunga ki a GitHub he pai ki a maatau. Ki te kore he mahere a-rōpū, kaore e taea te hanga kaupapa here RBAC i runga i nga roopu.
Na, me pehea te mahi a to tatou tukanga whakamanatanga Kubernetes i roto i te whakaaturanga ataata:
Te tukanga whakamana
He iti ake nga korero me te tohu ma te tohu:
Ka takiuru te kaiwhakamahi ki te dex-k8s-authenticator (login.k8s.example.com)
Ka tukuna e dex-k8s-authenticator te tono ki a Dex (dex.k8s.example.com)
Ka huri a Dex ki te wharangi takiuru GitHub
Ka hangaia e GitHub nga korero whakamana e tika ana, ka whakahokia ki a Dex
Ka tukuna e Dex nga korero kua riro ki te dex-k8s-authenticator
Ka whiwhi te kaiwhakamahi i tetahi tohu OIDC mai i GitHub
Ko te dex-k8s-authenticator te taapiri tohu ki te kubeconfig
Ka tukuna e kubectl te tohu ki a KubeAPIServer
Ka whakahokia e KubeAPIServer nga urunga ki te kubectl i runga i te tohu kua paahitia
Ka uru te kaiwhakamahi mai i te kubectl
Nga Mahi Whakarite
Ae ra, kua whakauruhia he kahui Kubernetes (k8s.example.com), ka tae mai ano me te HELM kua oti te whakauru. He whakahaere ano ta matou mo GitHub (super-org).
Mena karekau he HELM, whakauruhia tino māmā.
Tuatahi me whakarite a GitHub.
Haere ki te wharangi tautuhinga whakahaere, (https://github.com/organizations/super-org/settings/applications) ka waihangahia he tono hou (Taupāpa OAuth Whakamana):
Te hanga tono hou ki GitHub
Whakakiia nga mara ki nga URL e tika ana, hei tauira:
Kia tupato ki nga hononga, he mea nui kia kaua e ngaro nga whiu.
Hei whakautu ki tetahi puka kua oti, ka whakaputa a GitHub Client ID и Client secret, kia mau ki tetahi waahi haumaru, ka whai hua ki a maatau (hei tauira, ka whakamahia e matou Vault mo te rokiroki mea ngaro):
Haere ki te wharangi takiuru (https://login.k8s.example.com) ka takiuru ma te whakamahi i to putea GitHub:
Whārangi takiuru
Ko te whaarangi takiuru kua tukuna ki GitHub
Whaia nga tohutohu i hangaia kia whai waahi
Whai muri i te kape-piri mai i te wharangi paetukutuku, ka taea e matou te whakamahi kubectl ki te whakahaere i a matou rauemi roopu:
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"
A ka pai, ka taea e nga kaiwhakamahi GitHub katoa i roto i ta maatau whakahaere te kite i nga rauemi me te takiuru ki nga poti, engari kaore o raatau mana ki te whakarereke.