1. 程式人生 > 其它 >逐步輕鬆搞定K8S在Docker Desktop上的安裝

逐步輕鬆搞定K8S在Docker Desktop上的安裝

一、前提條件

  • 本文基於Win 10作業系統,
  • Git已在本機安裝,
  • 在Docker Desktop for Window安裝啟動後執行的。

如還沒安裝,可以從Docker 官方網站下載Docker for windows,安裝比較簡單,這裡不贅述了~。

二、docker配置國內映象

為了提升映象拉取速度,在Docker 設定裡,配置Docker Engine國內的倉庫地址: 

{
  "builder": {
    "gc": {
      "defaultKeepStorage": "20GB",
      "enabled": true
    }
  },
  "debug": false,
  "experimental": false,
  "features": {
    "buildkit": true
  },
  "insecure-registries": [],
  "registry-mirrors": [
    "https://xxxxx.mirror.aliyuncs.com",
    "https://docker.mirrors.ustc.edu.cn",
    "https://registry.docker-cn.com"
  ]
}
View Code

二、Kubernetes映象拉取

 從GitHub上拉取Images到本機資料夾中:

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

三、Kubernetes映象安裝

進入下載目錄,執行load_images.ps1指令碼:

cd k8s-for-docker-desktop
.\load_images.ps1

四、啟動Kubernetes

 在Docker面板上的Settings裡,切到Kubernetes上啟動Kubernetes

五、安裝k8s管理頁面Dashboard

 進入下載目錄下,執行

kubectl create -f kubernetes-dashboard.yaml

檢視Dashboard映象狀態

kubectl get pods --all-namespaces

六、訪問k8s Dashboard

使用命令,啟動K8s Server,

kubectl proxy
##或者
nohup kubectl proxy >/dev/null &

訪問地址
http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/

七、選擇Token認證方式登入

生成Token:

##授權`kube-system`預設服務賬號
kubectl apply -f kube-system-default.yaml
##生成Token
$TOKEN=((kubectl -n kube-system describe secret default | Select-String "token:") -split " +")[1]
kubectl config set-credentials docker-desktop --token="${TOKEN}"
echo $TOKEN

複製Token貼上到瀏覽器輸入框中,點選登入即可跳轉到Dashboard頁面:

八、配置服務賬號訪問許可權

 建立服務賬號

##命令
New-Item admin-user.yaml
##內容如下
    apiVersion: v1
    kind: ServiceAccount
    metadata:
      name: admin-user
      namespace: kubernetes-dashboard
##建立
kubectl create -f admin-user.yaml        
View Code

繫結賬號角色

##命令
New-Item admin-user-role-binding.yaml
##內容如下
apiVersion: rbac.authorization.k8s.io/v1beta1
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 create -f admin-user-role-binding.yaml
View Code

獲取賬號Token

$ kubectl -n kubernetes-dashboard   describe secret $(kubectl -n kubernetes-dashboard  get secret | grep admin-user | awk '{print $1}')

收工!