使用 Minikube 安装 Kubernetes

概述:

  单机低配置主机也可以玩转kubernetes集群。该文章是将介绍使用Minikube安装Kubernetes集群(一般用于本地/开发环境)。

  这篇文章是根据kubernetes官网和其他资料总结而来,如环境相似(或更高),一般均可以安装成功。

配置环境:

  硬件:CPU 至少2个核心,至少2.5G(2560M)内存

  软件:virtualbox虚拟机,操作系统 CentOS Linux release 7.7.1908 (Core)

注意:

  CPU 必须2个或2个以上,否则安装失败。内存必须2.5G或大于2.5G,否则磁盘IO总是100%。

说明:

  如无特殊说明,本文中的所有命令全部使用root用户执行。

一、准备工作

1.1 关闭防火墙、关闭SELinux、禁用swap、设置kubernetes源

请参考 Kubernetes(K8s) 安装(使用kubeadm安装Kubernetes集群)

1.2 下载kubectl文件和Minikube文件

kuberctl文件:下载

Minikube文件:下载  (下载之后,需要重命名为 minikube。官网

(说明:这里需要将下载的文件放入到虚拟机。当然也可以使用curl命令直接下载)

结果如下图:

二、安装docker

请参考 史上最详细的Docker安装手册

三、安装kubectl和minikube

3.1 将kubectl和minikube文件改为可执行文件

执行以下命令:

chmod +x kubectl && chmod +x minikube

结果如下图(kubectl和minikube文件变为绿色):

3.2 将kubectl和minikube复制到 /usr/local/bin/ 目录

# cp kubectl /usr/local/bin/ && cp minikube /usr/local/bin/
# ls /usr/local/bin/

结果如下图:

 3.3 检验是否安装成功

kubectl --help

安装成功,显示结果如下图:

minikube version

安装成功,显示结果如下图:

四、启动minikube

4.1 安装conntrack

yum install -y conntrack

4.2 下载kubernetes镜像

由于minikube启动过程中会从k8s.gcr.io下载镜像,但是国内无法下载,所以从阿里云下载(并修改tag和k8s.gcr.io一致)。

--------------------------------- 2021-06-29 修改 Start -------------------------------------------

说明:

  这里使用的kubernetes 的版本是1.18.0,根据需要改为其他版本即可。

  如果使用的是最新版,可以直接跳过执行下一步骤(即 minikube start 命令)。如果下一步骤也报错(即 minikube start 命令),可提取相应的版本号(使用 minikube logs命令查看 )来替换下面的版本号。

---------------------------------- 2021-06-29 End -------------------------------------------

## 1. 使用docker执行以下命令,下载镜像(从阿里云下载):
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.18.0 &&
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.18.0 &&
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.18.0 &&
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.18.0 &&
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.2 &&
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.4.3 &&
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:1.6.7 &&
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/storage-provisioner:v1.8.1

## 2. 更改镜像标签(必须修改):
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.18.0 k8s.gcr.io/kube-apiserver:v1.18.0 &&
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.18.0 k8s.gcr.io/kube-controller-manager:v1.18.0 &&
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.18.0 k8s.gcr.io/kube-scheduler:v1.18.0 &&
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.18.0 k8s.gcr.io/kube-proxy:v1.18.0 &&
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.2 k8s.gcr.io/pause:3.2 &&
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.4.3 k8s.gcr.io/etcd:3.4.3-0 &&
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:1.6.7 k8s.gcr.io/coredns:1.6.7 &&
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/storage-provisioner:v1.8.1 gcr.io/k8s-minikube/storage-provisioner:v1.8.1

4.3 启动minikube

------------------- 2021-10-27 -----------------------
## 安装 kubernetes 1.22.0 版本期间,使用最新版本的docker(20.10.10),发现需要安装插件 socat、tc、libseccomp-devel (会提示 kubelet 没有运行,导致安装失败)
## 如缺少插件可能无法运行容器,报错:runc: symbol lookup error: runc: undefined symbol: seccomp_api_get
yum install -y socat tc libseccomp-devel

## 使用下面的命令进行启动minikube (image-repository参数:指定镜像仓库 2021-02-02更新,更多参数:minikube start --help)
## 不建议采用下面的命令了,有点过时了 ## minikube start
--driver=none --image-repository='registry.cn-hangzhou.aliyuncs.com/google_containers'

------------------- 2022-12-16 -----------------------
## 在安装kubernetes v1.25.3 版本时,再次遇到了对不友好的事情,使用docker安装时不能用root账户(除非加--force参数)
## 另外安装v1.25.3版本时,还需要增加crictl依赖(可以采用rpm进行安装,例如 rpm -ivh 二进制文件名,另外需要执行 ln -s /usr/local/bin/crictl /usr/bin/crictl 命令)
minikube start --image-repository='registry.cn-hangzhou.aliyuncs.com/google_containers' --image-mirror-country='cn' --force-systemd=true --driver=docker --container-runtime=containerd --force

执行成功,结果如下图:

 执行以下命令:

## 如之前已经安装过,请先删除对应的文件
mv /root/.kube /root/.minikube $HOME # 如果使用的root用户,这一步可以省略 chown -R $USER $HOME/.kube $HOME/.minikube

注意:

## 1:如安装过程中遇到问题,可以执行以下命令来查看日志
minikube logs
## 2:执行以下命令删除已经安装的minikube(然后重新执行start命令)
minikube delete --all
## 3:如安装失败,可多次进行尝试(start 和 delete)

------------------- 2021-07-22 -----------------------
## 4: 如安装的过程中提示缺少某一个镜像,可以在使用docker search命令在docker hub上查找(或者在docker hub官网上搜索),下面以coredns为例
## 本机执行以下命令
docker search coredns
## 通常我也会去docker hub上找一下,看看哪个是官方提供的

------------------- 2021-10-27 -----------------------

## 5. 如果minikube没有开机启动,则可以直接执行以下命令,启动之前安装的kubernetes集群
minikube start

五、校验是否安装成功

查看minikube安装是否成功,执行以下命令:

minikube status

安装成功,显示如下图:

kubectl cluster-info

 说明:

  可以根据自己的需要是否安装dashboard,参考资料,对外公布接口文档

# 安装dashboard
minikube dashboard

 

参考资料:

https://kubernetes.io/docs/tasks/tools/install-kubectl/#install-kubectl-on-linux


https://kubernetes.io/zh/docs/tasks/tools/install-minikube/


https://yq.aliyun.com/articles/691500

 

https://minikube.sigs.k8s.io/docs/drivers/docker/ 

--------------------------------------------------------------------------------------------------------

PS:如有问题,请在下方留言,我看到后会及时回复。

--------------------------------------------------------------------------------------------------------

 

posted @ 2020-05-08 20:25  暗香残留  阅读(1643)  评论(0编辑  收藏  举报