为什么使用minikube

因为是个人学习用的k8s,资源有限,因此用minikube搭建单节点k8s集群。

kubeadm、minikube,二进制包的区别

这三个都是搭建k8s集群的方式

  • kubeadm
    • 是一个工具,用于快速搭建kubernetes集群,目前应该是比较方便和推荐的,简单易用
  • minikube
    • 一般用于本地开发、测试和学习,不能用于生产环境
    • minikube快速搭建一个运行在本地的单节点的Kubernetes
  • 二进制包
    • 在官网下载相关的组件的二进制包,上面的两个是工具,可以快速搭建集群,也就是相当于用程序脚本帮我们装好了集群,前两者属于自动部署,简化部署操作,自动部署屏蔽了很多细节,使得对各个模块感知很少,遇到问题很难排查,如果手动安装,对kubernetes理解也会更全面。

minikube start时遇到的问题

以root身份执行命令时

会出现报错:

Exiting due to DRV_AS_ROOT: The "docker" driver should not be used with root privileges.

解决办法:

  • 第一个办法是强制执行(不推荐)但是我懒,我用的这个方法
minikube start --force --driver=docker
  • 第二个方法是创建用户
adduser newUser
passwd newUser
su newUser

需要docker组启动

报错

X Exiting due to PROVIDER_DOCKER_ERROR: "docker version --format -" exit status 1: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.40/version: dial unix /var/run/docker.sock: connect: permission denied
* 建议:Add your user to the 'docker' group: 'sudo usermod -aG docker $USER && newgrp docker'
* 文档:https://docs.docker.com/engine/install/linux-postinstall/

解决办法

su root
# 创建docker group
sudo groupadd docker
# 添加 newUser 到docker group
sudo usermod -aG docker newUser
# 激活对组的更改
newgrp docker

K8S_INSTALL_FAILED

报错

X Exiting due to K8S_INSTALL_FAILED: updating control plane: downloading binaries: downloading kubectl: download failed: https://kubernetes.oss-cn-hangzhou.aliyuncs.com/kubernetes-release/release/v1.20.2/bin/linux/amd64/kubectl?checksum=file:https://kubernetes.oss-cn-hangzhou.aliyuncs.com/kubernetes-release/release/v1.20.2/bin/linux/amd64/kubectl.sha256: getter: &{Ctx:context.Background Src:https://kubernetes.oss-cn-hangzhou.aliyuncs.com/kubernetes-release/release/v1.20.2/bin/linux/amd64/kubectl?checksum=file:https://kubernetes.oss-cn-hangzhou.aliyuncs.com/kubernetes-release/release/v1.20.2/bin/linux/amd64/kubectl.sha256 Dst:/root/.minikube/cache/linux/v1.20.2/kubectl.download Pwd: Mode:2 Umask:---------- Detectors:[0x2db2d58 0x2db2d58 0x2db2d58 0x2db2d58 0x2db2d58 0x2db2d58 0x2db2d58] Decompressors:map[bz2:0x2db2d58 gz:0x2db2d58 tar.bz2:0x2db2d58 tar.gz:0x2db2d58 tar.xz:0x2db2d58 tbz2:0x2db2d58 tgz:0x2db2d58 txz:0x2db2d58 xz:0x2db2d58 zip:0x2db2d58] Getters:map[file:0xc0012b1c80 http:0xc001122680 https:0xc001122740] Dir:false ProgressListener:0x2d78370 Options:[0xfdf780]}: invalid checksum: Error downloading checksum file: bad response code: 404
* 
* If the above advice does not help, please let us know: 
  - https://github.com/kubernetes/minikube/issues/new/choose

解决办法

minikube start --image-mirror-country='cn' --image-repository='registry.cn-hangzhou.aliyuncs.com/google_containers' --kubernetes-version=v1.23.9

个人认为可能阿里云仓库没有最新版本,这里指定了一个阿里云仓库有的版本,于是就下载成功了,若理解有误,望各位大佬指出来。

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐