--- title: 建立 kubernetes Dashboard --- # 建立 kubernetes Dashboard > [name=蔡秀吉][name=趙偉廷]<br/>[time=June 22 2022][color=#F4B400] # 如何建構 ## 研究流程  ## 開發流程 ## 1. 安裝 Docker(設定repository) [參照這篇](https://docs.docker.com/engine/install/ubuntu/) - 首先先更新 apt-get ```bash sudo apt-get update ``` - 安裝所需的 應用程式套件 喵 ```bash sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ gnupg-agent \ software-properties-common ``` - 新增官方 Docker GPG 密鑰 ```bash curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg ``` - 設定 官方穩定版本的 repository(資料庫)路徑 (適用 Docker 的 Ubuntu) ```bash echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null ``` ## 2. 安裝 Docker Engine - 依舊先更新基本套件 ```bash sudo apt-get update;sudo apt-get install docker-ce docker-ce-cli containerd.io ``` - 安裝最新版本的 engine,command and container ```bash sudo apt-get install docker-ce docker-ce-cli containerd.io ``` - 跑跑看 Docker hello world 看看有沒有出現 ```bash sudo docker run hello-world ``` - 可以使用 docker 指令來查看你的 image 和 container (選用) ```bash docker image ls ``` ```bash docker container ls ``` 可以看看這篇 [docker 基本指令](https://hackmd.io/@thc1006/rku088xM5) - 測試安裝 (查看docker版本) ```bash docker --version ```  - 新增一個 Docker 群組, ```bash sudo groupadd docker ``` - 並且將使用者加入即可提高權限執行docker, XXXX 為你的使用者帳戶名稱 如果就改成 user ```cmd= sudo usermod -aG docker XXXX ``` ## 3. 安裝 kubectl - 這邊要注意一下,要有虛擬化工具才能夠安裝 kubectl, 像是 VirtualBox VMware 也都可以 因為本期末專題是部屬微服務架構,所以安裝 Docker。 [參考文章](https://kubernetes.io/docs/tasks/tools/install-kubectl-linux/) - Linux 上使用 curl 安裝 kubectl ``` bash curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl" ``` - 安裝 kubectl ```bash sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl ``` - 這邊有一塊提高權限的部分(如果沒有root權限的話) ```cmd= chmod +x kubectl mkdir -p ~/.local/bin mv ./kubectl ~/.local/bin/kubectl ``` - 查看安裝的版本 ```bash kubectl version --client ``` # 安裝 minikube [參考網頁](https://minikube.sigs.k8s.io/docs/start/) - 輸入下列兩行指令,以下載安裝 minikube ```cmd= curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 sudo install minikube-linux-amd64 /usr/local/bin/minikube ``` - 啟動 minikube ```bash minikube start ``` - 跟剛剛的 kubectl 相借問 (獲取所有 pod 的詳細資訊) ```bash kubectl get po -A ``` - Finally你可以進去你的 Dashborad 以及 Url 啦~ 前提是你是桌面板的Ubuntu ```bash minikube dashboard --url ``` ~~然後你就在思考,奇怪 e04 怎麼沒有東西跑出來~~ > 「你以為成功了嗎?,沒有 GUI 的伺服器介面會把你搞到抓狂」 [name=HC Tsai] ## 4. 安裝 Ubuntu 伺服器版遠端桌面連線套件 (伺服器版本選用) [參考文章](https://www.ichiayi.com/tech/ubuntu_xrdp) - Ubuntu 安裝可讓 Windows 遠端桌面登入的 xrdp 安裝 xfce4 與 xrdp ```bash sudo apt install xfce4 xrdp ``` - 配置登入環境 ```cmd= echo xfce4-session > ~/.xsession sudo vi /etc/xrdp/startwm.sh ``` - 啟動 xrdp 服務 ```bash sudo service xrdp restart ``` - 你的windows電腦開啟遠端桌面連線 Win+Q 直接搜尋 "遠端桌面連線" 輸入你的伺服器IP並連線  - 輸入使用者帳號密碼  你就進入畫面啦 ~~真4K~~ - 還沒有結束ㄏㄏ ~~你他媽沒有內建瀏覽器,哭暈在廁所~~ ```bash sudo apt install firefox ``` - 下載完成後就會自動識別為預設瀏覽器啦~ ## 5. 創建一個應用程式看看(Pod、Service) ```cmd= kubectl create deployment hello-minikube --image=k8s.gcr.io/echoserver:1.4 kubectl expose deployment hello-minikube --type=NodePort --port=8080 ``` - 測試一個 hello-minikube 看看 ```bash kubectl get services hello-minikube ``` minikube 在你的 Web 瀏覽器 UI中顯示 ```bash minikube service hello-minikube ```  - 你可以看到有一個叫做 hello-minikube 的 node 啦~ ## 6. 部署 Dashboard UI 和 資源管理均衡器 [參考文件](https://github.com/kubernetes/dashboard) 安裝 ```bash kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.5.1/aio/deploy/recommended.yaml ``` - 拜訪 Access ```bash kubectl proxy ``` - 部屬資源管理均衡器 (漢化不好 ```cmd= kubectl create deployment balanced --image=k8s.gcr.io/echoserver:1.4 kubectl expose deployment balanced --type=LoadBalancer --port=8080 ``` - 為這個 node (管理均衡器) 建立可訪問IP ```bash minikube tunnel ``` - 查找可路由 IP,請運行此命令並檢查該 EXTERNAL-IP 列 ```bash kubectl get services balanced ```  - 你可以看到有一個叫做 Balancer 的 node 啦~ # 其他指令 - kubectl - kubectl get pod - kubectl get pods –all-namespaces - kubectl get service - kubectl describe po hello-minikube-180744149-lj0rd - minikube - minikube dashboard - minikube status - minikube service hello-minikube –url > 「如果過程發生問題,你可以先嘗試關掉重開!」 [name=HC Tsai]
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up