Linux安装如何安装minikube
老高最近由于工作变动,需要开展K8S的学习和研究,如何快速搭建一个K8S集群成为了第一个要解决的问题。
刚好老高手头有一台配置还行的服务器,赶紧安装记录一下,省的服务器迁移后数据全丢,然后又要重头来。
安装
进入 https://minikube.sigs.k8s.io/docs/start/
老高比较喜欢RPM的安装方式,大家可以选择自己喜欢的方法。
安装完成后可以查看命令是否OK
# root @ VM-117-17-tencentos in ~ [23:42:47] C:1
$ minikube start
😄 Centos 8.4.2105 (amd64) 上的 minikube v1.32.0
✨ 自动选择 docker 驱动。其他选项:none, ssh
🛑 The "docker" driver should not be used with root privileges. If you wish to continue as root, use --force.
💡 如果您在VM中运行 minikube,请考虑使用 --driver=none:
📘 https://minikube.sigs.k8s.io/docs/reference/drivers/none/
❌ 因 DRV_AS_ROOT 错误而退出:docker 驱动不应使用 root 权限。
改为minikube start --driver=none
运行,报错
❌ 因 GUEST_MISSING_CONNTRACK 错误而退出:Sorry, Kubernetes 1.28.3 requires conntrack to be installed in root's path
安装conntrack-tools
yum install conntrack-tools
继续运行minikube start --driver=none
,报错
❌ 因 GUEST_MISSING_CONNTRACK 错误而退出:Sorry, Kubernetes 1.28.3 requires crictl to be installed in root's path
安装crictl
VERSION="v1.29.0"
wget https://github.com/kubernetes-sigs/cri-tools/releases/download/$VERSION/crictl-$VERSION-linux-amd64.tar.gz
tar zxvf crictl-$VERSION-linux-amd64.tar.gz -C /usr/local/bin
继续运行minikube start --driver=none
,报错
因 NOT_FOUND_CRI_DOCKERD 错误而退出:
💡 建议:
Kubernetes v1.24+ 和 docker 容器运行时的 none 驱动需要 cri-dockerd。
请使用以下说明安装 cri-dockerd:
https://github.com/Mirantis/cri-dockerd
安装cri-dockerd
wget https://github.com/Mirantis/cri-dockerd/releases/download/v0.3.9/cri-dockerd-0.3.9-3.el8.x86_64.rpm
rpm -Uvh cri-dockerd-0.3.9-3.el8.x86_64.rpm
继续运行minikube start --driver=none
,报错
因 NOT_FOUND_CNI_PLUGINS 错误而退出:
💡 建议:
The none driver with Kubernetes v1.24+ requires containernetworking-plugins.
Please install containernetworking-plugins using these instructions:
https://minikube.sigs.k8s.io/docs/faq/#how-do-i-install-containernetworking-plugins-for-none-driver
安装containernetworking-plugins-for-none
CNI_PLUGIN_VERSION=v1.4.0
CNI_PLUGIN_TAR="cni-plugins-linux-amd64-$CNI_PLUGIN_VERSION.tgz" # change arch if not on amd64
CNI_PLUGIN_INSTALL_DIR="/opt/cni/bin"
curl -LO "https://github.com/containernetworking/plugins/releases/download/$CNI_PLUGIN_VERSION/$CNI_PLUGIN_TAR"
mkdir -p "$CNI_PLUGIN_INSTALL_DIR"
tar -xf "$CNI_PLUGIN_TAR" -C "$CNI_PLUGIN_INSTALL_DIR"
rm "$CNI_PLUGIN_TAR"
继续运行minikube start --driver=none
,终于成功
find: ‘/etc/cni/net.d’: 没有那个文件或目录
> kubelet.sha256: 64 B / 64 B [-------------------------] 100.00% ? p/s 0s
> kubectl.sha256: 64 B / 64 B [-------------------------] 100.00% ? p/s 0s
> kubeadm.sha256: 64 B / 64 B [-------------------------] 100.00% ? p/s 0s
> kubeadm: 46.77 MiB / 46.77 MiB [--------------] 100.00% 1.08 MiB p/s 43s
> kubectl: 47.56 MiB / 47.56 MiB [--------------] 100.00% 1.08 MiB p/s 44s
> kubelet: 105.65 MiB / 105.65 MiB [----------] 100.00% 1.07 MiB p/s 1m39s
▪ 正在生成证书和密钥...
▪ 正在启动控制平面...
▪ 配置 RBAC 规则 ...
🔗 配置 bridge CNI (Container Networking Interface) ...
🤹 开始配置本地主机环境...
❗ The 'none' driver is designed for experts who need to integrate with an existing VM
💡 Most users should use the newer 'docker' driver instead, which does not require root!
📘 更多信息,请参阅:https://minikube.sigs.k8s.io/docs/reference/drivers/none/
❗ kubectl 和 minikube 配置将存储在 /root 中
❗ 如需以您自己的用户身份使用 kubectl 或 minikube 命令,您可能需要重新定位该命令。例如,如需覆盖您的自定义设置,请运行:
▪ sudo mv /root/.kube /root/.minikube $HOME
▪ sudo chown -R $USER $HOME/.kube $HOME/.minikube
💡 此操作还可通过设置环境变量 CHANGE_MINIKUBE_NONE_USER=true 自动完成
🔎 正在验证 Kubernetes 组件...
▪ 正在使用镜像 gcr.io/k8s-minikube/storage-provisioner:v5
🌟 启用插件: default-storageclass, storage-provisioner
💡 kubectl not found. If you need it, try: 'minikube kubectl -- get pods -A'
🏄 完成!kubectl 现在已配置,默认使用"minikube"集群和"default"命名空间
完成后老高建议把shell切换为zsh,因为有kubectl的插件,就不用额外去做alias了。
还没有安装zsh的同学可以移步 zsh + oh-my-zsh 默认shell的最佳替代品 还有 打造高效多环境zsh开发环境两篇文章。