์ฟ ๋ฒ๋คํฐ์ค ์น ๋์๋ณด๋ UI๋ฅผ ์ค์นํด๋ณด๊ฒ ์ต๋๋ค.
์ฟ ๋ฒ๋คํฐ์ค๋ ๊ธฐ๋ณธ์ ์ผ๋ก UI๋ฅผ ํจ๊ป ๋ฐฐํฌํ์ง ์์ต๋๋ค. ์ด๋ ๊ฒ ๋ณ๋๋ก ๋ฐฐํฌํด์ฃผ์ ์ผ ํฉ๋๋ค.
์ฌ๊ธฐ์์ ๊ณต์ ๋ฌธ์ ํ์ธํ ์ ์์ต๋๋ค.
์, ์ง๊ธ๋ถํฐ ๋์๋ณด๋ UI ๋ฐฐํฌ๋ฅผ ์งํํด๋ด ์๋ค.
1. DashBoard ์ค๋ธ์ ํธ ์์ฑ
์๋ ๋ช
๋ น์ด๋ก Kubernetes DashBoard ์์ค์ฝ๋๋ฅผ ๋ค์ด๋ก๋ ํฉ๋๋ค.
apply ๋ช
๋ น์ด๋ก ๋ค์ด๋ฐ์ ์คํํ๊ฒ ๋๋ฉด ์ธ๋ถ์์ ์ ์ํ ์ ์๊ธฐ๋๋ฌธ์, ๋ค์ด๋ก๋๋ฐ์ ํ ymalํ์ผ์ ์กฐ๊ธ ์์ ํด์ผ ํฉ๋๋ค.
[root@kube-manager /]# wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0/aio/deploy/recommended.yaml
๋ค์ด๋ฐ์ ํ ๋ด์ฉ์ ์กฐ๊ธ ์์ ํฉ๋๋ค.
41๋ฒ, 46๋ฒ ์ค์ ๊ฐ๊ฐ ๋ด์ฉ์ ์ถ๊ฐํด์ค๋๋ค.
[root@kube-manager /]# vi recommended.yaml
์ด์ , ์ค๋ธ์ ํธ๋ฅผ ์์ฑํฉ๋๋ค!
[root@kube-manager /]# kubectl apply -f recommended.yaml
์์ฑ๋ ๋ฆฌ์์ค๋ฅผ ํ์ธํด๋ด
์๋ค.
๋จผ์ , Namespace ์ ํ์ธํฉ๋๋ค.
[root@kube-manager /]# kubectl get namespace
์ฌ๊ธฐ์ kubenetes-dashboard ์ธ ๋ค์์คํ์ด์ค๋ก ๋ณ๊ฒฝํฉ๋๋ค.
[root@kube-manager /]# kubens kubernetes-dashboard
2. DashBoard ์ค๋ธ์ ํธ ํ์ธ
์ด์ kubenetes-dashboard ๋ค์์คํ์ด์ค์ ์ค๋ธ์ ํธ(๋ฆฌ์์ค)๋ค์ ์ดํด๋ด
์๋ค!
๋ช
๋ น์ด๋ ์๋์ ๊ฐ์ต๋๋ค.
[root@kube-manager /]# kubectl get svc -o wide
[root@kube-manager /]# kubectl get pods -o wide
[root@kube-manager /]# kubectl get secrets
3. DashBoard ์ฌ์ฉ์ ์์ฑํ๊ธฐ
๋์๋ณด๋๋ Bearer ํ ํฐ์ผ๋ก ๋ก๊ทธ์ธ ํ๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค.
์ด ๋ก๊ทธ์ธ ํ ํฐ์ ๋ฐ๊ธํ๊ธฐ ์ํด ์ฌ์ฉ์/๊ถํ์ ์ด๋ฒ ๋จ๊ณ์์ ์์ฑํด๋ณด๊ฒ ์ต๋๋ค ;) ๊ณต์๋ฌธ์๋งํฌ
๋จผ์ , ์๋น์ค ๊ณ์ (service Account) ์ ์์ฑํฉ๋๋ค.
์๋ ๋ช
๋ น์ด ๋ณต์ฌ ๋ถ์ฌ๋ฃ๊ธฐ ํ์ ํ ์คํ ํ๋ฉด "serviceaccount/admin-user created" ๋ผ๋ ๊ฒฐ๊ณผ๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
์๋ ๋ช ๋ น์ด๋ kubernetes-dashboard ๋ค์์คํ์ด์ค์ admin-user๋ผ๋ ๊ณ์ ์ ์์ฑํฉ๋๋ค.
[root@kube-manager /]# cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: ServiceAccount
metadata:
name: admin-user
namespace: kubernetes-dashboard
EOF
์ด์ ์ฌ์ฉ์๋ฅผ ๋ง๋ค์์ผ๋, ์ด ์ฌ์ฉ์์ ๊ถํ์ ๋ฃ์ด์ค๋๋ค.
์๋ ๋ช
๋ น์ด๋ฅผ ๋ณต์ฌ ๋ถ์ฌ๋ฃ๊ธฐ ํ ํ ์คํํ๋ฉด "clusterrolebinding.rbac.authorization.k8s.io/admin-user created" ๋ผ๊ณ ์ถ๋ ฅ๋ฉ๋๋ค.
[root@kube-manager /]# cat <<EOF | kubectl apply -f -
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: admin-user
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: admin-user
namespace: kubernetes-dashboard
EOF
์, ์ด์ ๋ง์ง๋ง์ Bearerํ ํฐ์ ํ์ธํด๋ด
์๋ค!!
๋จผ์ secret ์ค๋ธ์ ํธ๋ฅผ ํ์ธํฉ๋๋ค. 'admin-user'๊ฐ ๋ณด์
๋๋ค.
[root@kube-manager /]# kubectl get secret
์ด์ ํ ํฐ์ ํ์ธํฉ๋๋ค.
์๋ ๋ช
๋ น์ด๋ฅผ ๋ณต๋ถํ์๋ฉด, ์๋์ ๊ฐ์ดํ ํฐ๊ฐ์ด ์ถ๋ ฅ๋ฉ๋๋ค.
ํ ํฐ๊ฐ์ ํ์ธํ์ผ๋, ์ฝ์๋ก ์ ์ํด๋ด
์๋ค!!!
[root@kube-manager /]# kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep admin-user | awk '{print $ 1}')
4. DashBoard ์ ์ํ๊ธฐ
Kubenetes DashBoard๋ ๋ฐ๋์ https ๋ก ์ ์ํด์ผ ํฉ๋๋ค.
์น ๋ธ๋ผ์ฐ์ ์์ https://<Node IP>:30331 ๋ก ์ ์ํฉ๋๋ค.
์ ๊ฐ์ ๊ฒฝ์ฐ๋ ํฌ๋กฌ์ด๋, ์ฌํ๋ฆฌ(MAC์ฌ์ฉ์์
๋๋ค)๋ ์์ ์ ์์ด ๋ถ๊ฐํ๊ณ , FireFox๋ฅผ ๋ค์ด๋ฐ์ ์๋ ์บก์ณ ์ฌ์ง์ฒ๋ผ ์ํ์ ๊ฐ์ํ๊ณ ์ ์์ผ ๋๋ฌ ๊ฒจ์ฐ ๋ค์ด์์ต๋๋ค ใ
ใ
ใ
์ ๋ ํ
์คํธ ํธ์คํธ๊ฐ ๋ชจ๋ AWS EC2๋ฅผ ์ฌ์ฉํ์ต๋๋ค.
์ธ๋ถ์์ ์ ์ํ๊ธฐ ์ํด์ EIP๋ฅผ ํ ๋นํ์ฌ ์๋์์์ฒ๋ผ ๊ณต์ธIP๋ก ์ ์ํ ์ ์์ต๋๋ค.
์ฌ๋ฌ๋ถ์ ์ฌ๋ฌ๋ถ์ ๋คํธ์ํฌ ํ๊ฒฝ์ ๋ง๋๋ก ์ ์ ํด์ฃผ์๋ฉด ๋ฉ๋๋ค!
๊ณ ๊ธ์ ํด๋ฆญํ ํ "์ํ์ ๊ฐ์ํ๊ณ ๊ณ์ ์งํ"์ ํด๋ฆญํฉ๋๋ค.
์ฟ ๋ฒ๋คํฐ์ค ๋์๋ณด๋ ๋ก๊ทธ์ธ ํ์ด์ง๊ฐ ๋์๋ค์!
์ด์ ์ฌ๊ธฐ์์ ํ ํฐ์ ํด๋ฆญํ๊ณ , ์๊น ํ์ธํ๋ ํ ํฐ๊ฐ์ ๋ณต์ฌ ๋ถ์ฌ๋ฃ๊ธฐ ํฉ๋๋ค :)
๋ก๊ทธ์ธ์ด ์๋ฃ ๋์์ต๋๋ค.!
๋ง์ฝ ๋ก๊ทธ์ธ ํ์ ์๋ฌด๊ฒ๋ ๋ณด์ด์ง ์๋๋ค๋ฉด 10๋ถ์ ๋ ์๊ฐ ์ง๋ ํ ๋ก๊ทธ์์ ํ ๋ค์ ๋ก๊ทธ์ธ ํด๋ณด์ธ์!
์ด๋ฒ๋จ๊ณ๊ฐ ๋ง๋ฌด๋ฆฌ ๋์์ต๋๋ค.
๊ณ ์ํ์
จ์ต๋๋ค :)