MacOS 安裝k8s

MartinDai發表於2024-06-10

安裝前準備

確保本地已經安裝並啟動好了Docker Desktop

拉取k8s映象(如果本地網路好可以正常拉取到k8s官方映象,可以跳過這一步)

克隆git倉庫到本地

git clone https://github.com/gotok8s/k8s-docker-desktop-for-mac.git

進入專案目錄,執行

./load_images.sh

等待所有映象拉取完成
1.png

部署k8s

進入Docker Decktop的設定頁面,勾選Kubernetes設定頁的配置,點選右下角的Apply & Restart按鈕,等待k8s完成部署
2.png

完成以後可以驗證一下部署狀態

kubectl cluster-info

kubectl get nodes

kubectl describe node

3.png

安裝k8s Dashboard

應用推薦配置,這裡需要注意修改v2.6.0為相容上面安裝的kubelet的版本,具體可檢視https://github.com/kubernetes/dashboard/releases

kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.6.0/aio/deploy/recommended.yaml

4.png

建立使用者並獲取token

建立admin-user

複製如下配置,儲存檔案為dashboard-adminuser.yaml

apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin-user
  namespace: kubernetes-dashboard

然後執行

kubectl apply -f dashboard-adminuser.yaml

繫結cluster-admin授權

複製如下配置,儲存檔案為dashboard-clusteradmin.yaml

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

然後執行

kubectl apply -f dashboard-clusteradmin.yaml

獲取登入token

開啟代理並且設定代理埠為8001

kubectl proxy --port=8001

開啟新的命令視窗,執行

檢查使用者資訊是否存在

curl 'http://127.0.0.1:8001/api/v1/namespaces/kubernetes-dashboard/serviceaccounts/admin-user'

獲取token不帶引數

curl 'http://127.0.0.1:8001/api/v1/namespaces/kubernetes-dashboard/serviceaccounts/admin-user/token' -H "Content-Type:application/json" -X POST -d '{}'

獲取token帶引數

curl 'http://127.0.0.1:8001/api/v1/namespaces/kubernetes-dashboard/serviceaccounts/admin-user/token' -H "Content-Type:application/json" -X POST -d '{"kind":"TokenRequest","apiVersion":"authentication.k8s.io/v1","metadata":{"name":"admin-user","namespace":"kubernetes-dashboard"},"spec":{"audiences":["https://kubernetes.default.svc.cluster.local"],"expirationSeconds":7600}}'

5.png

登入k8s Dashboard

複製上一步返回的token資訊,瀏覽器訪問如下地址,填入token即可登入

http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/#/login

6.png

相關文章