Kubernetes 中如何讓 Dashboard 在無 https 的情況下讓外部存取
前言
最近在自學 K8s
的時候,看到官方文件有提到 Web UI (Dashboard),想說自己操作一下試試看,
目標是透過個人電腦的瀏覽器可以進入 cluster 的 dashboard,
但是在建立的過程中有遇到一些雷所以在這裡記錄一下。
環境
兩台機器,一台 master 跟一台 slave,在同一個網域底下,兩台電腦皆是 privete ip。master
192.168.1.111
slave
192.168.1.110
個人電腦跟 master 與 slave 在同一個網段下。
步驟
首先把 yaml 檔下載下來
1
curl -O https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0/aio/deploy/recommended.yaml`
修改
recommended.yaml
中的kubernetes-dashboard
Service1
2
3
4
5
6
7
8
9
10
11
12
13
14kind: Service
apiVersion: v1
metadata:
labels:
k8s-app: kubernetes-dashboard
name: kubernetes-dashboard
namespace: kubernetes-dashboard
spec:
type: NodePort // 多加這一行
ports:
- port: 443
targetPort: 8443
selector:
k8s-app: kubernetes-dashboardApply 進
K8s
1
kubectl apply -f recommended.yaml
因為 dashboard 只允許使用 Bearer Token 登入,所以必須要創一個使用者。
參考:https://github.com/kubernetes/dashboard/blob/master/docs/user/access-control/creating-sample-user.md取得 dashboard 的 NodePort
1
kubectl get svc -n kubernetes-dashboard
在這個例子中我拿到的是 30144
接著因為 dashboard 只支援https
但是我們service
是使用NodePort
來創建,
所以 url 會是https://192.168.1.111:30144