RHEL/RedHat:Linux虚拟机安装minikube
学习自
容器与云|如何在 RHEL 8 上安装 MiniKube(主要参考这个)
第五篇:minikube安装使用 这个教程装了两步之后发现是Centos,而我的是rhel,遂放弃
系统相关
注意
1、看本文前先确认服务器是哪个Linux版本,本文介绍的是RHEL/RedHat,不一定适用于CentOS
2、下载过程中可能出现的问题,我放在了最后一节Q:遇到的问题及解决方案
全过程如下:
1、启用官方Docker仓库
1)以后的操作,需要有root权限
su root
2)添加docker官方软件仓库
dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
dnf repolist
2、安装Docker CE(社区版)
1)安装Docker及其依赖项
dnf install docker-ce docker-ce-cli containerd.io -y
结果
2)安装Docker后启动服务
systemctl start docker
3)允许其他本地用户在各自权限下可以运行docker命令
usermod -aG docker $USER
newgrp docker
该节可能出现问题:XXX is not in the sudoers file. This incident will be reported.
3、安装kubectl二进制文件
kubectl是一个命令行工具,它通过API与Kubernetes集群进行交互。我们使用Kubectl部署应用。
默认情况下,kubectl不包含在RHEL、Rocky、AlmaLinux8软件包仓库中。
1)手动安装kubectl
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
cp kubectl /usr/local/bin/ && chmod +x /usr/local/bin/kubectl
kubectl version --client
输出
4、下载MiniKube二进制文件并启动
1)安装kubectl后,使用如下命令下载安装MiniKube二进制文件:
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
install minikube-linux-amd64 /usr/local/bin/minikube
该部分可能出现(35)TCP connection reset by peer 问题,说明虚拟机访问不了这个网址,此时可以先在主机上把minikube-linux-amd64下载下来,再通过xshell或者tabby传到虚拟机上安装
2)启动minikube集群
先切换为具体用户,再执行
su - 用户
minikube start --driver docker
这个过程约5~10分钟,且需要访问外网,请确保自己主机挂了梯子或者使用的是国内的镜像下载网站,输出:
通过该输出可以看到minikube命令已经使用了docker作为驱动程序启动了单节点Kubernetes集群。
3)查看本地Kubernetes集群的状态
minikube status
minikube的指令(start和stop均需要用户借助sudo命令才能执行)
minikube status
minikube stop #停止minikube集群
minikube start #和stop相反,启动minikube服务
minikube ip
之后操作时,如果碰到主机卡死的情况,不要怀疑,就是minikube占用了太多内存,可以先把它关了
4)查看集群和节点信息:kubectl
kubectl cluster-info
kubectl get nodes
5、测试和验证Kubernetes集群
说明:
-
以下操作的前提:docker服务启动,minikuber启动
sudo systemctl restart docker
minikube start
-
以下的deployment、pod、service都是k8s的专有名词,具体含义这里不做解释
1)为了测试Kubernetes集群,让我们使用echo服务器镜像创建k8s部署,它相当于HTTP Web服务器,并将其作为服务暴露在端口8080上:
kubectl create deployment test-minikube --image=k8s.gcr.io/echoserver:1.10
可以看到创建了一个deployment,名为test-minikube
2)访问1)中设置的deplyment,并将其公开为service:
kubectl expose deployment test-minikube --type=NodePort --port=8080
3)获取上边设置的deployment、pod、serivce的信息
kubectl get deployment,pods,svc
正常情况:
不正常情况(READY为0,AVAILABLE为0):
对于不正常情况,会导致后续出现no running pod for service test-minikube found问题,这是因为有的依赖项需要FQ才能下载,所以要么挂梯子,要么用国内镜像源。
4)访问service,获取其URL,curl这个URL
minikube service test-minikube --url
出现以上情况就意味着我们的k8s集群工作正常,因为我们能够访问我们的示例应用。
6、启动MiniKube插件
MiniKube提供插件,可以为我们的集群添加额外的功能。
1)列出所有可用插件
minikube addons list
2)k8s附带一个仪表盘dashboard(从上图可以看出已经启动),用于管理集群:
启动dashboard
minikube addons enable dashboard
还要启动nginx入口控制器
minikube addons enable ingress
Q:遇到的问题及解决方案
1)dnf command not found
解决方法来源:Linux dnf 命令 command not found dnf 未找到命令 dnf 命令详解 dnf 命令未找到 dnf 命令安装 - CommandNotFound
原因:没装dnf
解决方案:
#安装 epel-release 依赖:
yum install epel-release
#安装 DNF 包:
yum install dnf
#查看dnf安装情况
dnf --version
如果在此过程中出现mirror问题,比如404 not found,或者try other mirrors,说明镜像源有问题,参考RHEL/RedHat:替换yum阿里源为163源 - ShineLe - 博客园解决。
2)This system is not registered with an entitlement server. You can use subscription-manager to register.
解决方案来源:This system is not registered with an entitlement server. You can use subscription-manager to regist_六位元素的博客-CSDN博客
出现于哪个环节:yum install -y yum-utils device-mapper-persistent-data lvm2
解决方案
vi /etc/yum/pluginconf.d/subscription-manager.conf,将enable=1改为enable=0
3)No such command: config-manager. Please use /usr/bin/dnf --helpIt could be a DNF plugin command, try: "dnf install 'dnf-command(config-manager)'"
解决方案来源:dnf缺少config-manager命令 - 程序员大本营
出现于哪个环节:dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
解决方案
sudo yum install dnf-plugins-core
4)Error: Error downloading packages:Cannot download Packages/docker-ce-cli-24.0.5-1.el7.x86_64.rpm: All mirrors were tried
解决方案来源:Linux安装docker,报错Error downloading packages: 3:docker-ce-23.0.4-1.el7.x86_64: [Errno 256]_日出时抑郁终结的博客-CSDN博客
出现于哪个环节:第2步第1)部分
dnf install docker-ce docker-ce-cli containerd.io -y
解决方法
修改etc/yum.repos.d/docker-ce.repo文件
将[docker-ce-test]下方的enabled=0修改为1
再重新执行安装指令即可
5)(35)TCP connection reset by peer
出现于哪个环节:第4步第1)部分
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
install minikube-linux-amd64 /usr/local/bin/minikube
原因:虚拟机无法访问这个网址(但能联网)
解决方法:
先在主机下载好,再传到虚拟机上(借助各种终端模拟器,例如XShell、tabby等)
6)Exiting due to DRV_AS_ROOT: The "docker" driver should not be used with root privileges.
出现于哪个环节:第4步第2)部分
minikube start --driver docker
原因:不能用root来执行docker驱动
解决方案:先切换为具体用户再执行
7)XXX is not in the sudoers file. This incident will be reported.
解决方案来源:Linux||报错:vboxuser is not in the sudoers file. This incident will be reported._vboxuser不在sudoers文件中_Inochigohan的博客-CSDN博客
出现于哪个环节:第2步第3)部分
原因:vboxuser没有sudo权限,需在/etc/sudoers系统文件添加vboxuser ALL=(ALL) ALL语句
解决步骤:
①切换为root
su -
②编辑 /etc/sudoers
vi /etc/sudoers
③找到“root ALL=(ALL) ALL”一行,在下面插入“vboxuser ALL=(ALL) ALL”语句,保存(需要用wq!强制退出)退出
④查看是否修改成功
more /etc/sudoers
⑤返回用户,并用sudo执行
sudo usermod -aG docker $USER && newgrp docker
8)Unable to load cached images
出现于哪个环节:第4步第2)部分
minikube start --driver docker
原因:部分Download需要FQ
解决方法:1)主机架个梯子,保证能ping通google.com(我用的这种方法,解决了);2)切换国内镜像源:minikube安装k8s问题:Unable to load cached images_docker_昙花逐月-华为云开发者联盟,这种方法我没有测试过,只是看到了所以贴上来
9)
①Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
②Exiting due to DRV_DOCKER_NOT_RUNNING: Found docker, but the docker service isn't running. Try restarting the docker service.
原因:docker服务没启动,使用k8s的前提是启动docker
解决方法:
sudo systemctl restart docker
10)minikube无法启动:“minikube service hello-minikube”无法访问问题解决 Exiting due to SVC_NOT_FOUND: Service 'test-minikube' was not found in 'defa
均需要挂梯子,再重试