ProHoster > Blog > башкаруу > GitHub OAuth жана Dex аркылуу Kubernetes'те аныктыгын текшериңиз
GitHub OAuth жана Dex аркылуу Kubernetes'те аныктыгын текшериңиз
Мен сиздердин назарыңыздарга Dex, dex-k8s-authenticator жана GitHub аркылуу Kubernetes кластерине кирүү мүмкүнчүлүгүн түзүү боюнча окуу куралын сунуштайм.
Орус тилдүү Kubernetes жергиликтүү мем чатта телеграмма
тааныштыруу
Биз иштеп чыгуу жана QA командасы үчүн динамикалык чөйрөлөрдү түзүү үчүн Kubernetes колдонобуз. Ошентип, биз аларга башкаруу тактасы жана kubectl үчүн кластерге кирүү мүмкүнчүлүгүн бергибиз келет. OpenShiftтен айырмаланып, vanilla Kubernetesтин түпнуска аутентификациясы жок, андыктан биз бул үчүн үчүнчү тараптын куралдарын колдонобуз.
GitHub - жөн гана биздин компанияда GitHub колдонгонубуз үчүн
Биз Google OIDC колдонууга аракет кылдык, бирок, тилекке каршы, биз болбой калды аларды топтор менен баштоо үчүн, ошондуктан GitHub менен интеграция бизге абдан ылайыктуу. Топтук картасыз, топторго негизделген RBAC саясатын түзүү мүмкүн эмес.
Ошентип, биздин Kubernetes авторизация процесси визуалдык өкүлчүлүктө кантип иштейт:
GitHub керектүү авторизация маалыматын жаратат жана аны Dexке кайтарат
Dex алынган маалыматты dex-k8s-аныктыгын текшерүүчүгө өткөрүп берет
Колдонуучу GitHubдан OIDC белгисин алат
dex-k8s-authenticator kubeconfig токенин кошот
kubectl токенди KubeAPIServerге өткөрөт
KubeAPIServer өткөрүп берилген токендин негизинде kubectl мүмкүнчүлүгүн кайтарат
Колдонуучу kubectlден мүмкүнчүлүк алат
Даярдык иш-аракеттери
Албетте, бизде Kubernetes кластери орнотулган (k8s.example.com), ошондой эле алдын ала орнотулган HELM менен келет. Бизде GitHub (super-org) боюнча дагы уюм бар.
Эгер сизде HELM жок болсо, аны орнотуңуз өтө жөнөкөй.
Биринчиден, биз GitHub орнотуу керек.
Уюмдун жөндөөлөр барагына өтүңүз, (https://github.com/organizations/super-org/settings/applications) жана жаңы тиркемени түзүңүз (Authorized OAuth App):
GitHub боюнча жаңы тиркеме түзүү
Керектүү URL даректери менен талааларды толтуруңуз, мисалы:
Башкы бет URL: https://dex.k8s.example.com
Уруксат кайра чалуу URL: https://dex.k8s.example.com/callback
Шилтемелерден этият болуңуз, сызыктарды жоготпоо маанилүү.
Толтурулган формага жооп катары GitHub жаратат Client ID и Client secret, аларды коопсуз жерде сактаңыз, алар бизге пайдалуу болот (мисалы, биз колдонобуз жыйнак сырларды сактоо үчүн):
Кирүү барагына өтүңүз (https://login.k8s.example.com) жана GitHub каттоо эсебиңиз менен кириңиз:
Кирүү барагы
Кирүү барагы GitHub'ка багытталды
Мүмкүнчүлүк алуу үчүн түзүлгөн нускамаларды аткарыңыз
Веб баракчадан көчүрүп чаптагандан кийин, кластердик ресурстарыбызды башкаруу үчүн kubectl колдоно алабыз:
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"
Жана ал иштейт, биздин уюмдагы бардык GitHub колдонуучулары ресурстарды көрүп, подкасттарга кире алышат, бирок аларды өзгөртүүгө укуктары жок.