至尊宝藏泉 發表於 2020-5-8 20:25:00

使用 Minikube 安装 Kubernetes

<p>概述:</p>
<p>  单机低配置主机也可以玩转kubernetes集群。该文章是将介绍使用Minikube安装Kubernetes集群(一般用于本地/开发环境)。</p>
<p>  这篇文章是根据kubernetes官网和其他资料总结而来,如环境相似(或更高),一般均可以安装成功。</p>
<p>配置环境:</p>
<p>  硬件:CPU 至少2个核心,至少2.5G(2560M)内存</p>
<p>  软件:virtualbox虚拟机,操作系统 CentOS Linux release 7.7.1908 (Core)</p>
<p><span style="color: rgba(255, 0, 0, 1)">注意:</span></p>
<p><span style="color: rgba(255, 0, 0, 1)">  CPU 必须2个或2个以上,否则安装失败。内存必须2.5G或大于2.5G,否则磁盘IO总是100%。</span></p>
<p>说明:</p>
<p>  如无特殊说明,本文中的所有命令全部使用root用户执行。</p>
<h1>一、准备工作</h1>
<h2>1.1 关闭防火墙、关闭SELinux、禁用swap、设置kubernetes源</h2>
<p>请参考&nbsp;Kubernetes(K8s) 安装(使用kubeadm安装Kubernetes集群)</p>
<h2>1.2 下载kubectl文件和Minikube文件</h2>
<p>kuberctl文件:下载</p>
<p>Minikube文件:下载&nbsp; (下载之后,需要重命名为 minikube。官网)</p>
<p>(说明:这里需要将下载的文件放入到虚拟机。当然也可以使用curl命令直接下载)</p>
<p>结果如下图:</p>
<p><img src="https://img2020.cnblogs.com/blog/336878/202005/336878-20200508192912301-398923308.png" alt=""></p>
<h1>二、安装docker</h1>
<p>请参考&nbsp;史上最详细的Docker安装手册</p>
<h1>三、安装kubectl和minikube</h1>
<h2>3.1 将kubectl和minikube文件改为可执行文件</h2>
<p>执行以下命令:</p>
<div class="cnblogs_code">
<pre>chmod +x kubectl &amp;&amp; chmod +x minikube</pre>
</div>
<p>结果如下图(kubectl和minikube文件变为绿色):</p>
<p><img src="https://img2020.cnblogs.com/blog/336878/202005/336878-20200508195234866-1224541342.png" alt=""></p>
<h2>3.2 将kubectl和minikube复制到&nbsp;/usr/local/bin/ 目录</h2>
<div class="cnblogs_code">
<pre># cp kubectl /usr/local/bin/ &amp;&amp; cp minikube /usr/local/bin/<br># ls /usr/local/bin/</pre>
</div>
<p>结果如下图:</p>
<p><img src="https://img2020.cnblogs.com/blog/336878/202005/336878-20200508195342180-1948233304.png" alt=""></p>
<h2>&nbsp;3.3 检验是否安装成功</h2>
<div class="cnblogs_code">
<pre>kubectl --help</pre>
</div>
<p>安装成功,显示结果如下图:</p>
<p><img src="https://img2020.cnblogs.com/blog/336878/202005/336878-20200508200156164-338618815.png" alt=""></p>
<div class="cnblogs_code">
<pre>minikube version</pre>
</div>
<p>安装成功,显示结果如下图:</p>
<p><img src="https://img2020.cnblogs.com/blog/336878/202005/336878-20200508200236299-1996274408.png" alt=""></p>
<h1>四、启动minikube</h1>
<h2>4.1 安装conntrack</h2>
<div class="cnblogs_code">
<pre>yum install -y conntrack</pre>
</div>
<h2>4.2 下载kubernetes镜像</h2>
<p>由于minikube启动过程中会从k8s.gcr.io下载镜像,但是国内无法下载,所以从阿里云下载(并修改tag和k8s.gcr.io一致)。</p>
<p>--------------------------------- 2021-06-29 修改 Start -------------------------------------------</p>
<p>说明:</p>
<p>  这里使用的kubernetes 的版本是1.18.0,根据需要改为其他版本即可。</p>
<p>  <span style="color: rgba(255, 0, 0, 1)">如果使用的是最新版,可以直接跳过执行下一步骤<span style="color: rgba(255, 0, 0, 1)">(即 minikube start 命令)</span>。如果下一步骤也报错</span><span style="color: rgba(255, 0, 0, 1)">(即 minikube start 命令)</span><span style="color: rgba(255, 0, 0, 1)">,可提取相应的版本号(使用 minikube logs命令查看 )来替换下面的版本号。</span></p>
<p>---------------------------------- 2021-06-29 End -------------------------------------------</p>
<div class="cnblogs_code">
<pre>## <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">. 使用docker执行以下命令,下载镜像(从阿里云下载):
docker pull registry.cn</span>-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.<span style="color: rgba(128, 0, 128, 1)">18.0</span> &amp;&amp;<span style="color: rgba(0, 0, 0, 1)">
docker pull registry.cn</span>-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.<span style="color: rgba(128, 0, 128, 1)">18.0</span> &amp;&amp;<span style="color: rgba(0, 0, 0, 1)">
docker pull registry.cn</span>-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.<span style="color: rgba(128, 0, 128, 1)">18.0</span> &amp;&amp;<span style="color: rgba(0, 0, 0, 1)">
docker pull registry.cn</span>-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.<span style="color: rgba(128, 0, 128, 1)">18.0</span> &amp;&amp;<span style="color: rgba(0, 0, 0, 1)">
docker pull registry.cn</span>-hangzhou.aliyuncs.com/google_containers/pause:<span style="color: rgba(128, 0, 128, 1)">3.2</span> &amp;&amp;<span style="color: rgba(0, 0, 0, 1)">
docker pull registry.cn</span>-hangzhou.aliyuncs.com/google_containers/etcd:<span style="color: rgba(128, 0, 128, 1)">3.4</span>.<span style="color: rgba(128, 0, 128, 1)">3</span> &amp;&amp;<span style="color: rgba(0, 0, 0, 1)">
docker pull registry.cn</span>-hangzhou.aliyuncs.com/google_containers/coredns:<span style="color: rgba(128, 0, 128, 1)">1.6</span>.<span style="color: rgba(128, 0, 128, 1)">7</span> &amp;&amp;<span style="color: rgba(0, 0, 0, 1)">
docker pull registry.cn</span>-hangzhou.aliyuncs.com/google_containers/storage-provisioner:v1.<span style="color: rgba(128, 0, 128, 1)">8.1</span><span style="color: rgba(0, 0, 0, 1)">

## </span><span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">. 更改镜像标签(必须修改):
docker tag registry.cn</span>-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.<span style="color: rgba(128, 0, 128, 1)">18.0</span> k8s.gcr.io/kube-apiserver:v1.<span style="color: rgba(128, 0, 128, 1)">18.0</span> &amp;&amp;<span style="color: rgba(0, 0, 0, 1)">
docker tag registry.cn</span>-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.<span style="color: rgba(128, 0, 128, 1)">18.0</span> k8s.gcr.io/kube-controller-manager:v1.<span style="color: rgba(128, 0, 128, 1)">18.0</span> &amp;&amp;<span style="color: rgba(0, 0, 0, 1)">
docker tag registry.cn</span>-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.<span style="color: rgba(128, 0, 128, 1)">18.0</span> k8s.gcr.io/kube-scheduler:v1.<span style="color: rgba(128, 0, 128, 1)">18.0</span> &amp;&amp;<span style="color: rgba(0, 0, 0, 1)">
docker tag registry.cn</span>-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.<span style="color: rgba(128, 0, 128, 1)">18.0</span> k8s.gcr.io/kube-proxy:v1.<span style="color: rgba(128, 0, 128, 1)">18.0</span> &amp;&amp;<span style="color: rgba(0, 0, 0, 1)">
docker tag registry.cn</span>-hangzhou.aliyuncs.com/google_containers/pause:<span style="color: rgba(128, 0, 128, 1)">3.2</span> k8s.gcr.io/pause:<span style="color: rgba(128, 0, 128, 1)">3.2</span> &amp;&amp;<span style="color: rgba(0, 0, 0, 1)">
docker tag registry.cn</span>-hangzhou.aliyuncs.com/google_containers/etcd:<span style="color: rgba(128, 0, 128, 1)">3.4</span>.<span style="color: rgba(128, 0, 128, 1)">3</span> k8s.gcr.io/etcd:<span style="color: rgba(128, 0, 128, 1)">3.4</span>.<span style="color: rgba(128, 0, 128, 1)">3</span>-<span style="color: rgba(128, 0, 128, 1)">0</span> &amp;&amp;<span style="color: rgba(0, 0, 0, 1)">
docker tag registry.cn</span>-hangzhou.aliyuncs.com/google_containers/coredns:<span style="color: rgba(128, 0, 128, 1)">1.6</span>.<span style="color: rgba(128, 0, 128, 1)">7</span> k8s.gcr.io/coredns:<span style="color: rgba(128, 0, 128, 1)">1.6</span>.<span style="color: rgba(128, 0, 128, 1)">7</span> &amp;&amp;<span style="color: rgba(0, 0, 0, 1)">
docker tag registry.cn</span>-hangzhou.aliyuncs.com/google_containers/storage-provisioner:v1.<span style="color: rgba(128, 0, 128, 1)">8.1</span> gcr.io/k8s-minikube/storage-provisioner:v1.<span style="color: rgba(128, 0, 128, 1)">8.1</span></pre>
</div>
<p><span style="font-size: 1.5em">4.3 启动minikube</span></p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 0, 1)">------------------- 2021-10-27 -----------------------</span><br>## 安装 kubernetes 1.22.0 版本期间,使用最新版本的docker(20.10.10),发现需要安装插件 socat、tc、libseccomp-devel (会提示 kubelet 没有运行,导致安装失败)<br>## 如缺少插件可能无法运行容器,报错:runc: symbol lookup error: runc: undefined symbol: seccomp_api_get<br>yum install -y socat tc libseccomp-devel<br><br>## 使用下面的命令进行启动minikube (image-repository参数:指定镜像仓库 2021-02-02更新,更多参数:minikube start --help)<br>## 不建议采用下面的命令了,有点过时了
## minikube start </span>--driver=none --image-repository='registry.cn-hangzhou.aliyuncs.com/google_containers'<br><br>------------------- 2022-12-16 -----------------------<br>## 在安装kubernetes v1.25.3 版本时,再次遇到了对不友好的事情,使用docker安装时不能用root账户(除非加--force参数)<br>## 另外安装v1.25.3版本时,还需要增加crictl依赖(可以采用rpm进行安装,例如 rpm -ivh 二进制文件名,另外需要执行 ln -s /usr/local/bin/crictl /usr/bin/crictl 命令)<br>minikube start --image-repository='registry.cn-hangzhou.aliyuncs.com/google_containers' --image-mirror-country='cn' --force-systemd=true --driver=docker --container-runtime=containerd --force</pre>
</div>
<p>执行成功,结果如下图:</p>
<p><img src="https://img2020.cnblogs.com/blog/336878/202005/336878-20200508201948042-1430044728.png" alt=""></p>
<p>&nbsp;执行以下命令:</p>
<div class="cnblogs_code">
<pre>## 如之前已经安装过,请先删除对应的文件<br>mv /root/.kube /root/<span style="color: rgba(0, 0, 0, 1)">.minikube $HOME   # 如果使用的root用户,这一步可以省略
chown </span>-R $USER $HOME/.kube $HOME/.minikube</pre>
</div>
<p>注意:</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">## 1:如安装过程中遇到问题,可以执行以下命令来查看日志
minikube logs
## 2:执行以下命令删除已经安装的minikube(然后重新执行start命令)
minikube delete --all<br>## 3:如安装失败,可多次进行尝试(start 和 delete)<br><br>------------------- 2021-07-22 -----------------------<br>## 4: 如安装的过程中提示缺少某一个镜像,可以在使用docker search命令在docker hub上查找(或者在docker hub官网上搜索),下面以coredns为例<br>## 本机执行以下命令<br>docker search coredns<br>## 通常我也会去docker hub上找一下,看看哪个是官方提供的<br></span></pre>
<pre><span style="color: rgba(0, 0, 0, 1)"><br>------------------- 2021-10-27 -----------------------</span><br>## 5. 如果minikube没有开机启动,则可以直接执行以下命令,启动之前安装的kubernetes集群<br>minikube start</pre>
</div>
<h1>五、校验是否安装成功</h1>
<p>查看minikube安装是否成功,执行以下命令:</p>
<div class="cnblogs_code">
<pre>minikube status</pre>
</div>
<p>安装成功,显示如下图:</p>
<p><img src="https://img2020.cnblogs.com/blog/336878/202005/336878-20200508202145380-2011528415.png" alt=""></p>
<div class="cnblogs_code">
<pre>kubectl cluster-info</pre>
</div>
<p><img src="https://img2020.cnblogs.com/blog/336878/202005/336878-20200509142815689-312676428.png" alt=""></p>
<p>&nbsp;说明:</p>
<p>  可以根据自己的需要是否安装dashboard,参考资料,对外公布接口文档</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)"># 安装dashboard
minikube dashboard</span></pre>
</div>
<p>&nbsp;</p>
<p>参考资料:</p>
<p>https://kubernetes.io/docs/tasks/tools/install-kubectl/#install-kubectl-on-linux</p>
<p><br>https://kubernetes.io/zh/docs/tasks/tools/install-minikube/</p>
<p><br>https://yq.aliyun.com/articles/691500</p>
<p>&nbsp;</p>
<p>https://minikube.sigs.k8s.io/docs/drivers/docker/&nbsp;</p>
<p>--------------------------------------------------------------------------------------------------------</p>
<p>PS:如有问题,请在下方留言,我看到后会及时回复。</p>
<p>--------------------------------------------------------------------------------------------------------</p>
<p>&nbsp;</p><br><br>
来源:https://www.cnblogs.com/zhizihuakai/p/12852851.html
頁: [1]
查看完整版本: 使用 Minikube 安装 Kubernetes