Kubernetes(K8s) 基於Docker For Windows安裝部署(那些坑)


k8s 和 Docker容器技術,當前非常流行的技術. 讓人日狗的是,   這套技術棧對CN的donet 程序員不怎么友好。娓娓道來,1. 好多鏡像都是需要梯子才能訪問; 2. window程序員天生對命令行操作陌生。3. 好多資料都是linux 等等..... 

下面我們來一起安裝部署下。

一, 安裝環境。

1. Docker 容器本質就是虛擬技術。簡單理解就是vmware 虛擬機(注:兩種不同虛擬化技術,自行研究)。 建議windows 10 以上且支持虛擬化技術環境。如果機器沒有開啟虛擬化,進入Boise開啟。 如果不支持虛擬化,需要安裝 Docker Toolbox .  本人以下機器環境如下, 下面的安裝步驟演示:  windows 10 且啟用虛擬化.

 

 

 

 

 

下載 Docker 安裝包. (演示使用的是Edge版本)

 

 

 

 安裝后長這個樣子:

 

 

 * 這里面有坑, 安裝好以后, 不能直接勾選啟用K8s選項,再說一遍,不要點. 

 

 

配置鏡像, 

 

 

{
  "registry-mirrors": [
    "https://dockerhub.azk8s.cn",
    "https://registry.docker-cn.com"
  ],
  "insecure-registries": [],
  "debug": true,
  "experimental": true
}

 

 

 二, 拉取K8s鏡像.

    拉取鏡像完成后執行如下操作.  具體可參考 博友文章. 開啟和安裝Kubernetes 基於Docker For Windows  按照此步驟下來, 在次不再詳贅述.

Powershell 執行:

步驟a:   git clone https://github.com/AliyunContainerService/k8s-for-docker-desktop.git
cd k8s-for-docker-desktop

步驟b:   .\load_images.ps1


步驟3:  打開Docker DashBoard , 勾選"Enable Kubernetes" 選項. 此步驟比較耗時,耐心等待

  

    

 三, 安裝Kubernetes Dashboard

步驟1 . 查看當前k8s的kubectl 安裝是否正確. 
PS執行:   kubectl version 命令

步驟2: 通過yaml文件安裝部署鏡像. 
PS執行:
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml

 或  (從之前的k8s-for-docker-desktop 目錄):
PS執行:  kubectl create -f kubernetes-dashboard.yaml


  

查看當前docker運行狀態:

PS執行:  kubectl get pods --namespace kube-system

 

 

 

四,開啟代理,

Ps: kubectl proxy

 

 

 

注意,只有當dashboard 容器,正常運行也就是狀態為(Running),才能打開瀏覽器訪問。當出現錯誤時,才看容器運行具體信息,使用如下命令:

kubectl describe pod kubernetes-dashboard-669f9bbd46-rhmst  --namespace kube-system

執行 kubernetes-dashboard.yaml 文件時,可能拉取鏡像失敗,導致doashboard 容器不能正常執行。

鏡像拉取失敗處理:

腳本

$DASHDOARD_VERSION="v1.10.1"
$HEAPSTER_VERSION="v1.5.4"
$GRAFANA_VERSION="v5.0.4"
$INFLUXDB_VERSION="v1.5.2"
$username="registry.cn-hangzhou.aliyuncs.com/google_containers"
$images="kubernetes-dashboard-amd64:${DASHDOARD_VERSION}","heapster-grafana-amd64:${GRAFANA_VERSION}","heapster-amd64:${HEAPSTER_VERSION}","heapster-influxdb-amd64:${INFLUXDB_VERSION}"
        
foreach($item in $images)
{ 
	docker pull ${username}/${item}
	docker tag ${username}/${item} k8s.gcr.io/${item}
	docker rmi ${username}/${item} 
}

  

以下kubectl 常用命令:

kubectl create -f kubernetes-dashboard.yaml --刪除資源

kubectl apply -f kubernetes-dashboard.yaml  --重新應用配置

 

 

五, 打開Doashbard ,

打開瀏覽器: 

 http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/#!/overview?namespace=default

此時可能 也有問題無法登陸

"Deleted kubernetes-dashboard version 1.10.1 and switched to v2.0.0-beta8 which worked like a charm: localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/#/overview?namespace=_all" 
參考鏈接:https://github.com/kubernetes-sigs/kubespray/issues/5347

 

獲取登錄token 命令:

---token 登錄

$TOKEN=((kubectl -n kube-system describe secret default | Select-String "token:") -split " +")[1]
kubectl config set-credentials docker-for-desktop --token="${TOKEN}"
echo $TOKEN

"Any key to exit"  ;
Read-Host | Out-Null ;
Exit

 

 

 

  

終於躺坑完畢,

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM