主要步骤一览:
1)在windows里开启 wsl(windows subsystem linux) 支持
2) 在windows中安装和配置ubuntu
3)在window里安装docker desktop
4) 在windows里配置docker desktop
5) 在ubuntu中安装docker engine和docker ce
6) 在ubuntu中配置docker engine
7)在ubuntu中安装kubernetes以及对应的管理工具kubectl kubeadmin kubelet
8) 加载kubernets image到windows中的docker desktop
9) 确认kubernets cluster的状态
10)安装和k8s应用相关的app components
注意:
1) ubuntu使用的是18.04 LTS
2)windows dockerdesktop版本是3.3.3,内置docker engine 是 20.10.6.
如果使用最新的dockerdesktop版本,docker engine版本更改,对应的k8s版本更改,
在k8s的设置步骤,可能需要添加 KUBECONFIG env variable (is for v1.21.2. not necessary for k8s v1.19.7)
3)windows WSL使用默认版本1, 故此docker desktop需要禁用WSL2。
4)不要乱用root用户。
5)window系统和ubuntu是互通的,/mnt/c/Users/testuser in win10 =/home/testuser in ubuntu.
下载git repo直接到ubuntu里。如果clone到win10, 在从win10拷贝到ubuntu中,文件编码的变化,会在执行脚本的时候报错。
一、开启 wsl(windows subsystem linux) 支持
方法二选一
a. Control plane ->programs and features -> Turn windows features on or off ->Windows Subsystem for linux
b. Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux (以管理员身份在powershell中执行命令)
二、在windows中安装和配置ubuntu
•下载 Ubuntu 18.04
•安装过程:https://www.jianshu.com/p/2ac002ecddab,
•注意点:
1) 字体设置此处可以忽略。
2) 记得设置用户名和密码。
3) 使用sudo su root命令可 切换root用户。请使用自己设置的用户,进行下面k8s和docker的安装和配置。
只有在sudo权限无法安装app的时候,可使用root,其他请使用自己的用户。不然后面可能会有不可预料的异常。
4)ubuntu镜像源有时候不稳定,或者公司内部网络环境复杂,可以更改地址源。
5)guide备忘:
三、在window里安装docker desktop
•安装过程参考:https://www.runoob.com/docker/windows-docker-install.html
该过程主要思路:
先enable hyper-v feature on windows10,接着 install Docker Desktop application on windows10
1.Before install, Register own user, 方便登录Docker Desktop
2.Install finish, powershell下执行 docker run hello-world,确认是否安装成功。
3.Install finish, 记录Docker Desktop中内置的Kubernetes 版本号,后面会用到。这里是V1.19.7
方法:找到右下角灰色小鲸鱼图标--->右击--->About Docker Desktop
四、在windows里配置docker desktop
1. 禁用Use the WSL 2 base engine
禁用的原因是Win10默认使用的WSL1,
PS C:\Users\testuser> wsl -l -v
NAME STATE VERSION
* Ubuntu-18.04 Running 1
2. 设置memory尽量大些
3. 勾选 Enable exposedaemon on tcp://localhost:2375
4. 通过dockerdesktop设置daemon镜像加速,可以设置为https://docker.mirrors.ustc.edu.cn。
也可以参照https://github.com/AliyunContainerService/k8s-for-docker-desktop/tree/v1.19.7里的“开启 Kubernetes”章节设置多个地址
五、在ubuntu中安装docker engine
以下举例repo安装和通过debian安装包安装。
1. docker engine
•安装过程:https://docs.docker.com/engine/install/ubuntu/
有3种安装方法:用repo, package or script.。这里用的是Install using the repository 。使用repo install,步骤是一步步的,出错方便排错。
sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo \
"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
2.Install Docker ce
https://docs.docker.com/compose/install/
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io(建议不直接安装,而是指定版本安装)
如果想按照指定版本的docker ce,先list repo里都有哪些版本,然后再指定安装。例如:
apt-cache madison docker-ce
sudo apt-get install docker-ce=<VERSION_STRING> docker-ce-cli=<VERSION_STRING> containerd.io for example, 5:18.09.1~3-0~ubuntu-xenial
3.设置自己的user可以使用Docker ce cli,而不用有root access
六、在ubuntu中配置docker engine
主要是在ubuntu中Connect remote docker daemon in windows10。
Ubuntu --> remote Docker daemon --> Docker desktop in Windows
export DOCKER_HOST=tcp://localhost:2375
#alias python='/usr/bin/python3.6'
确认docker安装成功
docker version
docker info
docker run hello-world
七、在ubuntu中安装kubernets以及对应的管理工具kubectl kubeadmin kubelet
sudo apt-get update && apt-get install -y apt-transport-https
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -
sudo apt-cache madison kubectl | grep 1.19 确认下版本有哪些
sudo apt-get install kubelet=1.19.7-00 kubeadm=1.19.7-00 kubectl=1.19.7-00
这里的k8版本和windows docker desktop k8s版本一致
八、在ubuntu中把k8 docker image load到desktop
•具体过程参照: https://github.com/AliyunContainerService/k8s-for-docker-desktop/tree/v1.19.7
这个过程主要是利用github一个repo的脚本load_image.sh,去下载k8s的docker image, 然后load到docker desktop里,然后删除image。
主要步骤:
1) git clone https://github.com/AliyunContainerService/k8s-for-docker-desktop.git
2) git checkout v1.19.7
3) cd k8s-for-docker-desktop, ./load_images.sh
九、 确认kubernets cluster的状态
从侧面验证内置了k8s docker image成功load到docker desktop。
1.启用 k8s in docker desktop, 点击 apply&restart
2.复制 k8s config file 从win10 到 ubuntu的home目录
cp -r /mnt/c/Users/testuser/.kube .
3. 分别在ubutun和win10中确认k8s cluster status
kubectl cluster-info|kubectl get nodes
十、配置kubernets dashboard
1. 配置dashboard
cd k8s-for-docker-desktop
kubectl create -f kubernetes-dashboard.yaml
kubectl get pod -n kubernetes-dashboard
kubectl proxy&
2.配置dashboard token
TOKEN=$(kubectl -n kube-system describe secret default| awk '$1=="token:"{print $2}')
kubectl config set-credentials docker-for-desktop --token="${TOKEN}"
echo $TOKEN
3. 访问dashboard
用生成的tocken登录 k8s dashboard