ASP.NET Core on K8S学习初探(1)
“?[LOG] ASP.NET Core on K8S Starting...”
01
—
寫在之前
當近期的一個App上線后,發(fā)現(xiàn)目前的docker實例(應(yīng)用服務(wù)BFF+中臺服務(wù)+工具服務(wù))已經(jīng)越來越多了,而我司目前沒有專業(yè)的運維人員,發(fā)現(xiàn)運維的成本逐漸開始上來,所以容器編排也就需要提上議程。因此我決定開始學(xué)習Kubernetes,會將學(xué)習當中的過程記錄下來,預(yù)計會形成一個系列,暫且命名為:ASP.NET Core on K8S,而這個系列會由3個部分組成,且會在不同的時期寫完:
1、ASP.NET Core on K8S學(xué)習初探:在Docker for Windows中搭建單節(jié)點環(huán)境,初步了解有個感性認識
2、ASP.NET Core on K8S深入學(xué)習:在Linux上搭建K8S集群,對K8S的一些核心概念有個深入的認識
3、ASP.NET Core on ACK/TKE實戰(zhàn):借助阿里云/騰訊云容器服務(wù)進行生產(chǎn)環(huán)境的容器部署和運維的一些實戰(zhàn)總結(jié)
02
—
關(guān)于K8S
關(guān)于K8S,建議閱讀《10分鐘看懂Docker和K8S》,這幾乎是一篇不用耗費多少腦細胞的文章,因為講的實在是太通俗易懂了。
總體來說,就是在Docker容器技術(shù)被炒得熱火朝天之時,大家發(fā)現(xiàn),如果想要將Docker應(yīng)用于具體的業(yè)務(wù)實現(xiàn),是存在困難的——編排、管理和調(diào)度等各個方面,都不容易。于是,人們迫切需要一套管理系統(tǒng),對Docker及容器進行更高級更靈活的管理。
于是,源自于Google的K8S出現(xiàn)了。K8S就是基于容器的集群管理平臺,它的全稱,是Kubernetes。
Kubernetes 這個單詞來自于希臘語,含義是舵手或領(lǐng)航員。K8S是它的縮寫,用“8”字替代了“ubernete”這8個字符。 這里不再過多解釋,因為上面的文章里已經(jīng)講的很清楚了,理清那些繁多的K8S概念留到后面再來,這里主要是先玩起來,玩了再說。K8S的環(huán)境搭建在Windows和Linux下,還可以基于云服務(wù)提供商封裝好的K8S服務(wù)進行快速構(gòu)建,這里為了快速玩玩,選擇了在Windows下基于Docker for Windows來進行。
03
—
搭建步驟
2.1 前置條件
確保當前Windows環(huán)境有以下幾個關(guān)鍵點:
為Docker for Windows的daemon配置鏡像加速:
2.2 下載K8S鏡像
首先,從Git上下載K8S所需的docker鏡像:
這里,為了匹配18.06版本(Docker CE版本號或者你的Docker for Windows的版本號),切換到該項目的18.09分支。
Note:關(guān)于哪個版本切換到哪個分支,請參閱這里。
然后,開始加載鏡像,這里通過PowerShell的方式加載:
.\load_images.ps1
當然,也可以通過Bash Shell的方式加載:
./load_images.sh? 最后,在Docker for Windows中啟用K8S:
2.3 快速配置K8S
(可選)切換運行上下文至docker-for-desktop
kubectl config use-context docker-for-desktop 核心:驗證Kubernetes集群狀態(tài)
Note:執(zhí)行了kubectl cluster-info之后就可以看到已經(jīng)啟動了一個master節(jié)點,也就是single-node模式啟用了。
? 面板:部署Kubernetes Dashboard
kubectl create -f kubernetes-dashboard.yaml 訪問:開啟API Server訪問代理,向外部提供面板訪問
然后就可以通過下面這個URL訪問Kubernetes的Dashboard:http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/#!/overview?namespace=default
但是,你會發(fā)現(xiàn)出現(xiàn)的如下這個頁面,你可以選擇跳過 也可以選擇一個kubeconfig。
其中,kubeconfig的位置(這里是Windows系統(tǒng))位于:%UserProfile%\.kube\config。當然,這里也可以選擇跳過,不用管這個config。如果,碰到提示“not enough data to create auth”,需要執(zhí)行以下命令來設(shè)置一下kubeconfig:
$TOKEN=((kubectl -n kube-system describe secret default | Select-String "token:") -split " +")[1] kubectl config set-credentials docker-for-desktop --token="${TOKEN}"最后,可以正常登錄后看到Dashboard的全貌了:
Note:如果想通過其它主機訪問并且讓API Server能夠接受所有主機的請求,請通過以下命令啟動API Server。
kubectl proxy --address='0.0.0.0' --accept-hosts='^*$'04
—
小結(jié)
本篇簡單地記錄一下如何在Windows環(huán)境下基于Docker for Windows來搭建一個單節(jié)點的K8S環(huán)境,下一篇會將ASP.NET Core以Docker方式加入到K8S集群中托管,操作K8S來管理Docker實例來有一個感性認識。
總結(jié)
以上是生活随笔為你收集整理的ASP.NET Core on K8S学习初探(1)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ASP.NET Core on K8S学
- 下一篇: .NET Core IdentitySe