windows環境下Kubernetes及Docker安裝(那些坑)

来源:https://www.cnblogs.com/voidobject/archive/2020/05/28/12980444.html
-Advertisement-
Play Games

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


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

 

 

 

  

終於躺坑完畢,

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 在面試前三面真的有點急促,一周內就面完了三次面試,接著就開始無盡的等待,整整等了三周左右,終於完成了三面和HR面。整個過程還是比較曲折的,技術面試還是挺考察技術深度的。現在已拿到offer。 ...
  • 1 #include "stdio.h" 2 #include "time.h" 3 #include <windows.h> 4 5 // 6 // 7 // Title: C語言實現小人移動 V1.0 8 // Author: 鄒陽 9 // Date : 2020/05/28 10 // 11 ...
  • 首先在用戶表定義一個積分欄位; 然後創建一個等級表,主要欄位有等級名,上限積分和下限積分; 再根據用戶的行為進行積分累加; 最後根據判斷用戶積分在哪個等級範圍,從而得出用戶等級。 用戶表 CREATE TABLE `bbs`.`user`( `id` INT(10) UNSIGNED NOT NUL ...
  • Java多線程面試問題 1. 進程和線程之間有什麼不同? 一個進程是一個獨立(self contained)的運行環境,它可以被看作一個程式或者一個應用。而線程是在進程中執行的一個任務。Java運行環境是一個包含了不同的類和程式的單一進程。線程可以被稱為輕量級進程。線程需要較少的資源來創建和駐留在進 ...
  • 使用場景:新頭像替換舊的頭像 步驟: 1. 讀取資料庫頭像的URL地址 2. 獲取URL地址的有效欄位 3. file文件路徑設置 4. 刪除圖片文件 Thinkphp 代碼如下: <?php public function delPic(){ //獲取用戶id $uid = input('uid' ...
  • Java這門語言的發展是很有意思的,它不像Python, Ruby 等完全是開源社區驅動,也不像C#,VB.NET主要由微軟操刀。它是一個以Oracle(之前是Sun)為主,各大巨頭一起參與,一起制定標準的一門語言。 想對Java添加一點特性, 得走JCP流程,巨頭們要審查,看看對自己是否有利,然後 ...
  • Blazor編譯後的文件是靜態文件,所以我們只需要一個支持靜態頁面的web server即可。 根據不同項目,會用不同的容器編排,本文已無網關的情況下為例,一步一步展示如何打包進docker 需求 HTTPS 既然無網關,直接面向互聯網,所以HTTPS顯得尤為重要 HTTP/2 TLS3.0 既然都 ...
  • C#編碼轉換主要使用了Encoding.Convert方法,它需要原編碼字元串的位元組數組作為參數,返回目標編碼的位元組數組。Encoding對象可以從字元串獲取位元組數組,又能夠從位元組數組還原字元串,因此可以將其組合用來轉碼。 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...