성태의 닷넷 이야기
홈 주인
모아 놓은 자료
프로그래밍
질문/답변
사용자 관리
사용자
메뉴
아티클
외부 아티클
유용한 코드
온라인 기능
MathJax 입력기
최근 덧글
[정성태] Java - How to use the Foreign Funct...
[정성태] 제가 큰 실수를 했군요. ^^; Delegate를 통한 Bein...
[정성태] Working with Rust Libraries from C#...
[정성태] Detecting blocking calls using asyn...
[정성태] 아쉽게도, 커뮤니티는 아니고 개인 블로그입니다. ^^
[정성태] 질문이 잘 이해가 안 됩니다. 우선, 해당 소스코드에서 ILis...
[양승조
] var대신 dinamic으로 선언해서 해결은 했습니다. 맞는 해...
[양승조
] 또 막혔습니다. ㅠㅠ var list = props[i].Ge...
[양승조
] 아. 감사합니다. 어제는 안됐던것 같은데....정신을 차려야겠네...
[정성태] "props[i].GetValue(props[i])" 코드에서 ...
글쓰기
제목
이름
암호
전자우편
HTML
홈페이지
유형
제니퍼 .NET
닷넷
COM 개체 관련
스크립트
VC++
VS.NET IDE
Windows
Team Foundation Server
디버깅 기술
오류 유형
개발 환경 구성
웹
기타
Linux
Java
DDK
Math
Phone
Graphics
사물인터넷
부모글 보이기/감추기
내용
<div style='display: inline'> <h1 style='font-family: Malgun Gothic, Consolas; font-size: 20pt; color: #006699; text-align: center; font-weight: bold'>Docker Desktop for Windows를 위한 k8s 대시보드 활성화</h1> <p> 아래의 글을 보면,<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > How to set up Kubernetes on Windows 10 with Docker for Windows and run ASP.NET Core ; <a target='tab' href='https://www.hanselman.com/blog/how-to-set-up-kubernetes-on-windows-10-with-docker-for-windows-and-run-aspnet-core'>https://www.hanselman.com/blog/how-to-set-up-kubernetes-on-windows-10-with-docker-for-windows-and-run-aspnet-core</a> </pre> <br /> k8s 대시보드를 활성화시키는 방법이 나옵니다. 그런데, 그 글에 나온 방법을 보면,<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/alternative/kubernetes-dashboard.yaml kubectl create -f https://raw.githubusercontent.com/kubernetes/heapster/master/deploy/kube-config/influxdb/influxdb.yaml kubectl create -f https://raw.githubusercontent.com/kubernetes/heapster/master/deploy/kube-config/influxdb/heapster.yaml kubectl create -f https://raw.githubusercontent.com/kubernetes/heapster/master/deploy/kube-config/influxdb/grafana.yaml </pre> <br /> 이제는 yaml에 대한 URL이 모두 없어져서 저 방법을 사용할 수 없는데요, 대신 원래의 github repo와 관련 문서에 따라,<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > kubernetes/dashboard ; <a target='tab' href='https://github.com/kubernetes/dashboard'>https://github.com/kubernetes/dashboard</a> 쿠버네티스 문서 / 태스크 / 클러스터 내 어플리케이션 접근 / 웹 UI (대시보드) ; <a target='tab' href='https://kubernetes.io/ko/docs/tasks/access-application-cluster/web-ui-dashboard/'>https://kubernetes.io/ko/docs/tasks/access-application-cluster/web-ui-dashboard/</a> </pre> <br /> URL을 바꿔 다음과 같이 실행하면 됩니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > c:\temp> <span style='color: blue; font-weight: bold'>kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.2.0/aio/deploy/recommended.yaml</span> namespace/kubernetes-dashboard created serviceaccount/kubernetes-dashboard created service/kubernetes-dashboard created secret/kubernetes-dashboard-certs created secret/kubernetes-dashboard-csrf created secret/kubernetes-dashboard-key-holder created configmap/kubernetes-dashboard-settings created role.rbac.authorization.k8s.io/kubernetes-dashboard created clusterrole.rbac.authorization.k8s.io/kubernetes-dashboard created rolebinding.rbac.authorization.k8s.io/kubernetes-dashboard created clusterrolebinding.rbac.authorization.k8s.io/kubernetes-dashboard created deployment.apps/kubernetes-dashboard created service/dashboard-metrics-scraper created deployment.apps/dashboard-metrics-scraper created </pre> <br /> 이로 인한 변화는 각각 다음과 같이 확인할 수 있고.<br /> <br /> <pre style='height: 400px; margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > c:\temp> <span style='color: blue; font-weight: bold'>kubectl get namespace</span> NAME STATUS AGE default Active 50d kube-node-lease Active 50d kube-public Active 50d kube-system Active 50d kubernetes-dashboard Active 123m c:\temp> <span style='color: blue; font-weight: bold'>kubectl get serviceaccount -n kubernetes-dashboard</span> NAME SECRETS AGE default 1 137m kubernetes-dashboard 1 137m c:\temp> <span style='color: blue; font-weight: bold'>kubectl get svc -n kubernetes-dashboard</span> NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE dashboard-metrics-scraper ClusterIP 10.111.93.45 <none> 8000/TCP 124m kubernetes-dashboard ClusterIP 10.96.4.48 <none> 443/TCP 124m c:\temp> <span style='color: blue; font-weight: bold'>kubectl get secrets -n kubernetes-dashboard</span> NAME TYPE DATA AGE default-token-kxmhk kubernetes.io/service-account-token 3 127m kubernetes-dashboard-certs Opaque 0 127m kubernetes-dashboard-csrf Opaque 1 127m kubernetes-dashboard-key-holder Opaque 2 127m kubernetes-dashboard-token-9fhlp kubernetes.io/service-account-token 3 127m c:\temp> <span style='color: blue; font-weight: bold'>kubectl get configmap -n kubernetes-dashboard</span> NAME DATA AGE kubernetes-dashboard-settings 0 127m c:\temp> <span style='color: blue; font-weight: bold'>kubectl get role.rbac.authorization.k8s.io -n kubernetes-dashboard</span> NAME CREATED AT kubernetes-dashboard 2021-03-16T23:43:21Z c:\temp> <span style='color: blue; font-weight: bold'>kubectl get clusterrole.rbac.authorization.k8s.io | findstr kubernetes-dashboard</span> kubernetes-dashboard 2021-03-16T23:43:21Z c:\temp> <span style='color: blue; font-weight: bold'>kubectl get rolebinding.rbac.authorization.k8s.io -n kubernetes-dashboard</span> NAME ROLE AGE kubernetes-dashboard Role/kubernetes-dashboard 130m c:\temp> <span style='color: blue; font-weight: bold'>kubectl get clusterrolebinding.rbac.authorization.k8s.io | findstr kubernetes-dashboard</span> kubernetes-dashboard ClusterRole/kubernetes-dashboard 131m c:\temp> <span style='color: blue; font-weight: bold'>kubectl get deployment.apps -n kubernetes-dashboard</span> NAME READY UP-TO-DATE AVAILABLE AGE dashboard-metrics-scraper 1/1 1 1 132m kubernetes-dashboard 1/1 1 1 132m </pre> <br /> dashboard를 활성화시켰으면, 이제 웹 브라우저로 방문을 해야 하는데요, 간단하게 kubectl proxy 모드를 이용해,<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > Kubernetes - kube-apiserver와 REST API 통신하는 방법 (Docker Desktop for Windows 환경) ; <a target='tab' href='https://www.sysnet.pe.kr/2/0/12566'>https://www.sysnet.pe.kr/2/0/12566</a> </pre> <br /> 다음의 URL 주소로 웹 브라우저에서 방문할 수 있습니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > <a target='tab' href='http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/'>http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/</a> </pre> <br /> 그럼 다음과 같이 service account token 값을 묻는데,<br /> <br /> <img onclick='toggle_img(this)' class='imgView' alt='k8s_dashboard_1.png' src='/SysWebRes/bbs/k8s_dashboard_1.png' /><br /> <br /> <a target='tab' href='https://www.sysnet.pe.kr/2/0/12566#get_service_token'>Kubernetes - kube-apiserver와 REST API 통신하는 방법 (Docker Desktop for Windows 환경)</a> 글에서 설명한 방법으로 구한 token 값을 입력하면 됩니다.<br /> <br /> 인증에 성공하면 이후 다음과 같은 화면을 보게 됩니다.<br /> <br /> [그럼 출처: <a target='tab' href='https://kubernetes.io/docs/tasks/access-application-cluster/web-ui-dashboard/'>https://kubernetes.io/docs/tasks/access-application-cluster/web-ui-dashboard/</a>]<br /> <img onclick='toggle_img(this)' class='imgView' alt='k8s_dashboard_2.png' src='/SysWebRes/bbs/k8s_dashboard_2.png' /><br /> <br /> <hr style='width: 50%' /><br /> <br /> kubectl proxy는 이전 글에서 설명한 바와 같이 kube-apiserver로의 모든 요청을 허용합니다. 만약 dashboard만을 사용한다면, 이런 경우 kubectl이 중계해 주는 API 영역을 제한하는 것이 바람직할 수 있는데요, 이를 위해 원하는 서비스로만 요청을 전달하는 명령어를 사용하는 것도 가능합니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > kubectl port-forward -n kubernetes-dashboard service/kubernetes-dashboard 8080:443 </pre> <br /> 위와 같이 <a target='tab' href='https://github.com/kubernetes/dashboard/tree/master/docs/user/accessing-dashboard'>port-forward 모드로 실행해 두면 kubernetes-dashboard 서비스로만 중계 역할</a>을 하게 됩니다. 그리고 dashboard에 대한 접속 URL도 (/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/ URL을 지정할 필요 없이) 포트까지만 지정해도 됩니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > https://localhost:8080/ </pre> <br /> <hr style='width: 50%' /><br /> <br /> 이외에도 NodePort, Ingress 등의 방법을 이용해 접근할 수 있습니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > dashboard/docs/user/accessing-dashboard/ ; <a target='tab' href='https://github.com/kubernetes/dashboard/tree/master/docs/user/accessing-dashboard'>https://github.com/kubernetes/dashboard/tree/master/docs/user/accessing-dashboard</a> dashboard/docs/user/installation.md ; <a target='tab' href='https://github.com/kubernetes/dashboard/blob/master/docs/user/installation.md#recommended-setup'>https://github.com/kubernetes/dashboard/blob/master/docs/user/installation.md#recommended-setup</a> </pre> </p><br /> <br /><hr /><span style='color: Maroon'>[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]</span> </div>
첨부파일
스팸 방지용 인증 번호
6246
(왼쪽의 숫자를 입력해야 합니다.)