minikube搭建多节点kubernetes集群

  • 搭建主节点
  • 获取主节点的token和ip
  • 搭建工作节点
  • 将工作节点加入主节点集群

本文前置条件是安装minikuber,安装minikuber之前要安装kubectl

kubectl:https://kubernetes.io/docs/tasks/tools/install-kubectl/

minikube:https://kubernetes.io/docs/tasks/tools/install-minikube/

本文将讨论在win10以hyper-v为k8s虚拟机为docker desktop for  windows (linux模式)创建k8s

1.搭建主节点

当我们的docker for windows在linux容器模式下,hyper-v虚拟机会有一个名为DockerDesktopVM的linux虚拟机,须知此时host是DockerDesktopVM的虚拟网卡ip,不是你的windows 127.0.0.1,如果要设置代理需get  this point

如果之前你已经运行过minikube start ,需要先执行minikube stop和delete ,到用户文件夹下删除.minikube文件夹和.kube文件夹,以便于重头开始.

在hyper v里创建一个虚拟网卡,名为k8s-net,给将创建的集群使用,确保这个网络正常

  

minikube.exe start   -p k8s-master  --image-mirror-country cn  --iso-url=https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/iso/minikube-v1.5.1.iso  --registry-mirror=https://80gnjwff.mirror.aliyuncs.com  --vm-driver=hyperv --memory=4096 --cpus=2 --hyperv-virtual-switch=k8s-net

-p 是设置配置文件名称,不填写将默认为minikube

----image-mirror-country 和--registry-mirror 以及 --iso-url是因为国内下将镜像包时被墙改为阿里的源

--vm-driver 虚拟机驱动 win10自带hyper-v  

--memory --cpus  内存cpu

--virtual-switch 虚拟交换机填写刚才我们创建的k8s-net

打开有管理猿权限的powersheel 运行

PS C:\WINDOWS\system32> minikube.exe start -p k8s-master --image-mirror-country cn --iso-url=https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/iso/minikube-v1.5.1.iso --registry-mirror=https://**********.mirror.aliyuncs.com --vm-driver=hyperv --memory=2048 --cpus=2 --hyperv-virtual-switch=k8s-net
* minikube 1.5.2 is available! Download it: https://github.com/kubernetes/minikube/releases/tag/v1.5.2
* To disable this notice, run: 'minikube config set WantUpdateNotification false'

! Microsoft Windows 10 Pro 10.0.18362 Build 18362 上的 [k8s-master] minikube v1.5.1
! 您所在位置的已知存储库都无法访问。正在将 registry.cn-hangzhou.aliyuncs.com/google_containers 用作后备存储库。
* 正在下载 VM boot image...
> minikube-v1.5.1.iso: 143.76 MiB / 143.76 MiB [-] 100.00% 2.72 MiB p/s 53s
* 正在创建 hyperv 虚拟机(CPUs=2,Memory=4096MB, Disk=20000MB)...
! VM is unable to connect to the selected image repository: command failed: curl -sS https://k8s.gcr.io/
stdout:
stderr: curl: (7) Failed to connect to k8s.gcr.io port 443: Connection timed out
: Process exited with status 7
* 正在 Docker 18.09.9 中准备 Kubernetes v1.16.2…
* 正在下载 kubelet v1.16.2
* 正在下载 kubeadm v1.16.2
* 拉取镜像 ...
* 正在启动 Kubernetes ...
* Waiting for: apiserver
* 完成!kubectl 已经配置至 "k8s-master"
! C:\Program Files\Docker\Docker\Resources\bin\kubectl.exe is version 1.14.7, and is incompatible with Kubernetes 1.16.2. You will need to update C:\Program Files\Docker\Docker\Resources\bin\kubectl.exe or use 'minikube kubectl' to connect with this cluster
PS C:\WINDOWS\system32>

上面提示了kubectl版本不匹配不要慌  之后用minikube kubectl 代替 kubectl运行就可以了,运行后会下载匹配版权的kubectlg到\.minikube\cache\ 这个目录,复制去覆盖原来的版本即可.

虚拟机创建好了node后多了一个k8s-mast的linux虚拟机

hyper-v 需要关掉动态内存 

 Set-VMMemory -VMName 'k8s-master' -DynamicMemoryEnabled $false

查看一下节点  发现名字不太对,应该显示k8s-master才对,..先不管它

2.获取主节点的token和IP

获取token需要用到kubeadm ,所以我们要把kubeadm从缓存的镜像里面复制到k8s-master的bin目录  并且给予执行的权限

开启虚拟机的来宾服务 以便 以用powersheel指令复制文件到linux vm

 复制kubeadm 和kubelet到 linux bin目录

Copy-VMFile -Name k8s-master -SourcePath 'C:\Users\hbb\.minikube\cache\v1.16.2/kubeadm' -DestinationPath '/bin' -FileSource Host

Copy-VMFile -Name k8s-master -SourcePath 'C:\Users\hbb\.minikube\cache\v1.16.2/kubelet' -DestinationPath '/bin' -FileSource Host

然后给权限

minikube -p k8s-master ssh "sudo chmod 777 /bin/kubelet"

minikube -p k8s-master ssh "sudo chmod 777 /bin/kubeadm"

拿token 和IP

 

k1jnm3.5sqvduqe59vl184b 

192.168.1.108

3.搭建工作节点

也是start指令   -p k8s-master  换成-p k8s-Slave而已

杀掉动态内存

 Set-VMMemory -VMName 'k8s-Slave' -DynamicMemoryEnabled $false

也是和前面一样的操作

开启vm开宾服务

复制文件

给权限

4.将工作节点加入主节点集群

minikube -p k8s-Slave ssh

进入到vm ssh画面

k1jnm3.5sqvduqe59vl184b 

192.168.1.108

TOKEN=k1jnm3.5sqvduqe59vl184b  MASTER_IP=192.168.1.108 kubeadm join --token ${TOKEN} ${MASTER_IP}:8443 \     --discovery-token-unsafe-skip-ca-verification \
   --ignore-preflight-errors=all 当当当当,结果最后一步出现了错误,但是到了出门看电影的时间了, 下次再继续更新吧

 

猜你喜欢

转载自www.cnblogs.com/nocanstillbb/p/11788318.html