Windows安裝Docker Desktop並在WSL2整合Kubernetes
Kind 的全稱是Kubernetes in Docker
在 Windows10 下使用 WSL2 和 KinD 來搭建一套 Kubernetes 叢集
操作1: (參考 https://cloud.tencent.com/developer/article/1645054 失敗)
1、將 Ubuntu 的軟體源更換成阿里雲的源
root@k8s:~# cp /etc/apt/sources.list /etc/apt/sources.list.bak root@k8s:~# echo "deb deb deb deb deb deb deb deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted deb http://mirrors.aliyun.com/ubuntu/ focal-security universe deb http://mirrors.aliyun.com/ubuntu/ focal-security multiverse" > /etc/apt/sources.list root@k8s:~#
2、 配置 Systemd
由於預設情況下 WSL 中不能使用 systemd,所以很多應用程式沒辦法啟動,不過還是有一些大神解決了這個問題,我們可以在 連結下面找到啟動 SystemD 的方法。
首先安裝 Systemd 相關的依賴:
apt install -yqq fontconfig daemonize
然後建立一個如下所示的指令碼檔案:
# Create the starting script for SystemD vi /etc/profile.d/00-wsl2-systemd.sh SYSTEMD_PID=$(ps -ef | grep '/lib/systemd/systemd --system-unit=basic.target$' | grep -v unshare | awk '{print $2}')if [ -z "$SYSTEMD_PID" ]; then sudo /usr/bin/daemonize /usr/bin/unshare --fork --pid --mount-proc /lib/systemd/systemd --system-unit=basic.target SYSTEMD_PID=$(ps -ef | grep '/lib/systemd/systemd --system-unit=basic.target$' | grep -v unshare | awk '{print $2}')fiif [ -n "$SYSTEMD_PID" ] && [ "$SYSTEMD_PID" != "1" ]; then exec sudo /usr/bin/nsenter -t $SYSTEMD_PID -a su - $LOGNAME fi
上面的指令碼放置在 /etc/profile.d 目錄下面,所以要讓指令碼生效,我們需要退出當前 session,重新進入即可。
到這裡我們就完成了 WSL2 的安裝和配置。
3、安裝docker
4、 安裝 Kubernetes
安裝 Kubernetes 叢集有很多成熟的方案,在本地搭建也有 minikube、microk8s 等等,我們這裡選擇使用 KinD:在容器中來執行 Kubernetes 的一種簡單方式。這裡我們將安裝 KinD 官方網站的說明()來進行操作。
# 下載 KinD 二進位制檔案 curl -Lo ./kind (uname)-amd64 # 標記為可執行檔案 chmod +x ./kind # 移動到 PATH 目錄下去 mv ./kind /usr/local/bin/# TODO,記得提前下載安裝 kubectl 二進位制檔案
KinD 獲取後,我們就可以來建立 Kubernetes 叢集了——失敗!
# 檢查是否設定了 KUBECONFIG 環境變數 echo $KUBECONFIG # 檢查是否存在 .kube 目錄,不需要手動建立 ls $HOME/.kube # 使用 kind 命令建立一個名為 wslk8s 的叢集 # 建立後檢查 .kube 目錄 ls $HOME/.kube
到這裡叢集就建立成功了,我們也可以在 Windows 的瀏覽器中開啟上面的
Kubernetes master
地址127.0.0.1:36063
v1.18.2 版本的 Kubernetes 節點
操作2:( 重點步驟2,KinD環境安裝Kubernetes成功)
https://blog.csdn.net/weixin_43168190/article/details/107179715: kubelet,kubeadm和kubectl安裝參考這個
KinD官網:kind.sigs.k8s.io/docs/user/quick-start/#installation
Docker Desktop for Windows user manual:docs.docker.com/docker-for-windows/
1、kind是一個 使用Docker容器“節點”執行本地Kubernetes叢集的工具。這類軟體主要是為測試Kubernetes本身而設計的,但也可以用於本地開發或CI。( is a tool for running local Kubernetes clusters using Docker container “nodes”.kind was primarily designed for testing Kubernetes itself, but may be used for local development or CI.)
curl -Lo ./kind
chmod +x ./kind
mv ./kind /some-dir-in-your-PATH/kind
2、還是在
kind create cluster --name wslk8s
失敗!實際沒有失敗,頁面停止不動是因為
執行過程時間較長,等到最後,安裝成功了。
上圖可見,kindest/node的映象檔案1.17GB,所以慢,而且在Dockers desktop檢視容器自動正常執行,埠是36275
上圖"Status Failure",新增docker的GPG key後OK.
curl | apt-key add -
——>kind.sigs.k8s.io/docs/user/quick-start/#creating-a-cluster
root@ATC-Analyzer:~# kubectl cluster-info
Kubernetes control plane is running at 36275
KubeDNS is running at 36275/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
root@ATC-Analyzer:~# kubectl cluster-info --context kind-mi-kind
Kubernetes control plane is running at 36275
KubeDNS is running at 36275/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
root@ATC-Analyzer:~# kubectl get nodes // 可以看到kubernetes節點,這就是一個 單節點的叢集
NAME STATUS ROLES AGE VERSION
mi-kind-control-plane Ready control-plane,master 18h v1.20.2
該叢集的名字是:kind-mi-kind, 假如$KUBECONFIG environment variable沒有設定, 預設叢集的configuration儲存在${HOME}/.kube/config(/root/.kube)。
檢視已建立的叢集:
# ./kind get clusters
mi-kind
檢視叢集 node中的映象列表;
# docker exec -it mi-kind-control-plane crictl images // Docker container: mi-kind-control-plane
IMAGE TAG IMAGE ID SIZE
docker.io/kindest/kindnetd v20210119-d5ef916d 6b17089e24fdb 122MB
docker.io/library/nginx latest 35c43ace92162 53.7MB
docker.io/rancher/local-path-provisioner v0.0.14 e422121c9c5f9 42MB
k8s.gcr.io/build-image/debian-base v2.1.0 c7c6c86897b63 53.9MB
k8s.gcr.io/coredns 1.7.0 bfe3a36ebd252 45.4MB
k8s.gcr.io/etcd 3.4.13-0 0369cf4303ffd 255MB
k8s.gcr.io/kube-apiserver v1.20.2 3ad0575b6f104 69.7MB
k8s.gcr.io/kube-controller-manager v1.20.2 51dc9758caa7b 63.2MB
k8s.gcr.io/kube-proxy v1.20.2 23b52beab6e55 120MB
k8s.gcr.io/kube-scheduler v1.20.2 cd40419687469 47.6MB
k8s.gcr.io/pause 3.3 0184c1613d929 686kB
3、 以管理員許可權啟動 PowerShell,然後輸入以下命令啟用虛擬機器平臺,
Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform
在“啟用或關閉Windows功能”中檢視“Hyper-V”核取方塊還是保持未勾選。
4、 輸入以下命令啟用 Linux 子系統功能
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
在“啟用或關閉Windows功能”中檢視“適用於Linux的Windows子系統”核取方塊從未勾選變為勾選。
5、 設定 WSL 預設版本為2
wsl --set-default-version 2
提示:“WSL 2 需要更新其核心元件。有關資訊,請訪問 ,有關與 WSL 2 的主要區別的資訊,請訪問 ”
按提示先下載安裝: 適用於 x64 計算機的 WSL2 Linux 核心更新包:wsl_update_x64
6、 開啟 Microsoft Store ,並選擇你偏好的 Linux 分發版: Ubuntu 20.04 LTS、Debian
安裝完成後,只是APP安裝完成,Ubuntu系統還沒有裝到電腦裡,需要啟動該APP,然後自動執行安裝:報錯(系統重啟也一樣)
Installing, this may take a few minutes...
WslRegisterDistribution failed with error: 0x80370102
Error: 0x80370102 ???????????????????
出現 0x80370102 錯誤,不是要求沒有達到,而是相容問題。 WSL必須滿足的條件
-
Windows10(版本大於等於19041)(滿足:測試系統版本19042.804)
-
開啟VT虛擬化?( 由於步驟3問題,這裡 在“啟用或關閉Windows功能”中 勾選“Hyper-V”核取方塊,還必須BIOS啟用虛擬化)
PS C:\Windows\system32> wsl --list --verbose
適用於 Linux 的 Windows 子系統沒有已安裝的分發版。
可以透過訪問 Microsoft Store 來安裝分發版:
意思是提示沒有安裝WSL的分發版
Ubuntu 20.04 LTS,表示沒有安裝成功,原因:
必須在BIOS中啟用虛擬化
PS C:\Windows\system32> wsl --list --verbose
NAME STATE VERSION
* Ubuntu-20.04 Running 2
docker-desktop-data Running 2
docker-desktop Running 2
Debian Stopped 2
後續,開啟Ubuntu和Debian幾分鐘後就會提醒你設定使用者名稱和密碼(atc/123456)。
設定好使用者名稱和密碼後,這個系統並沒有設定root許可權的密碼,使用以下命令:
sudo passwd root (123456)
就可以su -切換到root使用者使用,至此,Ubuntu就安裝完了,可以關閉該終端。
7、下載安裝Docker Desktop for Windows:“Docker Desktop Installer.exe”
docs.docker.com/docker-for-windows/
-
BIOS-level hardware virtualization support must be enabled in the BIOS settings
-
The Docker Desktop installation includes , Docker CLI client, , , , and .
-
The Kubernetes tab is not available in Windows container mode.
8、 配置docker映象下載位置為阿里雲, 加速器 需要雙引號。
9、 開啟Ubuntu APP,或者在 PowerShell中輸入“wsl”,就能進入Ubuntu的命令列中。
10、Deploy on Kubernetes:docs.docker.com/docker-for-windows/kubernetes/
Docker Desktop includes a standalone Kubernetes server and client, as well as Docker CLI integration. The Kubernetes server runs locally within your Docker instance, is not configurable, and is a single-node cluster.
11、 select Enable Kubernetes . To set Kubernetes as the , select Deploy Docker Stacks to Kubernetes by default .
( 不同於步驟2的叢集kind,這裡是Dockers desktop啟用叢集的方式,但是不成功?)應該是按上圖勾選了“Enable Kubernetes”,點選“Apply & Restart,下載了下圖所示映象:docker/docker-kubernetes v1.19.3。
但是,怎麼執行?
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7970627/viewspace-2760408/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Docker Desktop for Windows的安裝DockerWindows
- Windows Docker Desktop安裝教程WindowsDocker
- 記錄一下docker desktop windows安裝,容器安裝等DockerWindows
- Ubuntu 安裝 Docker DesktopUbuntuDocker
- 使用WSL2在Windows 11上安裝HadoopWindowsHadoop
- 在WSL2的Ubuntu中安裝和使用Docker/PodmanUbuntuDocker
- 【WSL2】在 Windows 10 中安裝 WSL2 的 Linux 子系統WindowsLinux
- win10 啟用wsl2 並安裝ubuntu + PHP整合環境Win10UbuntuPHP
- 在 wsl2 中安裝redisRedis
- win11 安裝desktop dockerDocker
- Windows Docker 安裝WindowsDocker
- windows安裝dockerWindowsDocker
- DOCKER windows安裝DockerWindows
- 在WSL2(用於Linux的Windows子系統v2)用命令列安裝docker及docker composeLinuxWindows命令列Docker
- M晶片parallels desktop安裝Ubuntu docker晶片ParallelUbuntuDocker
- 如何在windows 11中安裝WSLG(WSL2)Windows
- 在筆記本Win10中基於WSL+Docker Desktop安裝Kubernetes和Istio、Knative筆記Win10Docker
- windows docker 安裝教程WindowsDocker
- Docker for windows : 安裝RedisDockerWindowsRedis
- [後端及伺服器][WSL2(Ubuntu)+Docker]從零開始在WSL中安裝Docker後端伺服器UbuntuDocker
- 在Ubuntu desktop中安裝gitUbuntuGit
- 基於windows10下安裝docker,並配置IDEAWindowsDockerIdea
- 比 WSL2 更香的是 Docker for windows!DockerWindows
- 在docker中安裝mysql並搭建主從複製DockerMySql
- 如何在 Windows 使用 Podman Desktop 取代 Docker DesktopWindowsDocker
- Docker for windows : 安裝linuxDockerWindowsLinux
- Podman Desktop安裝與使用-Windows10Windows
- 在Windows7下安裝Docker的一點技巧WindowsDocker
- 在自己的域名網站安裝Kubernetes並暴露服務網站
- Windows10的Docker Desktop使用WindowsDocker
- 如何在Windows上安裝DockerWindowsDocker
- docker 安裝 nginx 並配置反向代理DockerNginx
- Windows 安裝並配置 MySQL 5.6WindowsMySql
- MySQL下載並安裝(Windows)MySqlWindows
- 在CentOS上安裝dockerCentOSDocker
- 在mac上安裝DockerMacDocker
- WSL2安裝systemd方法
- 在Windows安裝chromedriverWindowsChrome