CentOS 7安装minikube,无需翻墙

环境:
虚拟机硬件:要求至少分配 2 CPUs,内存2G。磁盘20G1,本次分配了4核、6G、60G
虚拟机OS:Hyper-v 虚拟机下安装的CentOS 7.9.2009系统
操作用户:非root用户,有sudo权限。注意全文执行命令行时的用户切换,“#命令”代表root用户,“$命令”代表非root用户
Docker:需18.09以上2,本次使用20.10.6
Minikube:v1.18.1(默认安装kubernate_v1.20.2)

1、切换到root

$ sudo -i

2、配置CentOS环境

2.1 换阿里源并软件更新
# cd  /etc/yum.repos.d/
# mv CentOS-Base.repo CentOS-Base.repo.bak
# curl -Lo CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# yum clean all
# yum makecache
# yum update
# yum upgrade
2.2 配置环境变量
# vi /etc/profile.d/sh.local

添加如下内容后:wq保存退出
export PATH=$PATH:/usr/local/bin
验证环境变量配置是否成功

# echo $PATH

3、用户安装docker

# yum install -y yum-utils   device-mapper-persistent-data   lvm2
# yum-config-manager     --add-repo     http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# yum list docker-ce --showduplicates | sort -r
# yum install docker-ce-20.10.6
# systemctl start docker
# systemctl enable docker

换国内源

# cat <<EOF > /etc/docker/daemon.json
{
  "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn/"]
}
EOF

验证是否替换成功

# systemctl restart docker
# docker info

执行完成后查看是否含以下结果

 Registry Mirrors:
  https://docker.mirrors.ustc.edu.cn/

4、切换回普通用户

exit切换回普通用户,否则执行后面的命令" minikube start --driver=docker"会报错 X Exiting due to DRV_AS_ROOT: The "docker" driver should not be used with root privileges.
普通用户加入docker用户组

$ sudo usermod -aG docker $USER && newgrp docker

5、安装minikube

下载minikube命令行工具minikube-linux-amd64,重命名minikube 赋予执行权限并且移动到/usr/local/bin/目录下

$ curl -Lo minikube https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/releases/v1.18.1/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/

执行minikube初始化,其它参数使用默认值

$ minikube start --driver=docker
其它参数
--image-mirror-country cn 将缺省利用 registry.cn-hangzhou.aliyuncs.com/google_containers 作为安装Kubernetes的容器镜像仓库 (阿里云版本可选)
--iso-url=*** 利用阿里云的镜像地址下载相应的 .iso 文件 (阿里云版本可选)
--registry-mirror=***为了拉取Docker Hub镜像,需要为 Docker daemon 配置镜像加速,参考阿里云镜像服务
--cpus=2: 为minikube虚拟机分配CPU核数,默认2个
--memory=2048mb: 为minikube虚拟机分配内存数,默认2G
--kubernetes-version=***: minikube 虚拟机将使用的 kubernetes 版本

等待下载500M左右文件的功夫(文件会下载到~/.kube~/.minikube下),看到如下内容大概主要功能是安装完了。
在这里插入图片描述

看提示说kubectl没有安装,可以用 minikube kubectl -- 来替代 ,也可以单独安装kubectl,以下2方式选一个即可。

5.1 用 kubectl 来替代minikube kubectl --

添加临时alias(alias永久生效可修改相关配置文件)。注意 minikube kubectl -- 后面的--不能丢。

$ alias kubectl="minikube kubectl --"

获者设置永久alias

$ echo "alias kubectl=minikube kubectl --" >> ~/.bashrc
$ source ~/.bashrc

查看所有pod

$ kubectl get pod -A 

以上等价于

$ minikube kubectl -- get pods -A 
5.2 安装kubectl

添加kubernetes阿里源

$ sudo cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

```bash
yum安装kubectl
```bash
$ sudo yum install -y kubectl

再执行获取所有pod命令

$ kubectl get pod -A 

注意执行命令的linux用户:非minikube安装使用的用户执行命令会报错The connection to the server localhost:8080 was refused - did you specify the right host or port? 只看错误提示让人摸不着头脑,浪费时间

6、kubectl 命令自动补全

安装bash-completion,命令会创建一个/usr/share/bash-completion/bash_completion文件

$ sudo yum -y install bash-completion
$ source /usr/share/bash-completion/bash_completion

执行以下命令验证bash-completion是否安装成功

$ type _init_completion

在文件 ~/.bashrc 中导入(source)补全脚本

$ echo 'source <(kubectl completion bash)' >>~/.bashrc

将补全脚本添加到目录 /etc/bash_completion.d 中 (以下命令操作需要切换root用户)

# kubectl completion bash >/etc/bash_completion.d/kubectl

重启shell会话生效
官方文档

7、kubectl命令练习

7.1 NodePort 部署

创建一个示例部署,并在端口8080上暴露它

### 命令A
$ kubectl create deployment hello-minikube --image=k8s.gcr.io/echoserver:1.4
### 命令B
$ kubectl expose deployment hello-minikube --type=NodePort --port=8080

以上命令来自Minikube官方文档,不要着急执行,因网络问题不科学上网直接执行不会成功 。所以我们将利用Minikube能将本地docker镜像推送到minikube自带的docker容器并离线缓存这个特性迂回处理这个问题。Minikube推送镜像的方式官方介绍了8种,我们使用其中一种解决这个问题,以下详细步骤:

7.1.1 下载hello-minikube docker镜像,并打个tag
### 找个叫hello-minikube的docker镜像
$ docker search hello-minikube
### 随便找一个别人做好的docker镜像,如bienbenigno/hello-minikube
$ docker pull bienbenigno/hello-minikube
### 打个叫k8s.gcr.io/echoserver:1.4的tag
$ docker tag bienbenigno/hello-minikube:latest k8s.gcr.io/echoserver:1.4
7.1.2 生成minikube离线缓存
### 将镜像添加到本地缓存
$ minikube cache add k8s.gcr.io/echoserver:1.4
### 查看缓存添加情况
$ minikube cache list

这个命令的效果是在创建了~/.minikube/cache/images/k8s.gcr.io/echoserver_1.4这个缓存文件,同时把主机docker镜像同步到minikube内部的docker容器中,可以通过以下命令查看内部docker镜像:
### 进入minikube内部docker容器
$ minikube ssh
### 或
$ eval $(minikube docker-env)
### 查看内部docker镜像
$ docker images
### 使用minikube ssh查完后exit退出内部docker容器,使用eval $(minikube docker-env)需重启终端会话退出

此处附2张minikube缓存文件相关的官方文档截图
在这里插入图片描述

在这里插入图片描述

至此再执行上面的命令A和命令B。因为已经有了离线缓存,minikube不会再去远程下载k8s.gcr.io/echoserver:1.4镜像。命令完成后即可启动服务

查看部署的service:

$ kubectl get services hello-minikube

查看pod运行状态

$ kubectl get pods

如果pod的运行状态STATUS异常(不是Running),则用以下命令查看原因(hello-minikube-74b887d85d-7hkxh为pod名称),具体怎么排查问题可参考https://www.jianshu.com/p/1e0ddddd4d4d

$ kubectl describe pod hello-minikube-74b887d85d-7hkxh

访问此服务的最简单方法是通过minikube启动Web浏览器:

$ minikube service hello-minikube

访问方式如下图:
在这里插入图片描述
或者,使用kubectl转发端口:

$ kubectl port-forward service/hello-minikube 7080:8080

访问:新开一个命令窗口,$ curl localhost:7080

7.2 LoadBalancer部署

要访问LoadBalancer部署,请使用“ minikube tunnel”命令。

$ kubectl create deployment balanced --image=k8s.gcr.io/echoserver:1.4
$ kubectl expose deployment balanced --type=LoadBalancer --port=8080

另起一个窗口,启动tunnel 为LoadBalancer部署创建一个可路由的IP:

$ minikube tunnel

要查找可路由的IP,运行以下命令

$ kubectl get services balanced

访问地址:http://EXTERNAL-IP:8080/

7.3 minikube集群管理

暂停Kubernetes,而不会影响已部署的应用程序:

$ minikube pause

停止集群:

$ minikube stop

增加默认内存限制(需要重新启动):

$ minikube config set memory 16384

浏览minikube自带的Kubernetes服务插件库,因网络问题该库插件不能直接安装:

$ minikube addons list

创建另一个运行旧Kubernetes版本的集群:

$ minikube start -p aged --kubernetes-version=v1.16.1

删除所有minikube集群:

$ minikube delete --all

学习阶段在配置k8s网络环境的时候为了防止干扰,建议顺手关闭防火墙
$ sudo systemctl status firewalld
$ sudo systemctl stop firewalld
$ sudo systemctl disable firewalld

参考文档

1、https://minikube.sigs.k8s.io/docs/start/?spm=a2c6h.12873639.0.0.ab202043u7Be4o
2、https://developer.aliyun.com/article/221687
3、https://kubernetes.io/zh/docs/tutorials/hello-minikube/
4、https://www.runoob.com/docker/centos-docker-install.html
5、http://dockone.io/article/4884
6、https://www.cnblogs.com/mafeng/p/6800208.html
7、https://www.jianshu.com/p/1e0ddddd4d4d
8、https://www.cnblogs.com/xlizi/p/13452536.html


  1. https://minikube.sigs.k8s.io/docs/start/ ↩︎

  2. https://minikube.sigs.k8s.io/docs/drivers/docker/ ↩︎

  • 9
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
要在CentOS 7上安装minikube,可以按照以下步骤进行操作: 1. 首先,清理yum缓存并更新yum源。执行以下命令: ``` yum clean all yum makecache ``` 2. 安装VirtualBox-5.2。执行以下命令: ``` yum install VirtualBox-5.2 ``` 3. 下载minikube并将其移动到/usr/local/bin目录下。执行以下命令: ``` curl -Lo minikube http://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 && chmod +x minikube && mv minikube /usr/local/bin/ ``` 4. 下载kubectl。执行以下命令: ``` curl -LO "https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl" ``` 5. 将kubectl移动到/usr/local/bin目录下。执行以下命令: ``` chmod +x kubectl mv kubectl /usr/local/bin/ ``` 6. 设置KUBECONFIG环境变量。执行以下命令: ``` export KUBECONFIG=$HOME/.kube/config ``` 7. 最后,启动minikube。执行以下命令: ``` minikube start ``` 通过按照以上步骤进行操作,你就可以在CentOS 7上成功安装并启动minikube了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [centos7安装minikube](https://blog.csdn.net/tony_vip/article/details/123856588)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值