沒看過鯨魚寫文章嗎? 連 vscode 都能支援可愛鯨魚了~
圖片來源:Docker (@Docker) / Twitter
今天繼續上一篇的內容~
機器都裝 Ubuntu server,連個桌面都沒有,通通用 ssh 連線,但... 我只能用普通的 terminal 嗎?
很多人都推薦 Kubernetes Dashboard 看資源狀態,介面是很好用沒錯,但我機器沒桌面,要先把 Service 對外嗎?還是要架 proxy?難道要把自己的電腦加進 cluster?
我只是為了要操控方便怎麼越搞越複雜...
我有一些酷東西來看看吧~
身為一個 web 仔一定會用到 vscode 吧,vscode 有一套 遠端開發 生態
接下來就來介紹我有使用的延伸模組~
(ㄧ): Remote - SSH, Remote - Containers
(二): Docker, Kubernetes,最後補充如何解決上方提到遠端要看 Kubernetes Dashboard 的問題
用來顯示本機 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"
可以顯示有關 cluster 的所有資源
資源的相關功能也可以點右鍵看看,大部分指令有的都有支援
前面有提到沒辦法看 Dashboard 的問題,現在有了 port 轉送直接來架看看吧
部署 Dashboard
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml
等待 Pod 開啟完成
切到 kubernetes-dashboard Namespaces,等待 Pod 都成功運作
開啟 kubectl proxy
直接在 kubernetes-admin 點右鍵 Open Dashboard
自動開啟 terminal 執行
使用 port 轉送
直接在本機開啟 dashboard!
http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/
以下方法比較暴力直接用 admin 登入,僅作為測試之後請刪除,有安全疑慮的可以自己調整 SeviceAccount
新增檔案 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
部署 dashboard-adminuser.yaml
kubectl apply -f dashboard-adminuser.yaml
取得 token
kubectl -n kubernetes-dashboard create token admin-user
輸入 Token 後即可登入
使用完請記得清除 user
kubectl delete -f dashboard-adminuser.yaml
回原本的 terminal 關閉 proxy (control + C
)
如不需要再使用 dashboard 可移除
kubectl delete -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml
停止 port 轉送
每個人偏好的編輯器、terminal 都不同
如果你也是用 vscode 希望這些你會喜歡~