E hōʻoia i nā Kubernetes me ka hoʻohana ʻana iā GitHub OAuth a me Dex
Ke hōʻike aku nei au iā ʻoe i kahi aʻoaʻo no ka hoʻomohala ʻana i kahi hui Kubernetes me Dex, dex-k8s-authenticator a me GitHub.
Meme kūloko mai ka ʻōlelo Lūkini Kubernetes kamaʻilio ma Telegram
Hōʻike
Hoʻohana mākou i nā Kubernetes e hana i nā kaiapuni ikaika no ka hoʻomohala a me ka hui QA. No laila makemake mākou e hāʻawi iā lākou i ke komo ʻana i ka hui no ka dashboard a me kubectl. ʻAʻole like me OpenShift, ʻaʻohe o vanilla Kubernetes i ka hōʻoia maoli, no laila hoʻohana mākou i nā mea hana ʻaoʻao ʻekolu no kēia.
GitHub - no ka mea hoʻohana mākou iā GitHub i kā mākou hui
Ua ho'āʻo mākou e hoʻohana iā Google OIDC, akā naʻe, ʻo mākou ua hāʻule e hoʻomaka iā lākou me nā hui, no laila ua kūpono ka hoʻohui ʻana me GitHub iā mākou. Me ka ʻole o ka palapala ʻāina hui, ʻaʻole hiki ke hana i nā kulekele RBAC e pili ana i nā hui.
No laila, pehea e hana ai kā mākou hana ʻae Kubernetes ma kahi hōʻike ʻike.
Kaʻina hana mana
ʻO kahi kikoʻī hou aʻe a me kahi kikoʻī:
Hoʻopili ka mea hoʻohana i dex-k8s-authenticator (login.k8s.example.com)
Hoʻouna ʻo dex-k8s-authenticator i ka noi iā Dex (dex.k8s.example.com)
Hoʻihoʻi hou ʻo Dex i ka ʻaoʻao inoa inoa ʻo GitHub
Hoʻopuka ʻo GitHub i ka ʻike mana kūpono a hoʻihoʻi iā Dex
Hāʻawi ʻo Dex i ka ʻike i loaʻa iā dex-k8s-authenticator
Loaʻa ka mea hoʻohana i kahi hōʻailona OIDC mai GitHub
Hoʻohui ʻo dex-k8s-authenticator i ka hōʻailona i kubeconfig
Hāʻawi ʻo kubectl i ka hōʻailona iā KubeAPIServer
Hoʻihoʻi ʻo KubeAPIServer i nā komo i kubectl ma muli o ka hōʻailona i hala
Loaʻa ka mea hoʻohana mai kubectl
Nā hana hoʻomākaukau
ʻOiaʻiʻo, ua loaʻa iā mākou kahi hui Kubernetes i hoʻokomo ʻia (k8s.example.com), a hele pū me HELM i hoʻokomo mua ʻia. Loaʻa iā mākou kahi hui ma GitHub (super-org).
Inā ʻaʻohe HELM, e hoʻokomo iā ia he mea maʻalahi.
Pono mua mākou e hoʻonohonoho iā GitHub.
E hele i ka ʻaoʻao hoʻonohonoho hoʻonohonoho, (https://github.com/organizations/super-org/settings/applications) a hana i kahi noi hou (Authorized OAuth App):
Ke hana nei i kahi noi hou ma GitHub
E hoʻopiha i nā kahua me nā URL kūpono, no ka laʻana:
E makaʻala me nā loulou, he mea nui ʻaʻole e nalowale nā ʻoki.
I ka pane ʻana i kahi palapala i hoʻopau ʻia, e hana ʻo GitHub Client ID и Client secret, mālama iā lākou ma kahi palekana, e pono iā mākou (e laʻana, hoʻohana mākou Vault no ka mālama ʻana i nā mea huna):
E hele i ka ʻaoʻao komo (https://login.k8s.example.com) a komo i ka hoʻohana ʻana i kāu moʻokāki GitHub:
ʻAoʻao komo
Hoʻihoʻi ʻia ka ʻaoʻao komo i GitHub
E hahai i nā kuhikuhi i hana ʻia no ka loaʻa ʻana
Ma hope o ka hoʻopaʻa kope ʻana mai ka ʻaoʻao pūnaewele, hiki iā mākou ke hoʻohana i ka kubectl e hoʻokele i kā mākou kumu waiwai cluster:
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 hana ia, hiki i nā mea hoʻohana a pau o GitHub i kā mākou hui ke ʻike i nā kumuwaiwai a komo i loko o nā pods, akā ʻaʻohe o lākou kuleana e hoʻololi iā lākou.