iT邦幫忙

2022 iThome 鐵人賽

DAY 10
0
DevOps

前端轉生~到了實驗室就要養幾隻可愛鯨魚:自架 Kubernetes 迷航日記系列 第 10

Day 10 — 遠端操控面板:vscode 實用延伸模組 (二)

  • 分享至 

  • xImage
  •  

可愛鯨魚

沒看過鯨魚寫文章嗎? 連 vscode 都能支援可愛鯨魚了~

圖片來源:Docker (@Docker) / Twitter

今天繼續上一篇的內容~

  • 機器都裝 Ubuntu server,連個桌面都沒有,通通用 ssh 連線,但... 我只能用普通的 terminal 嗎?

  • 很多人都推薦 Kubernetes Dashboard 看資源狀態,介面是很好用沒錯,但我機器沒桌面,要先把 Service 對外嗎?還是要架 proxy?難道要把自己的電腦加進 cluster?

    我只是為了要操控方便怎麼越搞越複雜... /images/emoticon/emoticon02.gif

我有一些酷東西來看看吧~

vscode 延伸模組

身為一個 web 仔一定會用到 vscode 吧,vscode 有一套 遠端開發 生態

接下來就來介紹我有使用的延伸模組~
(ㄧ): Remote - SSH, Remote - Containers
(二): Docker, Kubernetes,最後補充如何解決上方提到遠端要看 Kubernetes Dashboard 的問題

Docker

用來顯示本機 Docker 的各項資料
(如果 Kubernetes 底層不是用 Docker 相關的 container 就不會顯示在這裡)

  • CONTAINERS
    Individual Containers 會顯示所有沒有群組的 container,若是用 Docker Compose 的會有自己的群組

  • IMAGES
    可以查看本機現存的 image,如果要使用 push 要先使用 docker login 指令登入 registry (e.g. Docker Hub)

  • REGISTRIES
    可以連接到遠端的 registry

    目前有支援的:

  • NETWORKS
    Docker 內部有提供的網路功能,因為使用 Kubernetes 網路模型,這個功能不太會用到

  • VOLUMES
    Docker 建立的 volume,在 Kubernetes 必須跨機器使用 volume,所以都在 Kubernetes 的 volume 進行設定

  • CONTEXT
    Docker 的一些設定,預設使用 default 連接本機 Docker,也可自行增加連接到遠端的 context 隨時切換,我幾乎都是直接使用 remote ssh 所以不太使用這個功能

    附上建立遠端的 context 範例,需要設定 ssh token 完後登入才能使用,不提供使用密碼登入

    docker context create whale1 --docker "host=ssh://keeper@10.1.0.1"
    

Kubernetes

可以顯示有關 cluster 的所有資源

資源的相關功能也可以點右鍵看看,大部分指令有的都有支援


補充

Kubernetes Dashboard

前面有提到沒辦法看 Dashboard 的問題,現在有了 port 轉送直接來架看看吧

  1. 部署 Dashboard

    kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml
    
  2. 等待 Pod 開啟完成
    切到 kubernetes-dashboard Namespaces,等待 Pod 都成功運作

  3. 開啟 kubectl proxy
    直接在 kubernetes-admin 點右鍵 Open Dashboard

    自動開啟 terminal 執行

  4. 使用 port 轉送

  5. 直接在本機開啟 dashboard! /images/emoticon/emoticon42.gif
    http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/

以下方法比較暴力直接用 admin 登入,僅作為測試之後請刪除,有安全疑慮的可以自己調整 SeviceAccount

  1. 新增檔案 dashboard-adminuser.yaml

    apiVersion: v1
    kind: ServiceAccount
    metadata:
      name: admin-user
      namespace: kubernetes-dashboard
    
    ---
    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
    
  2. 部署 dashboard-adminuser.yaml

    kubectl apply -f dashboard-adminuser.yaml
    
  3. 取得 token

    kubectl -n kubernetes-dashboard create token admin-user
    
  4. 輸入 Token 後即可登入

  5. 使用完請記得清除 user

    kubectl delete -f dashboard-adminuser.yaml
    
  6. 回原本的 terminal 關閉 proxy (control + C)

  7. 如不需要再使用 dashboard 可移除

    kubectl delete -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml
    
  8. 停止 port 轉送


Ref


每個人偏好的編輯器、terminal 都不同
如果你也是用 vscode 希望這些你會喜歡~ /images/emoticon/emoticon37.gif


上一篇
Day 9 — 遠端操控面板:vscode 實用延伸模組 (一)
下一篇
Day 11 — 這絕對不是走私貨櫃:練習架設服務 - Minecraft Server in Docker
系列文
前端轉生~到了實驗室就要養幾隻可愛鯨魚:自架 Kubernetes 迷航日記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言