์ ์ ํ Azure AD ํตํฉ๊ณผ ํจ๊ป RBAC ์ฌ์ฉ AKS ํด๋ฌ์คํฐ๊ฐ ์์ต๋๋ค. ์ปจํธ๋กค ํ๋ ์ธ์์ ์ ์๋ํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋์ ๋ณด๋์ ์ก์ธ์คํ๊ธฐ ์ํด ์ก์ธ์ค ํ ํฐ az account get-access-token --query accessToken -o tsv
๋ง๋ค๊ณ kubectl-proxy
ํฉ๋๋ค.
์์ ๋์ : Azure AD ๊ทธ๋ฃน์ ๊ตฌ์ฑ์์ ํ ํฐ์ ์ฌ์ฉํ์ฌ ๋์ ๋ณด๋์ ๋ํ ์ ์ฒด ๊ถํ์ ๊ฐ์ง ์ ์์ด์ผํฉ๋๋ค. ์ด๊ฒ์ ์ ์ ์ ์๋ํ์ต๋๋ค (ํด๋ฌ์คํฐ๋ ๊ฑฐ์ ํ ๋ฌ์ด๋์์ต๋๋ค). ์ด์ ์ ํด๋ฌ์คํฐ๊ฐ ์์ต๋๋ค.
์ค์ ๋์ : ๋์ ๋ณด๋๊ฐ ํด๋ฌ์คํฐ ๊ด๋ฆฌ์์ ๋ํ ์ก์ธ์ค๋ฅผ ๊ธ์งํ๊ณ ์์ต๋๋ค.
์ค์ ๋ก ํด๋ฌ์คํฐ๊ฐ ์ ์ ํ Azure AD ํตํฉ์ผ๋ก RBAC๋ฅผ ์ฌ์ฉํ ์์๋ ๊ฒฝ์ฐ kubernetes-dashboard
์๋น์ค ๊ณ์ ์ cluster-admin
์ก์ธ์ค ๊ถํ์ ๋ถ์ฌํ๋ฉด ๋ณด์์ด ํด์ ๋๋ค๋ ์ฌ์ค์ ์๊ณ ์ถ์ต๋๋ค. ๋๋ ๋์ ๋ณด๋ URL๋ก ๋๊ตฌ๋ ํด๋ฌ์คํฐ์ ์ก์ธ์ค ํ ์ ์๋ค๋ ๊ฒ์ ๋ฌธ์์์ ์ดํดํฉ๋๋ค.
์ค๋ช
kubernetes-dashboard
์๋น์ค ๊ณ์ ์ cluster-admin
๋ก ์ฌ๋ฆฌ๋ฉด ๋์ ๋ณด๋๊ฐ ์๋ํฉ๋๋ค. (์ด๊ฒ์ ๋งค์ฐ ๋ถ๋ช
ํ์ง๋ง ๋ช
์ ์ ์ผ๋ก ๋ง๋ญ๋๋ค)โ ์ด ์น์ ์ ํธ์งํ์ง ๋ง์ญ์์ค.
@Sudharma์์ ๋ ๋์ ์ง์์ ์ํด ์ฐธ์กฐ์ค์ธ ๋ฌธ์๋ฅผ ๊ณต์ ํด ์ฃผ์๊ฒ ์ต๋๊น?
์ด๊ฑฐ์์?
@ MicahMcKittrick-MSFT ๋๋ ์ด๊ฒ์ ํตํด ์ ์๋ํฉ๋๋ค. ๋๋ ์ด๊ฒ์ ์ธ๊ธํ๊ณ ์๋ค
https://docs.microsoft.com/en-us/azure/aks/kubernetes-dashboard#for -rbac-enabled-clusters
๋์ ๋ณด๋ ์ฉ RBAC์ ์ ํํ๊ฒ ์ผ์นํฉ๋๋ค.
You can also integrate Azure Active Directory authentication to provide a more granular level of access.
์ด ์์
์ ์ํํ๋ ๋ฐฉ๋ฒ์ ๋ ๋ง์ ๊ด์ฌ์ด ์์ต๋๋ค.!
@Sudharma ๊ฐ์ฌํฉ๋๋ค!
@iainfoulds @seanmck ์ด ์ง๋ฌธ์ ๋ํด ๋ ์ธ๊ธ ํ ์ ์์ต๋๊น?
@Sudharma ์ด ์ง์ฐ์ ๋ํด ์ฃ์กํฉ๋๋ค. ๋๋ ์ด๊ฒ์ ์ฌํํ๋ ค๊ณ ๋ ธ๋ ฅํ์ง๋ง ๋ด๋ถ ๊ตฌ๋ ์ ์ฌ์ฉํ์ฌ RBAC ํด๋ฌ์คํฐ ์ค์ ์ ์ป๋ ๋ฐ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๋ชจ๋ ์ดํด๋ณด๊ณ ์์ผ๋ฉฐ ๊ฐ๋ฅํ ํ ๋นจ๋ฆฌ ์ ๋ฐ์ดํธ ํ ๊ฒ์ ๋๋ค.
@iainfoulds ์ฌ๊ณผํ์ง๋ง ์ ํํ ํ ์คํธ๋ฅผ ์ํด ํ๊ฒฝ ์ค์ ์ ํ ์ ์์์ต๋๋ค. ์ด๋ค ์ด์ ๋ก ๋ด RBAC ์ฌ์ฉ ํด๋ฌ์คํฐ๊ฐ ๊ฐ์ธ ๊ตฌ๋ ์์๋ ์ฌ๋ฐ๋ฅด๊ฒ ํ๋ก๋น์ ๋๋์ง ์์ต๋๋ค. ๋๋ ์ด์์ด ๋ฉฐ์น ๋์ ์ด๊ฒ์ ์๋ํด ์์ต๋๋ค. ์ด๊ฒ๋ ์ฌํ ํด ์ฃผ์๊ฒ ์ต๋๊น? ๋๋ ๋จ์ง ์ด์ด ์๋ค.
CC @ Karishma-Tiwari-MSFT @ jakaruna-MSFT๋ ์ฌํ์ ์๋ ํ ์ ์๋ค๋ฉด
@Sudharma ์ด ์ง์ฐ์ ๋ํด ์ฃ์กํฉ๋๋ค. ๋๋ ์ด๊ฒ์ ์ฌํํ๋ ค๊ณ ๋ ธ๋ ฅํ์ง๋ง ๋ด๋ถ ๊ตฌ๋ ์ ์ฌ์ฉํ์ฌ RBAC ํด๋ฌ์คํฐ ์ค์ ์ ์ป๋ ๋ฐ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๋ชจ๋ ์ดํด๋ณด๊ณ ์์ผ๋ฉฐ ๊ฐ๋ฅํ ํ ๋นจ๋ฆฌ ์ ๋ฐ์ดํธ ํ ๊ฒ์ ๋๋ค.
๋ฌธ์ ์์ด์. ๊ทธ๋ฌ๋์ด ์๋ฃจ์ ์ ์ด๋งํ๋ฏ๋ก ๊ณ์ ์ ๋ฐ์ดํธํ์ญ์์ค.
๋์๊ฒ๋ ๊ฐ์ ๋ฌธ์ ์ ๋๋ค. ๋์ ๋ณด๋ ๋ก๊ทธ์ธ ํ๋กฌํํธ๋ ๋ก๊ทธ์ธ ํ๋ฉด์ ํตํด ๋ฐ๊ธ ๋ ํ ํฐ์ ์ ๋ฌํ์ง ์๋ ๊ฒ์ ํ์ธํ์ต๋๋ค. ์ฌ์ ํ ์๋น์ค ๊ณ์ ์ ํตํด ๋์ ๋ณด๋ ์ฐ๊ฒฐ ์์ฒญ์ ์ฒ๋ฆฌํฉ๋๋ค.
๋ํ ๊ถํ ์์น์ผ๋ก ์ธํด ์๋น์ค ๊ณ์ ์ ๋ํ ๋์ ๋ณด๋ ์ก์ธ์ค ๊ถํ์ ๋ถ์ฌํ์ง ์์์ต๋๋ค.
๊ฐ๋จํ ๋งํด ํ๋ก์๋ฅผ ํตํ ๋์ ๋ณด๋ ์ก์ธ์ค๋ ์๋น์ค ๊ณ์ ์์ ์ ์๋ํ์ง๋ง OpenID ์ฐ๊ฒฐ ๊ณ์ ํ ํฐ์์๋ ์๋ํ์ง ์์ต๋๋ค.
์ด ๋ฌธ์ ๋ ์ฐ๋ฆฌ์๊ฒ๋ ์ฌ์ ํ ๋ฌธ์ ์ ๋๋ค. ๊ทธ๋์ ์ฌ๊ธฐ ๋ด +1
์ฌ๊ธฐ์์๋ +1,
์๋ ํ์ธ์ ํ,
์๋ ๋ฐฉ์๊ณผ ๊ธฐ๋ณธ Kubernetes ์์ง๊ณผ ๋ค๋ฅธ ์ ์ ๋ํ ์์ธํ ์ ๋ณด๋ฅผ ์ ๊ณต ํ ์ ์์ต๋๊น? ๋๋ ์ฐ๋ฆฌ๊ฐ ๋์ผํ ์ง์์ ์ ๊ณต ํ ์ ์๋์ง ๊ถ๊ธํฉ๋๋ค. ๋ํ ํ๋ก์ ์๋น์ค๋ฅผ ํตํด Azure AD๋ฅผ ์ฌ์ฉํ๋๋ก ๋์ ๋ณด๋๋ฅผ ๊ตฌ์ฑ ํ ์ ์๋์ง ๊ถ๊ธํ์ญ๋๊น?
๋๊ตฌ๋ ์ง ์ด๊ฒ์ ๋ํ ์ ๋ฐ์ดํธ๊ฐ ์์ต๋๊น? "kubectl proxy"๋ฅผ ์คํ ํ ํ ํ ํฐ์ ๊ฐ์ ธ ์ค๊ฑฐ๋ kube ๊ตฌ์ฑ ํ์ผ์ ์ฌ์ฉํ๋ฉด ์ก์ธ์ค ํ ์ ์์ง๋ง az aks browse๋ฅผ ์คํํ๋ฉด ์ฅ์น ์ฝ๋๋ก ์น์ ํตํด ๋ก๊ทธ์ธํ๋ผ๋ ๋ฉ์์ง๊ฐ ํ์๋ฉ๋๋ค (์ด๋ฏธ az ๋ก๊ทธ์ธ์ ์ํ ํ์์๋ ๋ถ๊ตฌํ๊ณ ). , ์ฝ๋๋ฅผ ์ ๋ ฅํ๋ฉด cmd ์ค "Oauth token : Unknown Error"์ ์ค๋ฅ๊ฐ ํ์๋ฉ๋๋ค. Rbac๋ก ํด๋ฌ์คํฐ๋ฅผ ์ค์ ํ์ต๋๋ค (ํด๋ผ์ด์ธํธ ๋ฐ ์๋ฒ ์ฑ ๋ฑ๋ก ๋ฐ (https://docs.microsoft.com/en-us/azure/aks/aad-integration)์ ๋ฐ๋ผ ๊ถํ์ ์ค์ ํ์ต๋๋ค.).
ํ์คํ์ง ์์ ์ ์ผํ ์ ์ ํด๋ผ์ด์ธํธ, ์๋ฒ ๋ฐ ์๋น์ค ์ฃผ์ฒด์ ๋ํ ์ฑ ๋ฑ๋ก์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์ด 3 ๊ฐ์ ์ฑ ๋ฑ๋ก์ด ์๋ค๋ ๊ฒ์ ๋๋ค. terraform์ ํตํด ํ๋ก๋น์ ๋๋์์ต๋๋ค. ๊ฐ์ด๋ ๋ฌธ์์๋ ํด๋ผ์ด์ธํธ ๋ฐ ์๋ฒ ์ฑ ๋ฑ๋ก์ ๋ํ ๊ถํ ๋ง ์ธ๊ธ๋์ด ์์ต๋๋ค.
๋๊ตฐ๊ฐ๊ฐ ๋์ธ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
์ฌ์ ํ ๊ฐ์ ๋ฌธ์ ์ ์ง๋ฉด ํด ์์ต๋๋ค. AD ๊ณ์ ์ ์ฌ์ฉํ์ฌ ๋์ ๋ณด๋, API ๋๋ kubectl์ ์ก์ธ์ค ํ ์ ์์ต๋๋ค.
์๋ ๋ช
๋ น์ด ์๋ํ๋ฉด /home/user/.kube/config์ k8s ๊ด๋ฆฌ์ ์๊ฒฉ ์ฆ๋ช
์ด ์์ฑ๋ฉ๋๋ค.
az aks get-credentials --resource-group xxx-dev-test01 --name xxxk8sdev --admin
AD ์ฌ์ฉ์ ๋๋ ๊ทธ๋ฃน๊ณผ ํด๋ฌ์คํฐ ์ญํ ๋ฐ์ธ๋ฉ์ ์ถ๊ฐ ํ ํ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ์๋ ๋ค์๊ณผ ๊ฐ์ด ๋ก๊ทธ์ธ ํ ์ ์์ต๋๋ค.
az aks get-credentials --resource-group xxx-dev-test01 --name xxxk8sdev
๊ทธ๋ฌ๋ฉด ์ฅ์น ํ ํฐ์ ์
๋ ฅํ๋ผ๋ ๋ฉ์์ง๊ฐ ํ์๋๊ณ ์ฌ์ฉ์๊ฐ ๋ก๊ทธ์ธ ํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด์ ์ด๊ฒ์ ์ง์์ ์ผ๋ก ์คํจํฉ๋๋ค.
Kubectl ๋๋ ๋์ ๋ณด๋๋ ํด๋ฌ์คํฐ ๊ด๋ฆฌ์๋ฅผ ํตํด์๋ง ์ก์ธ์ค ํ ์ ์์ต๋๋ค. ๋ถ๋ช
ํ ๋ชจ๋ ์ฌ์ฉ์์๊ฒ ํด๋ฌ์คํฐ ๊ด๋ฆฌ์ ์๊ฒฉ ์ฆ๋ช
์ ์ ๊ณต ํ ์๋ ์์ต๋๋ค.
์ฌ๋๋ค์ด ์ฌ๊ธฐ์ ๋ฌธ์ ๋ฅผ ๊ฒช๊ณ ์์ด ์ฃ์กํฉ๋๋ค.
์์ง๋์ด๋ง ํ์์ ๋ฌธ์ ๋ฅผ ์๋ณํ์ผ๋ฉฐ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ ธ๋ ฅํ๊ณ ์์ต๋๋ค. AKS์ ํน์ ๋์์ด ์๋๋ผ ๊ธฐ๋ณธ Kubernetes ๋์ ๋ณด๋ ๋ณ๊ฒฝ ์ธ ๊ฒ ๊ฐ์ต๋๋ค. @ palma21 ์ ํด๊ฒฐ์ ์ํด ํ์ ๋ผ์ธ์ ์ถ๊ฐ ์ปจํ ์คํธ๋ฅผ ์ ๊ณต ํ ์ ์์ต๋๋ค.
@spbreed ๋ฌธ์ ๋ kubectl์ ํตํด ์ก์ธ์ค ํ ์ ์๋ค๊ณ ์ธ๊ธํ๊ธฐ ๋๋ฌธ์ ๋ค๋ฅด๊ฒ ๋ณด์ ๋๋ค (๋น๋ฐ์ด ๋ง๋ฃ๋์ง ์์๋์ง ํ์ธํ๊ณ ์ง์ ํฐ์ผ์ ์ด์ด ํด๋ฌ์คํฐ๋ฅผ ํ์ธํ๊ณ ๋์์ ์ค ์ ์์).
๋์ ๋ณด๋์๋ง ๋ฌธ์ ๊ฐ์๋ ๋๋จธ์ง ๋์ ๋ณด๋์ ๊ฒฝ์ฐ ์ต์ ๋ฒ์ ์ ๋์ ๋ณด๋์๋ https ๋๋ ์์ ํ์ง ์์ ๋ก๊ทธ์ธ ํ๋๊ทธ๊ฐ ํ์ํ๊ฑฐ๋ ์๋น์ค ๊ณ์ ๋ก๊ทธ์ธ์ ํด๋น๋ฉ๋๋ค.
์ด๋ฅผ ๊ฐ์ ํ๋ ค๋ฉด ๋์ ๋ณด๋ ๋ฐฐํฌ๋ฅผ ํธ์ง ํ ์ ์์ต๋๋ค.
์.
kubectl edit deploy -n kube-system kubernetes-dashboard
๊ทธ๋ฆฌ๊ณ ์ปจํ ์ด๋ ์ฌ์์ ์ถ๊ฐํ์ญ์์ค.
containers:
- args:
- --authentication-mode=token
- --enable-insecure-login
์์ผ๋ก ์ฐ๋ฆฌ๋ ํ ํฐ ์ธ์ฆ์ ์ํํ๊ณ ํฌํธ 9090์ 8443์ผ๋ก, ์ฒด๊ณ๋ฅผ HTTPS๋ก ๋ณ๊ฒฝํ๊ณ ์์ฒด ์๋ช
๋ ์ธ์ฆ์๋ฅผ ์ฌ์ฉํ ๊ฒ์
๋๋ค. ๊ณง ์ถ์ ๋ ์์ ์ด๋ฉฐ ์ถ์ ๋
ธํธ์ ๋ฐํ ๋ ์์ ์
๋๋ค.
https://github.com/Azure/aks/releases
๊ฐ์ ๋ฌธ์ ์ ์ง๋ฉดํ๊ณ ์์ต๋๋ค. AD ๊ณ์ ์ ์ฌ์ฉํ์ฌ ๋์ ๋ณด๋, API ๋๋ kubectl์ ์ก์ธ์ค ํ ์ ์์ต๋๋ค.
๋ด ์ค์ : AD ๊ณ์ ์ ์ฌ์ฉํ์ฌ K8S ๋์ ๋ณด๋์ ์ก์ธ์ค ํ ์ ์์ต๋๋ค.
๋์ ๋ณด๋์ ์ก์ธ์คํ๊ธฐ ์ํด ์ด๋ค ํ๋ก์ธ์ค๋ฅผ ๋ฐ๋ฅด๊ณ ์์ต๋๊น? ์์ ๋ด ์๊ฒฌ์ ์๋ํด ๋ณด์ จ์ต๋๊น?
https://github.com/MicrosoftDocs/azure-docs/issues/23789#issuecomment -485010803
@ palma21 ๋ฐฉ๊ธ ๊ทํ์ ์ ์์ ์๋ํ์ง๋ง ๋์ ๋ณด๋์ ๋ก๊ทธ์ธ ํ ๋ ์ค๋ฅ ๋ชฉ๋ก๊ณผ ๋์ผํ ๋ฌธ์ ๊ฐ ๊ณ์ ๋ฐ์ํฉ๋๋ค.
configmaps๊ฐ ๊ธ์ง๋จ : ์ฌ์ฉ์ "clusterAdmin"์ ๋ค์ ์คํ์ด์ค "default"์ configmap์ ๋์ด ํ ์ ์์ต๋๋ค.
์๋น์ค ๊ณ์ 'kubernetes-dashboard'์ ๋ํ ์ญํ ๋ฐ์ธ๋ฉ์ด ์์ต๋๋ค. ํด๋ฌ์คํฐ ๊ด๋ฆฌ์ ๊ณ์ ํ ํฐ์ผ๋ก ์๋ํ์ต๋๋ค. ํด๋ฌ์คํฐ ๊ด๋ฆฌ์์ด๊ณ ์ ์ ํ RBAC๊ฐ ์์ง๋ง ๋ด AAD ๊ณ์ ์ผ๋ก ๋ก๊ทธ์ธ ํ ์์๋ ๊ฒ ๊ฐ์ต๋๋ค. ์๋ ๋ช ๋ น์ผ๋ก ์์ฑ ๋ ํ ํฐ์ด ์ ๋ฌ์ ํ ํฐ ๋ก๊ทธ์ธ์ ์ ํจํฉ๋๊น?
ํฌ๋ ์ธ๋ถ ์ ๋ณด ์ค ๋ํซ :
์ปจํ
์ด๋ :
๋ณธ๊ด:
์ปจํ
์ด๋ ID : docker : // 610c6b258cde01196c03c918c3acca6c3c6ba531153ad1b7e0f034e032065319
์ด๋ฏธ์ง : k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.1
์ด๋ฏธ์ง ID : docker- pullable : //k8s.gcr.io/kubernetes-dashboard-amd64@sha256 : 0ae6b69432e78069c5ce2bcde0fe409c5c4d6f0f4d9cd50a17974fea38898747
ํฌํธ : 9090 / TCP
ํธ์คํธ ํฌํธ : 0 / TCP
์ธ์ :
--authentication-mode = token
-๋น๋ณด์ ๋ก๊ทธ์ธ ํ์ฑํ
์ํ : ์คํ ์ค
์์ : 2019 ๋
4 ์ 25 ์ผ ๋ชฉ์์ผ 12:04:43 +0100
์ด ๋ฉ์์ง๋ clusterAdmin ์ญํ ์ ํด๋น ๋ค์ ์คํ์ด์ค์ ๊ตฌ์ฑ ๋งต์ ๋์ด ํ ๊ถํ์ด ์์์ ๋ํ๋
๋๋ค. ์ด๋ฅผ ์ฌ์ฉ์ ์ญํ ์ ์ถ๊ฐํ์ฌ ํด๊ฒฐ๋๋์ง ํ์ธํด ์ฃผ์๊ฒ ์ต๋๊น?
๊ทธ๋ ์ง ์์ผ๋ฉด ClusterAdmin ์ญํ yaml ๋ฐ ๋์ ๋ณด๋ ๋ฐฐํฌ yaml์ ๋ณด๋ด ์ฃผ์๋ฉด ์ดํด๋ณผ ์ ์์ต๋๋ค.
์๋น์ค ๊ณ์ (๊ธฐ๋ณธ ๋์ ๋ณด๋ ์๋)์ผ๋ก ๋ค์ ์๋ํ๋๋ฐ ์ ์๋ํ๋ ๊ฒ ๊ฐ์ต๋๋ค. ๊ทธ๋ฌ๋ ํด๋ฌ์คํฐ ๊ด๋ฆฌ์ ์ญํ ๋ฐ์ธ๋ฉ์ด์๋ AAD ์ฌ์ฉ์์ ํ ํฐ์ ์ฌ์ฉํ๋ฉด ๋ก๊ทธ์ธ์ ์คํจํฉ๋๋ค. ์ฌ๋ฐ๋ฅธ RBAC๋ฅผ ์ฌ์ฉํ๋ AAD๊ฐ ํ ํฐ์ผ๋ก ๋์ ๋ณด๋์ ๋ก๊ทธ์ธํ๊ณ RBAC ๋ฐ์ธ๋ฉ์ ์ ์ ๋๋๋ก ๋์ ๋ณด๋์์ ๊ถํ ์์ค์๋ฐ์ ์ ์์ด์ผํฉ๋๊น?
๋ค, ๊ทธ๋์ผํฉ๋๋ค. k8s ๋์ ๋ณด๋์ ํ ํฐ์ ๊ฐ์ ธ ์ค๋ ์ฌ์ฉ์์ ํจ๊ป ๊ธฐ๋ณธ NS์ ๊ตฌ์ฑ ๋งต์ ๋์ด ํ ์ ์์ต๋๊น? ์ฌ์ฉ์์ ํจ๊ป ํด๋น ์์ ์ ์ํ ํ ์ ์๋ค๋ฉด ์์ ํ ๊ฒ์ ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ๋์ ๋ณด๋์ ์ ๋ฌํ๋ ํ ํฐ์ ํ์ธํฉ๋๋ค.
ํด๊ฒฐ ๋ ๊ฒ์ผ๋ก ๋ณด์ด๋์ด ์ค๋ ๋์ ์คํธ์ ๋ฐฉ์งํ๋ ค๋ฉด jpalma [at] microsoft.com์ผ๋ก ๋ฉ์ผ์ ๋ณด๋ด์ฃผ์ธ์.
์ด๋ฅผ ๊ฐ์ ํ๋ ค๋ฉด ๋์ ๋ณด๋ ๋ฐฐํฌ๋ฅผ ํธ์ง ํ ์ ์์ต๋๋ค.
์.
kubectl edit deploy -n kube-system kubernetes-dashboard
๊ทธ๋ฆฌ๊ณ ์ปจํ ์ด๋ ์ฌ์์ ์ถ๊ฐํ์ญ์์ค.
containers: - args: - --authentication-mode=token - --enable-insecure-login
์์ผ๋ก ์ฐ๋ฆฌ๋ ํ ํฐ ์ธ์ฆ์ ์ํํ๊ณ ํฌํธ 9090์ 8443์ผ๋ก, ์ฒด๊ณ๋ฅผ HTTPS๋ก ๋ณ๊ฒฝํ๊ณ ์์ฒด ์๋ช ๋ ์ธ์ฆ์๋ฅผ ์ฌ์ฉํ ๊ฒ์ ๋๋ค. ๊ณง ์ถ์ ๋ ์์ ์ด๋ฉฐ ์ถ์ ๋ ธํธ์ ๋ฐํ ๋ ์์ ์ ๋๋ค.
https://github.com/Azure/aks/releases
์ฌ๋ฌ๋ถ์ ํ์ ๋ผ์ธ์ ์ฝ์ํ์ จ์ต๋๋ค. ํ์ฌ๋ ํด๊ฒฐ์ฑ ์ด ์์ผ๋ฉฐ์ด ์์ ํ์ง ์์ ํด๊ฒฐ์ฑ ์ ๋ค์ ์ฌ์ฉํฉ๋๋ค. ์ด ๋ฌธ์ ๋ ์ค๋ซ๋์ ์ด๋ ค ์์ง๋ง ๋์์ ๋ค๋ฅธ ๊ฒ๋ค์ด ์ฐธ์ํ๊ณ ์์ต๋๋ค. ์ค์๊ฐ ์ผ์ ์ ์๋ ค ์ฃผ์ค ์ ์์ต๋๊น ??
@iainfoulds ์ค์ ๋ก timelienes๋ฅผ ์ ๊ณต ํ ์ ์์ต๋๊น ??
์ธ์ฉ :
@ palma21 ์ ํด๊ฒฐ์ ์ํด ํ์ ๋ผ์ธ์ ์ถ๊ฐ ์ปจํ ์คํธ๋ฅผ ์ ๊ณต ํ ์ ์์ต๋๋ค.
@ palma21 ํ์ฌ ์๋ฃจ์
์ ์ด์์ ์ด์ง ์์ต๋๋ค. ์ด๋ค ์ด์ ๋ก ์ฝ๋ ์ค์ด ์๋ํ์ง ์์ต๋๋ค.
์ค๋ฅ : "kubernetes-dashboard"๋ฐฐํฌ๊ฐ ์๋ชป๋์์ต๋๋ค.
์์ผ๋ก ์ฐ๋ฆฌ๋ ํ ํฐ ์ธ์ฆ์ ์ํํ๊ณ ํฌํธ 9090์ 8443์ผ๋ก ๋ณ๊ฒฝํ๊ณ ์ฒด๊ณ๋ฅผ HTTPS๋ก ๋ณ๊ฒฝํ ๊ฒ์ ๋๋ค.
์ธ์ ???
๋ฐฐํฌ ๋งค๋ํ์คํธ๊ฐ ์ ํจํ์ง ์์ ๊ฒฝ์ฐ ๊ตฌ๋ฌธ ๋๋ ๋ค์ฌ ์ฐ๊ธฐ ๋ฌธ์ ์ผ ์ ์์ต๋๋ค. ๋๋ ๊ทธ๊ฒ์ ๋ค์ํ๊ณ ์๋ํฉ๋๋ค.
์ธ๋ผ์ธ์ผ๋ก ์๋
args: ["--authentication-mode=token", "--enable-insecure-login"]
6 ์ ๋ง์์ด ๋ณ๊ฒฝ ์ฌํญ์ด ์ ์ฉ๋ฉ๋๋ค.
์ด๊ฒ์ @ palma21 ๋
ธํธ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ ๊ฒ์
๋๋ค.
aks-dashboard.sh
# As a workaround accessing the dashboard using a token without enforcing https secure communication (tunnel is exposed ver http), you can edit the dashboard deployment with adding the following argument
# It is an issue currently being discussed here https://github.com/MicrosoftDocs/azure-docs/issues/23789
# args: ["--authentication-mode=token", "--enable-insecure-login"] under spec: containers
# spec:
# containers:
# - name: *****
# image: *****
# args: ["--authentication-mode=token", "--enable-insecure-login"]
kubectl edit deploy -n kube-system kubernetes-dashboard
# Get AAD token for the signed in user (given that user has the approperiate access). Use (az login) if you are not signed in
SIGNED_USER_TOKEN=$(az account get-access-token --query accessToken -o tsv)
echo $SIGNED_USER_TOKEN
# establish a tunnel and login via token above
# If AAD enabled, you should see the AAD sign in experience with a link and a code to https://microsoft.com/devicelogin
az aks browse --resource-group $RG --name $CLUSTER_NAME
# You can also use kubectl proxy to establish the tunnel as well
# kubectl proxy
# Then you can navigate to sign in is located http://localhost:8001/api/v1/namespaces/kube-system/services/kubernetes-dashboard/proxy/#!/login
# Note: you can also use the same process but with generated kubeconfig file for a Service Account that is bound to a specific namespace to login to the dashboad.
๋๋ ์ด๊ฒ์ ์๋ํ๋ค :
kubectl edit deploy -n kube-system kubernetes-dashboard
2019 ๋
9 ์ 12 ์ผ์ ๋ฐฐํฌ ๋ ์ต์ AKS๋ก.
yaml ํ์ผ๋ก ์ฑ์์ง ๋ฉ๋ชจ์ฅ์ด ์ด๋ ธ์ง๋ง ์ ์ฅํ๊ณ ๋ซ์์ ๋ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค.
error: deployments.extensions "kubernetes-dashboard" is invalid
error: Edit cancelled, no valid changes were saved.
์ด๋ค ์์ด๋์ด?
์ด๊ฒ์ ๋งค์ฐ ์ค์ํ ๋ฒ๊ทธ ์ธ ๊ฒ ๊ฐ์ต๋๋ค. ๋ด๊ฐ ์ดํดํ๋๋๋ก AAD ๋ก๊ทธ์ธ์ ์ฌ์ฉํ์ฌ Kubernetes ๋์ ๋ณด๋์ ์ก์ธ์ค ํ ์ ์์ต๋๋ค.
๋ ๋์ ๊ฒ์ ๋ฌธ์ ๊ฐ ์๋ชป๋์๋ค๋ ๊ฒ์ ๋๋ค.
Kubernetes ๋์ ๋ณด๋์ ๋ํ ์ธ์ฆ์ ์ค์ ํ ๋ ๊ธฐ๋ณธ ๋์ ๋ณด๋ ์๋น์ค ๊ณ์ ์ ํ ํฐ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ํ ํฐ์ ์ฌ์ฉํ๋ฉด ๊ฐ ์ฌ์ฉ์๊ฐ ์์ ์ ๊ถํ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๊ธฐ๋ณธ ๋์ ๋ณด๋ ์๋น์ค ๊ณ์ ์ ์ฌ์ฉํ๋ฉด ์ฌ์ฉ์๊ฐ ์์ ์ ๊ถํ์ ์ฐํํ๊ณ ๋์ ์๋น์ค ๊ณ์ ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ด ์ค๋ ๋๋ฅผ ์ฝ์์ผ๋ก์จ ์ด๊ฒ์ ๊นจ์ก์ต๋๋ค. ์ด ๋ฒ๊ทธ๋ฅผ ์์ ํ๊ฑฐ๋ ์ต์ํ ๋ฌธ์๋ฅผ ์ ๋ฐ์ดํธํ์ฌ ํ์ฌ ๋ถ๊ฐ๋ฅํ๋ค๋ ๊ฒ์ ๋ช ํํ ํ ์ ์์ต๋๊น?
์ด ํฐ์ผ์ 1 ์ 30 ์ผ์ ์ฒ์ ์ ๊ธฐ๋์์ผ๋ฉฐ,์ด ๋ฒ๊ทธ๊ฐ ๊ณต๊ฐ๋๊ธฐ๊น์ง๋ ์ค๋ ์๊ฐ์ด ๊ฑธ๋ฆฝ๋๋ค.
6 ์ ๋ง์์ด ๋ณ๊ฒฝ ์ฌํญ์ด ์ ์ฉ๋ฉ๋๋ค.
@ palma21 June์ด
์์์ ์ดํด๋ณธ ์ ๋ฌธ์๋ฅผ ํฌํจํ์ฌ ๋กค์์ํ์ง๋ง ์ ๋ธ๋ผ์ฐ์ ๋์๊ณผ ๋ฒ๊ทธ๋ก ์ธํด ๋กค๋ฐฑํด์ผํ์ต๋๋ค.
์ด๋ฒ ๋ฌ ๋ง๊น์ง ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ํ์ฌ ์์ ์ค์ ๋๋ค.
๊ทธ ๋์์ด ๊ธฐ๋ฅ์ ํ์ฑํํ๋ ํด๊ฒฐ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.
๋ฐฐํฌ ํธ์ง
์ธ์ : [ "--authentication-mode = token", "--enable-insecure-login"]
์์ ์ค๋ฅ๋ ๊ตฌ๋ฌธ ๋๋ ํธ์ง๊ธฐ ๋ฌธ์ ์ธ ๊ฒ ๊ฐ์ต๋๋ค. ๋ฐฉ๊ธ ๋ค์ ํ ์คํธํ๋๋ฐ ์ฌ์ ํ ์๋ํฉ๋๋ค.
์ด ๋ฒ๊ทธ์ ๊ด๋ จ๋ ์ ๋ฐ์ดํธ๊ฐ ์์ต๋๊น?
๊ฐ์ ๋ฌธ์ ์ ์ง๋ฉด ํด ์๋๋ฐ, ์ด์ ๋ํ ์ ๋ฐ์ดํธ๊ฐ ์์ต๋๊น? ๊ทธ๋ฆฌ๊ณ ์์ ๋ ์์ ์ธ ETA๊ฐ ์์ต๋๊น?
์ด๋ฐ ๋ฒ๊ทธ๊ฐ ์๋์ง ํ์ธํ๊ธฐ ์ํด AKS๋ฅผ ์ฌ์ฉํ์ฌ ํ ์คํ ์๋ฃจ์ ์ ๋ฐฐํฌํ๋ ๋ฐ ๋ช ๋ฌ์ ์๋นํ๋ Microsoft ์ ํ์ ๋ํด ๋ฒ ํ ํ๋ ๊ฒ์ ์ ๋ง ์ค๋ง ์ค๋ฝ์ต๋๋ค ....
์ด ๋ฌธ์ ๋ ์คํธ์ผ๋ก ์ฒ๋ฆฌํฉ๋๋ค. ์ด๊ฒ์ด ๋ฐ๋ก @ Microsoft 1์ ํตํด ๋ด ๊ณ ์ฉ์ฃผ์ ์ง์ ๋ด๋น์๊ฐ ์ ์๊ฒํ๋ผ๊ณ ํ ๊ฒ์ ๋๋ค.
๊ฒ ์ต๋๊น ๋งค์ฐ SSL ์คํ ์ ํ ํฌํจ ๋ค์ฌ์ง์ง ์๋ ์๋ฃจ์ ์๋ค.
1 : ๊ณ ๊ฐ ์๋น์ค ๋ฐ ์ง์ / Microsoft Azure ๊ธฐ์ ์ง์ / Azure ์ปจํ ์ด๋ ํ-EMEA-์์ _ ์ง์ ์์ค์ปฌ๋ ์ด์ ์์ง๋์ด _๋ก๋ถํฐ ๊ฐ์ธ์ ์ผ๋ก ์ง์ ์ง์นจ์ ๋ฐ์์ต๋๋ค.
์ ๋ ์ฌ๊ธฐ์ ํฌ๋ช ์ฑ๊ณผ MS์ ํ๋ฅญํ ์ปค๋ฎค๋์ผ์ด์ ์ ์ข์ํฉ๋๋ค. ๐คฆโโ
@ palma21 ์ด ๋ฌธ์ ์ ๋ํ ์ ๋ฐ์ดํธ๊ฐ ์์ผ๋ฉด ๊ณต์ ํด ์ฃผ์๊ฒ ์ต๋๊น? ๊ฐ์ฌ :)
์ด๊ฒ์ ๋ํ ์ ๋ฐ์ดํธ๋ฅผ ์ป๋ ๊ฒ์ด ์ข์ ๊ฒ์ ๋๋ค
์ด ๋ฌธ์ ์ ๋ํ ์์ ์ฌํญ์ด ์์ต๋๊น? ์๋๋ฉด RBAC ์ง์ AKS ํด๋ฌ์คํฐ ํ ๋ํธ๊ฐ ํดํน ๋ง ๊ฑฐ์น๋ฉด๋ฉ๋๊น?
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ถ์ ํ ์์๋ ๋ฐฑ ๋ก๊ทธ ํญ๋ชฉ ์ด๋ฆ์ ๋ฌด์์ ๋๊น?
์ ๋ฌด๋ฅผ ํตํด ์ผ๋ถ Microsoft ์ ๋ฌธ๊ฐ์ ์ด์ผ๊ธฐ๋ฅผ ๋๋ ์์๋ ๊ฐ์ธ์ผ๋ก์ ๊ณต์ ํ ์์๋ ์ต์ ๋ด์ค๋ Dashboard Plugin ์ด ๋ณธ์ง์ ์ผ๋ก ์์ ํ์ง ์๋ค๋ ๊ฒ์ ๋๋ค (์ด๋ฆ์ด์๋ Microsoft Architect K8s Advisor Expert-์ ๋ชฉ์ด ์๋๋ผ ํด๋น ์ ๋ชฉ์ ๋ํ ์ค๋ช ์). ์ฌ์ฉํด์๋ ์๋ฉ๋๋ค.
๋๋ ๊ทธ ์ฑ๋ช ์ ๋์ํ๋ฉฐ,์ด ๊ฐ์ ์ง๋ฌธ์ ๋ฌป๋ ๋ฏธ๋์ ๋ชจ๋ ์ฌ๋๋ค์๊ฒ K8s์ ๋ณด์ ์ํ / ๋ฌธ์ ๋ฅผ ์ดํดํ๊ธฐ ์ํด K8s๋ฅผ ์ฝ๊ณ ๋ฅ๋ ฅ์ ๊ตฌ์ถํ๋๋ก ์์ฒญํฉ๋๋ค.
(๋ ธ๋ธ ๋ฐ ๋ค์ด์ผ๊ณผ ์น UI๋ฅผ ๊ฐ์ง ๋์ ์ ๋จ์ง ์๋ฒฝํ๊ฒ ์คํํ ์์๋ CLI ๋๊ตฌ ์ฌ์ฉ์ ๋จ์ํ ์ด์ต์ ์ํด - ๊ทธ ์ค ๊ฐ์ ํ์ค์ผ๋ก ์ ์ ๋ ๋ง์ K8S์ ์ถ๊ฐ๊ฐ kustomize์ ).
https://github.com/pusher/oauth2_proxy ๋ก ์ํ ํ ์
์๋ ํ์ธ์.
https://github.com/pusher/oauth2_proxy ๋ก ์ํ ํ ์
์๋
ํ์ธ์
๋์ ๋ณด๋ ์ ์ ์ฉ yaml, oauth2_proxy ์ฉ values.yaml ๋ฐ Azure AD ์ ํ๋ฆฌ์ผ์ด์
์ ๋ํ ์ ์ฉ ๊ฐ๋ฅํ ์ค์ ์ ํฌํจํ๋ ์คํ ๊ฐ๋ฅํ ์์ ๋ฅผ ์ฐ๊ฒฐํ๊ฑฐ๋ ๊ณต์ ํด ์ฃผ์๊ฒ ์ต๋๊น?
๋ช ์ผ ๋์ Azure AD์์ ์๋ํ๋๋ก oauth2_proxy๋ฅผ ์ป์ผ๋ ค๊ณ ๋
ธ๋ ฅํ์ง๋ง์ด๋ฅผ ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์ถฉ๋ถํ ์์ธํ ์ค๋ช
ํ๊ณ ๋ค์ํ ํ๋๊ทธ ๋ฐ ์ค์ ์ ์คํํ๋ ๋ฐ ํ์ํ ์ ์ฒด ์คํ ๊ฐ๋ฅํ ์์ ๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค. ์ถฉ๋ถํ ๋ฉ์ง ์์ต๋๋ค.
์ ๋ง ๊ฐ์ฌํ๊ฒ ์ต๋๋ค!
@edemen ๋ด ํ :
nginx.ingress.kubernetes.io/auth-url: "https://yourvalue/oauth2/auth"
nginx.ingress.kubernetes.io/auth-signin: "https://yourvalue/oauth2/start?rd=$escaped_request_uri"
nginx.ingress.kubernetes.io/configuration-snippet: |
auth_request_set $token $upstream_http_authorization;
proxy_set_header Authorization $token;
extraArgs:
provider: "azure"
azure-tenant: "yourvalues"
whitelist-domain: "yourvalues"
cookie-domain: "yourvalues"
set-authorization-header: "true"
ingress:
enabled: true
path: /oauth2
์ด๊ฒ์ผ๋ก ์ถฉ๋ถํฉ๋๋ค.
์๋
ํ์ธ์.
๋ต์ฅ ํด์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค.
์ค๋ Azure AD ๋ฐ oauth2 ํ๋ก์๊ฐ ์๋ํ๋๋ก ๊ด๋ฆฌํ์ง๋ง login.live.com์์ ๋ฐํ ํ 400 ์ค๋ฅ (์์ธํ ๋ด์ฉ์ https://github.com/oauth2-)๋ก ์ธํด ๋ง์ ์ค์ ์ด ์ค๋ฅ 500์ผ๋ก ๋๋ฉ๋๋ค. proxy / oauth2-proxy / issues / 458)
๊ธฐ๋ณธ์ ์ผ๋ก set-authorization-header: "true"
ํ๋ฉด oauth2 ํ๋ก์๋ฅผ ์ฌ์ฉํ ์ธ์ฆ์ด Azure์์ ์ ํ ์๋ํ์ง ์์ต๋๋ค. ์ด์ ๋ฅผ ์์ ๋ด๋ ค๊ณ ํ์ง๋ง ์ง๊ธ๊น์ง๋ ์๋ฌด๊ฒ๋ ์์ต๋๋ค.
๋ง์ผ์ ๋๋นํ์ฌ helm install oauth2-proxy stable/oauth2-proxy -n oauth2-proxy --values oauth2-proxy-values.yaml
oauth2 ํ๋ก์๋ฅผ ์ค์นํ๊ณ ์์ต๋๋ค.
์ ๊ฒฝ ์ฐ์ง ๋ง. ๋ถ๋ช
ํ Dashboard v1.10.1์ ์ฐ๋ฆฌ๊ฐ ๊ฐ์ง๊ณ ์๋ Kubernetes 1.16์์๋ ์๋ํ์ง ์์ต๋๋ค.
๊ฐ์ฌํฉ๋๋ค
AKS์ ํจ๊ป ์๋ํ๋ ๊ธฐ๋ณธ Kubernetes ๋์ ๋ณด๋๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ์ด์ด ์ข์ง ์์์ง๋ง ์์
์ ๋ง์ ์๊ฐ์ ์๋นํ์ง ์์๋ค๋ ๊ฒ์ ์ธ์ ํด์ผํฉ๋๋ค. ์๋ํ๋ ๊ฒ์ฒ๋ผ ๋ณด์ด๋ ์๋ฃจ์
(์๊ฐ์ ๋ชจ๋ ๋ฌธ์ ๊ฐ ํ์๋จ)์ kubectl proxy
์ ํจ๊ป ํ์ค ๋์ ๋ณด๋๋ฅผ ์ฌ์ฉํ๊ณ ๋ก์ปฌ ์ฌ์ฉ์ kubeconfig๋ฅผ ์
๋ก๋ํ๋ ๊ฒ์
๋๋ค.
๋จ์ํ URL๋งํผ ์ฝ๊ณ ์ข์ง๋ ์์ง๋ง AD ์ฌ์ฉ์ ์ปจํ ์คํธ์์ ์คํ๋๋ ๋์ ๋ณด๋๋ฅผ ์ฌ์ฉํ๋ ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ ์ธ ๊ฒ์ฒ๋ผ ๋ณด์ด๋ ๋ค๋จ๊ณ ํ๋ก์ธ์ค์ ๋๋ค. ๋์ ๋ณด๋ ์์ฒด๋ฅผ ๋ง์ด ์ฌ์ฉ์ ์ง์ ํ์ง ์์๋๋์ง๋ง Azure AD๋ฅผ ์ฌ์ฉํ๋ ๊น๋ํ ์ ๊ทผ ๋ฐฉ์์ ๊ณ์ ์ฃผ์ํ๊ณ ์์ต๋๋ค.
@edemen ๋ฌผ๋ก ์ด๊ฒ์ K8s <1.15์์๋ง ์๋ํฉ๋๋ค. K8s 1.16์ ๊ฒฝ์ฐ ์๋ก์ด v2.0 ๋์ ๋ณด๋๊ฐ ๊ณต์ ์ถ์ ๋ ๋๊น์ง ๊ธฐ๋ค๋ ค์ผํฉ๋๋ค.
Dashboard v2๊ฐ https://github.com/kubernetes/dashboard/releases/tag/v2.0.0 ์ ์์ํ์ต๋๋ค. ๊ทธ๋ฌ๋ k8s 1.16์ ๋ถ๋ถ์ ์ผ๋ก ์ง์ํ๋ ๊ฒ ๊ฐ์ต๋๋ค.
@SayakMukhopadhyay ๋ฒ์
์๊ฒฌ์ ๋ณด๋ด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค!
์ด ๊ธฐ์ฌ๋ ์ต๊ทผ Kubernetes ๋์ ๋ณด๋ ๋ก๊ทธ์ธ์ ๋ํ ์ธ๋ถ ์ฌํญ์ผ๋ก ์ ๋ฐ์ดํธ๋์์ต๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
@ MicahMcKittrick-MSFT ๋๋ ์ด๊ฒ์ ํตํด ์ ์๋ํฉ๋๋ค. ๋๋ ์ด๊ฒ์ ์ธ๊ธํ๊ณ ์๋ค
https://docs.microsoft.com/en-us/azure/aks/kubernetes-dashboard#for -rbac-enabled-clusters
๋์ ๋ณด๋ ์ฉ RBAC์ ์ ํํ๊ฒ ์ผ์นํฉ๋๋ค.
You can also integrate Azure Active Directory authentication to provide a more granular level of access.
์ด ์์ ์ ์ํํ๋ ๋ฐฉ๋ฒ์ ๋ ๋ง์ ๊ด์ฌ์ด ์์ต๋๋ค.!