เจเฉเจฌเจฐเจจเฉเจเจธ เจจเฉเฉฐ เจเจชเจฃเฉ LDAP เจธเจฐเจตเจฐ เจจเจพเจฒ เจเจจเฉเจเจ เจเจฐเจจ เจ เจคเฉ เจเจชเจญเฉเจเจคเจพเจตเจพเจ เจ เจคเฉ เจธเจฎเฉเจนเจพเจ เจฆเฉ เจเจฏเจพเจค เจจเฉเฉฐ เจเฉเจเจซเจฟเจเจฐ เจเจฐเจจ เจฒเจ เจคเฉเจธเฉเจ เจเฉเจเจฒเฉเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฟเจตเฉเจ เจเจฐ เจธเจเจฆเฉ เจนเฉ เจเจธ เจฌเจพเจฐเฉ เจเฉฑเจ เจเฉเจเจพ เจเจฟเจเจเฉเจฐเจฟเจ เจฒเฅค เจเจน เจคเฉเจนเจพเจจเฉเฉฐ เจเจชเจฃเฉ เจเจชเจญเฉเจเจคเจพเจตเจพเจ เจฒเจ RBAC เจเฉเจเจซเจฟเจเจฐ เจเจฐเจจ เจ เจคเฉ เจเฉเจฌเจฐเจจเฉเจเจธ เจกเฉเจธเจผเจฌเฉเจฐเจก เจ เจคเฉ เจนเฉเจฐ เจเจชเจฒเฉเจเฉเจธเจผเจจเจพเจ เจจเฉเฉฐ เจธเฉเจฐเฉฑเจเจฟเจ เจค เจเจฐเจจ เจฒเจ เจชเฉเจฐเจฎเจพเจฃ-เจชเฉเจฐเจพเจเจธเฉ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจ เจฆเฉ เจเจเจฟเจ เจฆเฉเจตเฉเจเจพ เจเฉ เจเจชเจฃเฉ เจเจช เจจเฉเฉฐ เจชเฉเจฐเจฎเจพเจฃเจฟเจค เจจเจนเฉเจ เจเจฐ เจธเจเจฆเฉ เจนเจจเฅค
เจเฉเจเจฒเฉเจ เจเฉฐเจธเจเจพเจฒเฉเจธเจผเจจ
เจฎเฉฐเจจ เจฒเจ เจเจฟ เจคเฉเจนเจพเจกเฉ เจเฉเจฒ เจชเจนเจฟเจฒเจพเจ เจนเฉ เจเฉฑเจ LDAP เจธเจฐเจตเจฐ เจนเฉเฅค เจเจน เจเจเจเจฟเจต เจกเจพเจเจฐเฉเจเจเจฐเฉ, เจซเฉเจฐเฉเจเจเจชเฉเจ, เจเจชเจจเจเจฒเจกเฉเจเจชเฉ เจเจพเจ เจนเฉเจฐ เจเฉเจ เจตเฉ เจนเฉ เจธเจเจฆเจพ เจนเฉเฅค เจเฉเจเจฐ เจคเฉเจนเจพเจกเฉ เจเฉเจฒ LDAP เจธเจฐเจตเจฐ เจจเจนเฉเจ เจนเฉ, เจคเจพเจ เจธเจฟเจงเจพเจเจคเจ เจคเฉเจฐ 'เจคเฉ เจคเฉเจธเฉเจ Keycloak เจเฉฐเจเจฐเจซเฉเจธ เจตเจฟเฉฑเจ เจธเจฟเฉฑเจงเฉ เจเจชเจญเฉเจเจคเจพ เจฌเจฃเจพ เจธเจเจฆเฉ เจนเฉ, เจเจพเจ เจเจจเจคเจ oidc เจชเฉเจฐเจฆเจพเจคเจพ (Google, Github, Gitlab) เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐ เจธเจเจฆเฉ เจนเฉ, เจจเจคเฉเจเจพ เจฒเจเจญเจ เจเฉฑเจเฉ เจเจฟเจนเจพ เจนเฉเจตเฉเจเจพเฅค
เจธเจญ เจคเฉเจ เจชเจนเจฟเจฒเจพเจ, เจเจ เจเจชเจพเจ เจเฉเจเจฒเฉเจ เจจเฉเฉฐ เจธเจฅเจพเจชเจฟเจค เจเจฐเฉเจเฅค เจเฉฐเจธเจเจพเจฒเฉเจธเจผเจจ เจจเฉเฉฐ เจตเฉฑเจเจฐเฉ เจคเฉเจฐ 'เจคเฉ เจเจพเจ เจธเจฟเฉฑเจงเฉ เจเฉเจฌเจฐเจจเฉเจเจธ เจเจฒเฉฑเจธเจเจฐ เจตเจฟเฉฑเจ เจเฉเจคเจพ เจเจพ เจธเจเจฆเจพ เจนเฉเฅค เจเฉฑเจ เจจเจฟเจฏเจฎ เจฆเฉ เจคเฉเจฐ 'เจคเฉ, เจเฉเจเจฐ เจคเฉเจนเจพเจกเฉ เจเฉเจฒ เจเจ เจเฉเจฌเจฐเจจเฉเจเจธ เจเจฒเฉฑเจธเจเจฐ เจนเจจ, เจคเจพเจ เจเจธเจจเฉเฉฐ เจตเฉฑเจเจฐเฉ เจคเฉเจฐ 'เจคเฉ เจเฉฐเจธเจเจพเจฒ เจเจฐเจจเจพ เจเจธเจพเจจ เจนเฉเจตเฉเจเจพเฅค เจฆเฉเจเฉ เจชเจพเจธเฉ, เจคเฉเจธเฉเจ เจนเจฎเฉเจธเจผเจพเจ เจตเจฐเจค เจธเจเจฆเฉ เจนเฉ
เจเฉเจเจฒเฉเจ เจกเฉเจเจพ เจจเฉเฉฐ เจธเจเฉเจฐ เจเจฐเจจ เจฒเจ เจคเฉเจนเจพเจจเฉเฉฐ เจเฉฑเจ เจกเฉเจเจพเจฌเฉเจธ เจฆเฉ เจฒเฉเฉ เจนเฉเจตเฉเจเฉเฅค เจกเจฟเจซเจพเจฒเจ เจนเฉ h2
(เจธเจพเจฐเจพ เจกเฉเจเจพ เจธเจฅเจพเจจเจ เจคเฉเจฐ 'เจคเฉ เจธเจเฉเจฐ เจเฉเจคเจพ เจเจพเจเจฆเจพ เจนเฉ), เจชเจฐ เจเจธเจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจเจพ เจตเฉ เจธเฉฐเจญเจต เจนเฉ postgres
, mysql
เจ mariadb
.
เจเฉเจเจฐ เจคเฉเจธเฉเจ เจ
เจเฉ เจตเฉ เจเฉเจเจฒเฉเจ เจจเฉเฉฐ เจตเฉฑเจเจฐเฉ เจคเฉเจฐ 'เจคเฉ เจธเจฅเจพเจชเจค เจเจฐเจจ เจฆเจพ เจซเฉเจธเจฒเจพ เจเจฐเจฆเฉ เจนเฉ, เจคเจพเจ เจคเฉเจนเจพเจจเฉเฉฐ เจเจธ เจตเจฟเฉฑเจ เจนเฉเจฐ เจตเจฟเจธเจคเฉเจฐเจฟเจค เจจเจฟเจฐเจฆเฉเจธเจผ เจฎเจฟเจฒเจฃเจเฉ
เจซเฉเจกเจฐเฉเจธเจผเจจ เจฆเฉ เจธเจฅเจพเจชเจจเจพ
เจธเจญ เจคเฉเจ เจชเจนเจฟเจฒเจพเจ, เจเจ เจเฉฑเจ เจจเจตเจพเจ เจเฉเจคเจฐ เจฌเจฃเจพเจเจเฅค เจเฉเจคเจฐ เจธเจพเจกเฉ เจ เจฐเจเจผเฉ เจฆเจพ เจธเจฅเจพเจจ เจนเฉ. เจนเจฐเฉเจ เจเจชเจฒเฉเจเฉเจธเจผเจจ เจฆเจพ เจตเฉฑเจ-เจตเฉฑเจ เจเจชเจญเฉเจเจคเจพเจตเจพเจ เจ เจคเฉ เจ เจงเจฟเจเจพเจฐ เจธเฉเจเจฟเฉฐเจเจพเจ เจจเจพเจฒ เจเจชเจฃเจพ เจเฉเจคเจฐ เจนเฉ เจธเจเจฆเจพ เจนเฉเฅค เจฎเจพเจธเจเจฐ เจฐเฉเจ เจฒเจฎ เจฆเฉ เจตเจฐเจคเฉเจ เจเฉเจเจฒเฉเจ เจฆเฉเจเจฐเจพ เจเฉเจฆ เจเฉเจคเฉ เจเจพเจเจฆเฉ เจนเฉ เจ เจคเฉ เจเจธ เจจเฉเฉฐ เจเจฟเจธเฉ เจนเฉเจฐ เจเฉเจเจผ เจฒเจ เจตเจฐเจคเจฃเจพ เจเจฒเจค เจนเฉเฅค
เจเฉฑเจฅเฉ เจเจฒเจฟเฉฑเจ เจเจฐเฉ เจเฉเจคเจฐ เจธเจผเจพเจฎเจฒ เจเจฐเฉ
เจเฉเจฃ
เจฎเฉเฉฑเจฒ
เจจเจพเจฎ
kubernetes
เจฆเจฟเจเจพเจเจ เจนเฉเจเจ เจจเจพเจฎ
Kubernetes
HTML เจกเจฟเจธเจชเจฒเฉ เจจเจพเจฎ
<img src="https://kubernetes.io/images/nav_logo.svg" width="400" >
เจเฉเจฌเจฐเจจเฉเจเจธ เจฎเฉเจฒ เจฐเฉเจช เจตเจฟเฉฑเจ เจเจพเจเจ เจเจฐเจฆเจพ เจนเฉ เจเจฟ เจเจชเจญเฉเจเจคเจพ เจฆเฉ เจเจฎเฉเจฒ เจฆเฉ เจชเฉเจธเจผเจเฉ เจนเฉเจ เจนเฉ เจเจพเจ เจจเจนเฉเจเฅค เจเจฟเจเจเจเจฟ เจ
เจธเฉเจ เจเจชเจฃเฉ เจเฉเจฆ เจฆเฉ LDAP เจธเจฐเจตเจฐ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเจพเจ, เจเจน เจเจพเจเจ เจฒเจเจญเจ เจนเจฎเฉเจธเจผเจพ เจตเจพเจชเจธ เจเจตเฉเจเฉ false
. เจเจ เจเฉเจฌเจฐเจจเฉเจเจธ เจตเจฟเฉฑเจ เจเจธ เจตเจฟเจเจฒเจช เจฆเฉ เจจเฉเจฎเจพเจเฉฐเจฆเจเฉ เจจเฉเฉฐ เจ
เจฏเฉเจ เจเจฐเฉเจ:
เจเจฒเจพเจเฉฐเจ เจธเจเฉเจช -> เจเจฎเฉเจฒ -> เจฎเฉเจชเจฐเจธ -> เจเจฎเฉเจฒ เจฆเฉ เจชเฉเจธเจผเจเฉ เจเฉเจคเฉ เจเจ (เจฎเจฟเจเจพเจ)
เจนเฉเจฃ เจซเฉเจกเจฐเฉเจธเจผเจจ เจฆเฉ เจธเจฅเจพเจชเจจเจพ เจเจฐเฉเจ; เจ เจเจฟเจนเจพ เจเจฐเจจ เจฒเจ, เจเฉฑเจฅเฉ เจเจพเจ:
เจเจชเจญเฉเจเจคเจพ เจซเฉเจกเจฐเฉเจธเจผเจจ -> เจชเฉเจฐเจฆเจพเจคเจพ เจธเจผเจพเจฎเจฒ เจเจฐเฉ... -> ldap
เจเฉฑเจฅเฉ FreeIPA เจฒเจ เจธเฉเจเจฟเฉฐเจเจพเจ เจฆเฉ เจเฉฑเจ เจเจฆเจพเจนเจฐเจจ เจนเฉ:
เจเฉเจฃ
เจฎเฉเฉฑเจฒ
เจเฉฐเจธเฉเจฒ เจกเจฟเจธเจชเจฒเฉ เจจเจพเจฎ
freeipa.example.org
เจตเจฟเจเจฐเฉเจคเจพ
Red Hat Directory Server
UUID LDAP เจเฉเจฃ
ipauniqueid
เจเจจเฉเจเจธเจผเจจ URL
ldaps://freeipa.example.org
เจเจชเจญเฉเจเจคเจพ เจกเฉ.เจเจจ
cn=users,cn=accounts,dc=example,dc=org
DN เจฌเฉฐเจจเฉเจนเฉ
uid=keycloak-svc,cn=users,cn=accounts,dc=example,dc=org
เจเฉเจฐเฉเจกเฉเจเจธเจผเฉเจ
เจฒ เจฌเฉฐเจจเฉเจนเฉ
<password>
Kerberos เจชเฉเจฐเจฎเจพเจฃเฉเจเจฐเจจ เจฆเฉ เจเจเจพเจเจผเจค เจฆเจฟเจ:
on
เจเจฐเจฌเฉเจฐเฉเจธ เจเฉเจคเจฐ:
EXAMPLE.ORG
เจธเจฐเจตเจฐ เจชเฉเจฐเจฟเฉฐเจธเฉเจชเจฒ:
HTTP/[email protected]
เจเฉเจเฉเจฌ:
/etc/krb5.keytab
เจเจชเจญเฉเจเจคเจพ keycloak-svc
เจธเจพเจกเฉ LDAP เจธเจฐเจตเจฐ 'เจคเฉ เจชเจนเจฟเจฒเจพเจ เจคเฉเจ เจนเฉ เจฌเจฃเจพเจเจฃ เจฆเฉ เจฒเฉเฉ เจนเฉเฅค
เจเจเจเจฟเจต เจกเจพเจเจฐเฉเจเจเจฐเฉ เจฆเฉ เจฎเจพเจฎเจฒเฉ เจตเจฟเฉฑเจ, เจคเฉเจนเจพเจจเฉเฉฐ เจธเจฟเจฐเจซเจผ เจเฉเจฃเจจ เจฆเฉ เจฒเฉเฉ เจนเฉ เจตเจฟเจเจฐเฉเจคเจพ: เจเจเจเจฟเจต เจกเจพเจเจฐเฉเจเจเจฐเฉ เจ เจคเฉ เจฒเฉเฉเฉเจเจฆเฉเจเจ เจธเฉเจเจฟเฉฐเจเจพเจ เจเจชเจฃเฉ เจเจช เจซเจพเจฐเจฎ เจตเจฟเฉฑเจ เจฆเจพเจเจฒ เจนเฉ เจเจพเจฃเจเฉเจเจเฅค
เจเฉฑเจฅเฉ เจเจฒเจฟเฉฑเจ เจเจฐเฉ เจธเฉฐเจญเจพเจฒเฉ
เจนเฉเจฃ เจเจ เจ เฉฑเจเฉ เจตเจงเฉเจ:
เจเจชเจญเฉเจเจคเจพ เจซเฉเจกเจฐเฉเจธเจผเจจ -> freeipa.example.org -> เจฎเฉเจชเจฐเจธ -> เจชเจนเจฟเจฒเจพ เจจเจพเจ
เจเฉเจฃ
เจฎเฉเฉฑเจฒ
Ldap เจเฉเจฃ
givenName
เจนเฉเจฃ เจเจฐเฉเฉฑเจช เจฎเฉเจชเจฟเฉฐเจ เจจเฉเฉฐ เจธเจฎเจฐเฉฑเจฅ เจเจฐเฉเจ:
เจเจชเจญเฉเจเจคเจพ เจซเฉเจกเจฐเฉเจธเจผเจจ -> freeipa.example.org -> เจฎเฉเจชเจฐเจธ -> เจฌเจฃเจพเจ
เจเฉเจฃ
เจฎเฉเฉฑเจฒ
เจจเจพเจฎ
groups
เจฎเฉเจชเจฐ เจเจฟเจธเจฎ
group-ldap-mapper
LDAP เจธเจฎเฉเจน DN
cn=groups,cn=accounts,dc=example,dc=org
เจเจชเจญเฉเจเจคเจพ เจธเจฎเฉเจนเจพเจ เจฆเฉ เจฐเจฃเจจเฉเจคเฉ เจชเฉเจฐเจพเจชเจค เจเจฐเฉ
GET_GROUPS_FROM_USER_MEMBEROF_ATTRIBUTE
เจนเฉเจฃ เจเจฆเฉเจ เจเจฟ เจซเฉเจกเจฐเฉเจธเจผเจจ เจธเฉเจเจ เจช เจชเฉเจฐเจพ เจนเฉ เจเจฟเจ เจนเฉ, เจเจ เจเจฒเจพเจเฉฐเจ เจจเฉเฉฐ เจธเจฅเจพเจชเจค เจเจฐเจจ เจฒเจ เจ เฉฑเจเฉ เจตเจงเฉเจเฅค
เจเจฒเจพเจเฉฐเจ เจธเฉเฉฑเจเจ เฉฑเจช
เจเจฒเฉ เจเฉฑเจ เจจเจตเจพเจ เจเจฒเจพเจเฉฐเจ เจฌเจฃเจพเจ (เจเฉฑเจ เจเจชเจฒเฉเจเฉเจธเจผเจจ เจเฉ เจเจชเจญเฉเจเจคเจพเจตเจพเจ เจจเฉเฉฐ Keycloak เจคเฉเจ เจชเฉเจฐเจพเจชเจค เจเจฐเฉเจเฉ)เฅค เจเจ เจ เฉฑเจเฉ เจตเจงเฉเจ:
เจเฉเจฐเจพเจนเจ -> เจฌเจฃเจพเจ
เจเฉเจฃ
เจฎเฉเฉฑเจฒ
เจเจฒเจพเจเฉฐเจ เจเจเจกเฉ
kubernetes
เจชเจนเฉเฉฐเจ เจฆเฉ เจเจฟเจธเจฎ
confidenrial
เจฐเฉเจ URL
http://kubernetes.example.org/
เจตเฉเจง เจฐเฉเจกเจพเจเจฐเฉเจเจ URIs
http://kubernetes.example.org/*
เจเจกเจฎเจฟเจจ URL
http://kubernetes.example.org/
เจเจ เจธเจฎเฉเจนเจพเจ เจฒเจ เจเฉฑเจ เจธเจเฉเจช เจตเฉ เจฌเจฃเจพเจเจ:
เจเจพเจนเจ เจฆเจพเจเจฐเฉ -> เจฌเจฃเจพเจ
เจเฉเจฃ
เจฎเฉเฉฑเจฒ
เจซเจฐเจฎเจพ
No template
เจจเจพเจฎ
groups
เจชเฉเจฐเจพ เจธเจฎเฉเจน เจฎเจพเจฐเจ
false
เจ เจคเฉ เจเจนเจจเจพเจ เจฒเจ เจเฉฑเจ เจฎเฉเจชเจฐ เจธเฉเจ เจ เจช เจเจฐเฉ:
เจเจพเจนเจ เจฆเจพเจเจฐเฉ -> เจเจฐเฉเฉฑเจช -> เจฎเฉเจชเจฐเจธ -> เจฌเจฃเจพเจ
เจเฉเจฃ
เจฎเฉเฉฑเจฒ
เจจเจพเจฎ
groups
เจฎเฉเจชเจฐ เจฆเฉ เจเจฟเจธเจฎ
Group membership
เจเฉเจเจจ เจฆเจพเจ
เจตเฉ เจฆเจพ เจจเจพเจฎ
groups
เจนเฉเจฃ เจธเจพเจจเฉเฉฐ เจเจชเจฃเฉ เจเจฒเจพเจเฉฐเจ เจธเจเฉเจช เจตเจฟเฉฑเจ เจฎเฉเจชเจฟเฉฐเจ เจเจฐเฉเฉฑเจช เจจเฉเฉฐ เจธเจฎเจฐเฉฑเจฅ เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจนเฉ:
เจเฉเจฐเจพเจนเจ -> เจเฉเจฌเจฐเจจเฉเจเจธ -> เจเจพเจนเจ เจฆเจพเจเจฐเฉ -> เจกเจฟเจซเฉเจฒเจ เจเจฒเจพเจเฉฐเจ เจธเจเฉเจชเจธ
เจเฉเจฃเฉ เจเจฐเฉเฉฑเจช ะฒ เจเจชเจฒเจฌเจง เจเจพเจนเจ เจฆเจพเจเจฐเฉ, เจชเฉเจฐเฉเจธ เจเฉเจฃเจฟเจ เจธเจผเจพเจฎเจฒ เจเจฐเฉ
เจนเฉเจฃ เจธเจพเจกเฉ เจเจชเจฒเฉเจเฉเจธเจผเจจ เจฆเฉ เจชเฉเจฐเจฎเจพเจฃเจฟเจเจคเจพ เจจเฉเฉฐ เจเฉเจเจซเจฟเจเจฐ เจเจฐเฉเจ, เจเจธ 'เจคเฉ เจเจพเจ:
เจเฉเจฐเจพเจนเจ -> เจเฉเจฌเจฐเจจเฉเจเจธ
เจเฉเจฃ
เจฎเฉเฉฑเจฒ
เจ
เจงเจฟเจเจพเจฐ เจธเจฎเจฐเจฅเจฟเจค
ON
เจเจฒเฉ เจฆเจฌเจพเจ เจจเฉเฉฐ เจฌเจเจพ เจ เจคเฉ เจเจธ เจจเจพเจฒ เจเจฒเจพเจเฉฐเจ เจธเฉเฉฑเจเจ เฉฑเจช เจชเฉเจฐเจพ เจนเฉ เจเจฟเจ เจนเฉ, เจนเฉเจฃ เจเฉเจฌ 'เจคเฉ
เจเฉเจฐเจพเจนเจ -> เจเฉเจฌเจฐเจจเฉเจเจธ -> เจเฉเจฐเฉเจกเฉเจเจธเจผเฉเจ เจฒ
เจคเฉเจธเฉเจ เจชเฉเจฐเจพเจชเจค เจเจฐ เจธเจเจฆเฉ เจนเฉ เจฐเจพเจเจผ เจเจฟเจธ เจฆเฉ เจ เจธเฉเจ เจ เฉฑเจเฉ เจตเจฐเจคเฉเจ เจเจฐเจพเจเจเฉเฅค
เจเฉเจฌเจฐเจจเฉเจเจธ เจฆเฉ เจธเฉฐเจฐเจเจจเจพ เจเฉเจคเฉ เจเจพ เจฐเจนเฉ เจนเฉ
OIDC เจชเฉเจฐเจฎเจพเจฃเจฟเจเจคเจพ เจฒเจ เจเฉเจฌเจฐเจจเฉเจเจธ เจธเจฅเจพเจชเจค เจเจฐเจจเจพ เจเจพเจซเจผเฉ เจฎเจพเจฎเฉเจฒเฉ เจนเฉ เจ
เจคเฉ เจฌเจนเฉเจค เจเฉเฉฐเจเจฒเจฆเจพเจฐ เจจเจนเฉเจ เจนเฉเฅค เจคเฉเจนเจพเจจเฉเฉฐ เจฌเจธ เจเจชเจฃเฉ OIDC เจธเจฐเจตเจฐ เจฆเจพ CA เจธเจฐเจเฉเจซเจฟเจเฉเจ เจชเจพเจเจฃ เจฆเฉ เจฒเฉเฉ เจนเฉ /etc/kubernetes/pki/oidc-ca.pem
เจ
เจคเฉ kube-apiserver เจฒเจ เจฒเฉเฉเฉเจเจฆเฉ เจตเจฟเจเจฒเจช เจธเจผเจพเจฎเจฒ เจเจฐเฉเฅค
เจ
เจเจฟเจนเจพ เจเจฐเจจ เจฒเจ, เจ
เฉฑเจชเจกเฉเจ เจเจฐเฉ /etc/kubernetes/manifests/kube-apiserver.yaml
เจคเฉเจนเจพเจกเฉ เจธเจพเจฐเฉ เจฎเจพเจฒเจเจพเจ 'เจคเฉ:
...
spec:
containers:
- command:
- kube-apiserver
...
- --oidc-ca-file=/etc/kubernetes/pki/oidc-ca.pem
- --oidc-client-id=kubernetes
- --oidc-groups-claim=groups
- --oidc-issuer-url=https://keycloak.example.org/auth/realms/kubernetes
- --oidc-username-claim=email
...
เจจเจพเจฒ เจนเฉ, เจเจฒเฉฑเจธเจเจฐ เจตเจฟเฉฑเจ kubeadm เจธเฉฐเจฐเจเจจเจพ เจจเฉเฉฐ เจ เฉฑเจชเจกเฉเจ เจเจฐเฉ เจคเจพเจ เจเจฟ เจ เฉฑเจชเจกเฉเจ เจเจฐเจจ เจตเฉเจฒเฉ เจเจนเจจเจพเจ เจธเฉเจเจฟเฉฐเจเจพเจ เจจเฉเฉฐ เจเฉเจ เจจเจพ เจเจพเจตเฉ:
kubectl edit -n kube-system configmaps kubeadm-config
...
data:
ClusterConfiguration: |
apiServer:
extraArgs:
oidc-ca-file: /etc/kubernetes/pki/oidc-ca.pem
oidc-client-id: kubernetes
oidc-groups-claim: groups
oidc-issuer-url: https://keycloak.example.org/auth/realms/kubernetes
oidc-username-claim: email
...
เจเจน เจเฉเจฌเจฐเจจเฉเจเจธ เจธเฉเฉฑเจเจ เฉฑเจช เจจเฉเฉฐ เจชเฉเจฐเจพ เจเจฐเจฆเจพ เจนเฉเฅค เจคเฉเจธเฉเจ เจเจนเจจเจพเจ เจเจฆเจฎเจพเจ เจจเฉเฉฐ เจเจชเจฃเฉ เจธเจพเจฐเฉ เจเฉเจฌเจฐเจจเฉเจเจธ เจเจฒเฉฑเจธเจเจฐเจพเจ เจตเจฟเฉฑเจ เจฆเฉเจนเจฐเจพ เจธเจเจฆเฉ เจนเฉเฅค
เจธเจผเฉเจฐเฉเจเจคเฉ เจ เจงเจฟเจเจพเจฐ
เจเจนเจจเจพเจ เจเจฆเจฎเจพเจ เจคเฉเจ เจฌเจพเจ เจฆ, เจคเฉเจนเจพเจกเฉ เจเฉเจฒ เจชเจนเจฟเจฒเจพเจ เจคเฉเจ เจนเฉ เจธเฉฐเจฐเจเจฟเจค OIDC เจชเฉเจฐเจฎเจพเจฃเฉเจเจฐเจจ เจตเจพเจฒเจพ เจเฉเจฌเจฐเจจเฉเจเจธ เจเจฒเฉฑเจธเจเจฐ เจนเฉเจตเฉเจเจพเฅค เจธเจฟเจฐเจซ เจเฉฑเจฒ เจเจน เจนเฉ เจเจฟ เจคเฉเจนเจพเจกเฉ เจเจชเจญเฉเจเจคเจพเจตเจพเจ เจเฉเจฒ เจ เจเฉ เจคเฉฑเจ เจธเฉฐเจฐเจเจฟเจค เจเจฒเจพเจเฉฐเจ เจเจพเจ เจเจนเจจเจพเจ เจฆเฉ เจเจชเจฃเฉ kubeconfig เจจเจนเฉเจ เจนเฉเฅค เจเจธ เจธเจฎเฉฑเจธเจฟเจ เจจเฉเฉฐ เจนเฉฑเจฒ เจเจฐเจจ เจฒเจ, เจคเฉเจนเจพเจจเฉเฉฐ เจธเจซเจฒ เจชเฉเจฐเจฎเจพเจฃเจฟเจเจคเจพ เจคเฉเจ เจฌเจพเจ เจฆ เจเจชเจญเฉเจเจคเจพเจตเจพเจ เจฒเจ kubeconfig เจฆเฉ เจเจเฉเจฎเฉเจเจฟเจ เจตเฉฐเจก เจจเฉเฉฐ เจเฉเจเจซเจฟเจเจฐ เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจนเฉเฅค
เจ
เจเจฟเจนเจพ เจเจฐเจจ เจฒเจ, เจคเฉเจธเฉเจ เจตเจฟเจธเจผเฉเจธเจผ เจตเฉเจฌ เจเจชเจฒเฉเจเฉเจธเจผเจจเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐ เจธเจเจฆเฉ เจนเฉ เจเฉ เจคเฉเจนเจพเจจเฉเฉฐ เจเจชเจญเฉเจเจคเจพ เจจเฉเฉฐ เจชเฉเจฐเจฎเจพเจฃเจฟเจค เจเจฐเจจ เจ
เจคเฉ เจซเจฟเจฐ เจคเจฟเจเจฐ-เจเฉเจคเฉ kubeconfig เจจเฉเฉฐ เจกเจพเจเจจเจฒเฉเจก เจเจฐเจจ เจฆเฉ เจเจเจพเจเจผเจค เจฆเจฟเฉฐเจฆเฉ เจนเจจเฅค เจธเจญ เจธเฉเจตเจฟเจงเจพเจเจจเจ เจฆเฉ เจเฉฑเจ เจนเฉ
เจเฉเจฌเฉเจฐเฉเจธ เจจเฉเฉฐ เจเฉเจเจซเจฟเจเจฐ เจเจฐเจจ เจฒเจ, เจธเจฟเจฐเจซ kubeconfig เจฒเจ เจเฉเจเจชเจฒเฉเจ เจฆเจพ เจตเจฐเจฃเจจ เจเจฐเฉ เจ เจคเฉ เจเจธเจจเฉเฉฐ เจนเฉเจ เจพเจ เจฆเจฟเฉฑเจคเฉ เจชเฉเจฐเจพเจฎเฉเจเจฐเจพเจ เจจเจพเจฒ เจเจฒเจพเจ:
kuberos https://keycloak.example.org/auth/realms/kubernetes kubernetes /cfg/secret /cfg/template
เจตเจงเฉเจฐเฉ เจตเจฟเจธเจคเฉเจฐเจฟเจค เจเจพเจฃเจเจพเจฐเฉ เจฒเจ เจตเฉเจเฉ
เจเจธเจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจเจพ เจตเฉ เจธเฉฐเจญเจต เจนเฉ
เจจเจคเฉเจเฉ เจตเจเฉเจ kubeconfig เจฆเฉ เจตเฉเฉฑเจฌเจธเจพเจเจ 'เจคเฉ เจเจพเจเจ เจเฉเจคเฉ เจเจพ เจธเจเจฆเฉ เจนเฉ users[].user.auth-provider.config.id-token
เจคเฉเจนเจพเจกเฉ kubeconfig เจคเฉเจ เจตเฉเจฌเจธเจพเจเจ 'เจคเฉ เจซเจพเจฐเจฎ เจคเฉฑเจ เจ
เจคเฉ เจคเฉเจฐเฉฐเจค เจเฉฑเจ เจเฉเจฐเจพเจเจธเจเฉเจฐเจฟเจชเจ เจชเฉเจฐเจพเจชเจค เจเจฐเฉเฅค
RBAC เจธเฉเฉฑเจเจ เฉฑเจช เจเฉเจคเจพ เจเจพ เจฐเจฟเจนเจพ เจนเฉ
RBAC เจฆเฉ เจธเฉฐเจฐเจเจจเจพ เจเจฐเจฆเฉ เจธเจฎเฉเจ, เจคเฉเจธเฉเจ เจฆเฉเจตเฉเจ เจเจชเจญเฉเจเจคเจพ เจจเจพเจฎ (เจซเฉเจฒเจก name
jwt เจเฉเจเจจ เจตเจฟเฉฑเจ), เจ
เจคเฉ เจชเฉเจฐเจคเฉ เจเจชเจญเฉเจเจคเจพ เจธเจฎเฉเจน (เจซเฉเจฒเจก groups
jwt เจเฉเจเจจ เจตเจฟเฉฑเจ). เจเฉฑเจฅเฉ เจเฉฑเจ เจธเจฎเฉเจน เจฒเจ เจ
เจงเจฟเจเจพเจฐ เจธเจฅเจพเจชเจค เจเจฐเจจ เจฆเฉ เจเฉฑเจ เจเจฆเจพเจนเจฐเจฃ เจนเฉ kubernetes-default-namespace-admins
:
kubernetes-default-namespace-admins.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: default-admins
namespace: default
rules:
- apiGroups:
- '*'
resources:
- '*'
verbs:
- '*'
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: kubernetes-default-namespace-admins
namespace: default
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: default-admins
subjects:
- apiGroup: rbac.authorization.k8s.io
kind: Group
name: kubernetes-default-namespace-admins
RBAC เจฒเจ เจนเฉเจฐ เจเจฆเจพเจนเจฐเจฃเจพเจ เจตเจฟเฉฑเจ เจฒเฉฑเจญเฉเจเจ เจเจพ เจธเจเจฆเฉเจเจ เจนเจจ
เจชเฉเจฐเจฎเจพเจฃ-เจชเฉเจฐเจพเจเจธเฉ เจธเฉเฉฑเจ เจเจฐ เจฐเจฟเจนเจพ เจนเฉ
เจเฉฑเจ เจธเจผเจพเจจเจฆเจพเจฐ เจชเฉเจฐเฉเจเฉเจเจ เจนเฉ
dashboard-proxy.yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: kubernetes-dashboard-proxy
spec:
replicas: 1
template:
metadata:
labels:
app: kubernetes-dashboard-proxy
spec:
containers:
- args:
- --listen=0.0.0.0:80
- --discovery-url=https://keycloak.example.org/auth/realms/kubernetes
- --client-id=kubernetes
- --client-secret=<your-client-secret-here>
- --redirection-url=https://kubernetes-dashboard.example.org
- --enable-refresh-tokens=true
- --encryption-key=ooTh6Chei1eefooyovai5ohwienuquoh
- --upstream-url=https://kubernetes-dashboard.kube-system
- --resources=uri=/*
image: keycloak/keycloak-gatekeeper
name: kubernetes-dashboard-proxy
ports:
- containerPort: 80
livenessProbe:
httpGet:
path: /oauth/health
port: 80
initialDelaySeconds: 3
timeoutSeconds: 2
readinessProbe:
httpGet:
path: /oauth/health
port: 80
initialDelaySeconds: 3
timeoutSeconds: 2
---
apiVersion: v1
kind: Service
metadata:
name: kubernetes-dashboard-proxy
spec:
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
app: kubernetes-dashboard-proxy
type: ClusterIP
เจธเจฐเฉเจค: www.habr.com