RHEL/RedHat:Linux虚拟机安装minikube

学习自

容器与云|如何在 RHEL 8 上安装 MiniKube(主要参考这个)

第五篇:minikube安装使用 这个教程装了两步之后发现是Centos,而我的是rhel,遂放弃

系统相关

Linux服务器:Linux rhel1.myguest.virtualbox.org 3.10.0-1160.el7.x86_64
虚拟机平台:VirtualBox
Docker:v20.10.9
minikube:v1.23.1

注意

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)部分

sudo usermod -aG docker $USER && newgrp docker

原因: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

minikube无法启动:“minikube service hello-minikube”无法访问问题解决_minikube无法启动:“minikube service hello-minikube”无_程序员不鸣的博客-CSDN博客

均需要挂梯子,再重试

 

 

 

 

posted @ 2023-08-02 14:27  ShineLe  阅读(155)  评论(0编辑  收藏  举报