积德十感恩 發表於 2019-11-17 19:49:00

Kubernetes 环境搭建

<p><span style="font-size: 16px">入坑第一天,差点没爬起来😂😂😂</span></p>
<p><span style="font-size: 18pt; color: rgba(195, 69, 59, 1)">1.&nbsp;&nbsp;Kubernetes是什么</span></p>
<p><span style="font-size: 16px"><span style="color: rgba(63, 111, 221, 1); background-color: rgba(243, 244, 244, 1)">Kubernetes (K8s)</span>是一个用于<strong>自动化部署</strong>、<strong>自动扩缩容</strong>和<strong>管理容器化应用程序</strong>的开源系统。</span></p>
<p><span style="font-size: 16px">关于Kubernetes,说得最多的就是<strong>自动容器部署</strong>、<strong>弹性伸缩</strong>、<strong>应用管理</strong>。</span></p>
<p><span style="font-size: 16px">(Automated container deployment , scaling , and management)</span></p>
<p><span style="font-size: 16px">Kubernetes将组成应用程序的容器分组为逻辑单元,以便于管理和发现。Kubernetes基于在谷歌上运行生产工作负载的15年经验,结合了来自社区的最佳思想和实践。是工业生产级别的容器编排系统。</span></p>
<p><span style="color: rgba(195, 69, 59, 1); font-size: 18pt">2.&nbsp;&nbsp;Kubernetes特性</span></p>
<ul>
<li><span style="font-size: 16px">服务发现和负载均衡</span>
<ul>
<li>不需要修改应用程序来使用不熟悉的服务发现机制。Kubernetes为Pods提供它们自己的IP地址和一组Pods的单个DNS名称,并且可以在它们之间实现负载平衡。</li>
</ul>
</li>
<li><span style="font-size: 16px">自动打包</span>
<ul>
<li>在不牺牲可用性的情况下,根据容器的资源需求和其他约束条件自动放置容器。混合关键工作负载和最佳工作负载,以提高利用率并节省更多资源</li>
</ul>
</li>
<li><span style="font-size: 16px">自动修复</span>
<ul>
<li>重新启动失败的容器,在节点死亡时替换和重新调度容器,杀死那些不响应用户定义的健康检查的容器,并且在它们准备好提供服务之前不会向客户端通知它们。</li>
</ul>
</li>
<li><span style="font-size: 16px">自动向前滚动和回滚</span>
<ul>
<li>Kubernetes会逐步放开对应用程序或其配置的更改,同时监视应用程序的运行状况,以确保它不会同时杀死所有实例。如果出现问题,Kubernetes将为您回滚更改。利用不断增长的部署解决方案生态系统</li>
</ul>
</li>
<li><span style="font-size: 16px">秘钥和配置管理</span>
<ul>
<li>部署和更新秘钥和应用程序配置,而无需重新构建映像,也无需在堆栈配置中公开秘钥</li>
</ul>
</li>
<li><span style="font-size: 16px">水平扩展</span>
<ul>
<li>使用简单的命令、UI或基于CPU使用情况,自动扩大或缩小应用程序</li>
</ul>
</li>
<li><span style="font-size: 16px">可移植性强</span>
<ul>
<li><span style="font-size: 16px">Kubernetes是开源的,它允许你自由地利用本地、混合或公共云基础设施,让你轻松地将工作负载转移到对你重要的地方</span></li>
</ul>
</li>
</ul>
<p><span style="color: rgba(195, 69, 59, 1); font-size: 18pt">3.&nbsp;&nbsp;搭建Kubernetes学习环境</span></p>
<p><span style="font-size: 16px">初学Kubernetes,建议使用基于docker的解决方案:Kubernetes社区支持的工具,或者在本地机器上配置Kubernetes集群的生态系统中的工具。</span></p>
<p><img src="https://img2018.cnblogs.com/blog/874963/201911/874963-20191117130929244-1588207752.png" alt="" width="657" height="271"></p>
<p><span style="font-size: 16px">如果是生产环境的话,有很多解决方案和供应商可供选择,推荐:阿里云</span></p>
<p><span style="font-size: 16px">https://kubernetes.io/docs/setup/</span></p>
<p>&nbsp;</p>
<p><span style="font-size: 14pt; color: rgba(83, 164, 81, 1)">3.1.&nbsp; Minikube</span></p>
<p><span style="font-size: 16px"><span style="color: rgba(63, 111, 221, 1); background-color: rgba(243, 244, 244, 1)">Minikube</span>是一个工具,它使我们能够很容易地在本地运行Kubernetes。<span style="color: rgba(63, 111, 221, 1); background-color: rgba(243, 244, 244, 1)">Minikube</span>在你的笔记本的虚拟机中运行一个<strong>单节点的Kubernetes集群</strong>。</span></p>
<p><span style="font-size: 16px">更多关于Minikube的用法请参见&nbsp;https://minikube.sigs.k8s.io/</span></p>
<p><img src="https://img2018.cnblogs.com/blog/874963/201911/874963-20191117143708486-2122962989.png" alt=""></p>
<p><span style="font-size: 16px">安装Minikube</span></p>
<p><span style="font-size: 16px">首先,检查Linux上是否支持虚拟化</span></p>
<div class="highlight" style="background: rgba(39, 40, 34, 1)">
<pre><span style="font-size: 15px"><span style="color: rgba(104, 216, 239, 1); padding: 0 5px">grep</span> <span style="color: rgba(253, 150, 32, 1)">-E --color</span> <span style="color: rgba(231, 219, 116, 1)">'vmx|svm'</span> <span style="color: rgba(248, 248, 242, 1)">/proc/cpuinfo</span></span></pre>
</div>
<p><span style="font-size: 16px">其次,确保已经安装了<span style="color: rgba(63, 111, 221, 1); background-color: rgba(243, 244, 244, 1)">kubectl</span></span></p>
<div class="highlight" style="background: rgba(39, 40, 34, 1)">
<pre><span style="font-size: 15px"><span style="color: rgba(104, 216, 239, 1); padding: 0 5px">kubectl</span> <span style="color: rgba(248, 248, 242, 1)">version</span></span>&nbsp;</pre>
</div>
<p><span style="font-size: 16px">具体安装步骤参见&nbsp;https://kubernetes.io/docs/tasks/tools/install-kubectl/#install-kubectl-on-linux&nbsp;</span></p>
<p><span style="font-size: 16px">安装完kubectl以后,接下来请确保已经安装了 <span style="color: rgba(63, 111, 221, 1); background-color: rgba(243, 244, 244, 1)">Hypervisor</span> 或者 <span style="color: rgba(63, 111, 221, 1); background-color: rgba(243, 244, 244, 1)">VirtualBox</span> 或者 <span style="color: rgba(63, 111, 221, 1); background-color: rgba(243, 244, 244, 1)">KVM</span></span></p>
<p><span style="font-size: 16px">注意,Minikube支持 <span style="color: rgba(63, 111, 221, 1); background-color: rgba(243, 244, 244, 1)">--vm-driver=none</span>选项,这样的话就会安装到主机上,而不是主机上虚拟处理的虚拟机上。&nbsp;</span></p>
<p><span style="font-size: 16px">最后,安装Minikube</span></p>
<div class="highlight" style="background: rgba(39, 40, 34, 1)">
<pre><span style="font-size: 15px"><span style="color: rgba(104, 216, 239, 1); padding: 0 5px">curl</span> <span style="color: rgba(253, 150, 32, 1)">-Lo</span> <span style="color: rgba(248, 248, 242, 1)">minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64</span>
<span style="color: rgba(104, 216, 239, 1); padding: 0 5px">chmod</span> <span style="color: rgba(253, 150, 32, 1)">+x</span> <span style="color: rgba(248, 248, 242, 1)">minikube</span>
<span style="color: rgba(104, 216, 239, 1); padding: 0 5px">sudo mkdir</span> <span style="color: rgba(253, 150, 32, 1)">-p</span> <span style="color: rgba(248, 248, 242, 1)">/usr/local/bin/</span>
<span style="color: rgba(104, 216, 239, 1); padding: 0 5px">sudo install</span> <span style="color: rgba(248, 248, 242, 1)">minikube /usr/local/bin/</span></span></pre>
</div>
<p><span style="font-size: 14pt; color: rgba(83, 164, 81, 1)">Minikube基本命令</span></p>
<p><img src="https://img2018.cnblogs.com/blog/874963/201911/874963-20191117142048981-436645082.png" alt="" width="1210" height="195"></p>
<p><span style="font-size: 16px">然而,理想很丰满,现实很骨感</span></p>
<p><span style="font-size: 16px">当你运行 <span style="color: rgba(63, 111, 221, 1); background-color: rgba(243, 244, 244, 1)">minikube start</span>的时候,你就会发现从<span style="color: rgba(63, 111, 221, 1); background-color: rgba(243, 244, 244, 1)">k8s.gcr.io</span>拉取镜像失败</span></p>
<div class="highlight" style="background: rgba(39, 40, 34, 1)">
<pre><span style="font-size: 15px"><span style="color: rgba(104, 216, 239, 1); padding: 0 5px">ping</span><span style="color: rgba(248, 248, 242, 1)">k8s.gcr.io</span></span></pre>
</div>
<p><span style="font-size: 16px">ping k8s.gcr.io发现全部超时</span></p>
<p><span style="font-size: 16px">Soga,国内无法访问&nbsp;<span style="color: rgba(63, 111, 221, 1); background-color: rgba(243, 244, 244, 1)">k8s.gcr.io</span>&nbsp;</span></p>
<p><span style="font-size: 16px">于是换个思路,从国内的镜像仓库去下载,不要慌,阿里云已经给出了解决方案</span></p>
<p><span style="font-size: 16px">https://github.com/AliyunContainerService/minikube</span></p>
<p><span style="font-size: 16px">https://yq.aliyun.com/articles/221687&nbsp;</span></p>
<p><span style="font-size: 16px">https://yq.aliyun.com/articles/672675?spm=a2c4e.11153940.0.0.7dd54cec4rOx87&nbsp;</span></p>
<p><span style="font-size: 16px">首先,如果minikube下载都下载不下来的话,可以改成以下地址</span></p>
<div class="highlight" style="background: rgba(39, 40, 34, 1)">
<pre><span style="font-size: 15px"><span style="color: rgba(104, 216, 239, 1); padding: 0 5px">curl</span> <span style="color: rgba(253, 150, 32, 1)">-Lo</span> <span style="color: rgba(248, 248, 242, 1)">minikube https://github.com/kubernetes/minikube/releases/download/v1.5.0/minikube-linux-amd64</span>
<span style="color: rgba(104, 216, 239, 1); padding: 0 5px">chmod</span> <span style="color: rgba(253, 150, 32, 1)">+x</span> <span style="color: rgba(248, 248, 242, 1)">minikube</span>
<span style="color: rgba(104, 216, 239, 1); padding: 0 5px">sudo mv</span> <span style="color: rgba(248, 248, 242, 1)">minikube /usr/local/bin/</span></span></pre>
</div>
<p><span style="font-size: 16px">以下摘自云栖社区的一篇博客:</span></p>
<blockquote>
<p><img src="https://img2018.cnblogs.com/blog/874963/201911/874963-20191117145034681-742150204.png" alt="" width="689" height="409">&nbsp;</p>
</blockquote>
<p><span style="font-size: 16px">于是,在启动的时候指定了一些参数:</span></p>
<div class="highlight" style="background: rgba(39, 40, 34, 1)">
<pre><span style="font-size: 15px"><span style="color: rgba(104, 216, 239, 1); padding: 0 5px">minikube start</span> <span style="color: rgba(253, 150, 32, 1)">--image-mirror-country</span> <span style="color: rgba(248, 248, 242, 1)">cn</span> <span style="color: rgba(174, 129, 255, 1)">\</span>
        <span style="color: rgba(253, 150, 32, 1)">--vm-driver</span><span style="color: rgba(249, 38, 114, 1)">=</span><span style="color: rgba(248, 248, 242, 1)">virtualbox</span> <span style="color: rgba(174, 129, 255, 1)">\</span>
        <span style="color: rgba(253, 150, 32, 1)">--iso-url</span><span style="color: rgba(249, 38, 114, 1)">=</span><span style="color: rgba(248, 248, 242, 1)">https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/iso/minikube-v1.5.0.iso</span> <span style="color: rgba(174, 129, 255, 1)">\</span>
        <span style="color: rgba(253, 150, 32, 1)">--registry-mirror</span><span style="color: rgba(249, 38, 114, 1)">=</span><span style="color: rgba(248, 248, 242, 1)">https://xxxx.mirror.aliyuncs.com</span></span></pre>
</div>
<p><span style="font-size: 16px">有的朋友可能会疑惑,镜像地址中的xxxx是什么?其实,这个是阿里云的镜像加速器地址,每个阿里云账号都有一个专属的镜像加速器。如图:</span></p>
<p><span style="font-size: 16px">https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors</span></p>
<p><img src="https://img2018.cnblogs.com/blog/874963/201911/874963-20191117152824316-868663718.png" alt="" width="1099" height="1142"></p>
<p><span style="font-size: 16px">其实也可以不指定<span style="color: rgba(63, 111, 221, 1); background-color: rgba(243, 244, 244, 1)">--iso-url</span>选项,不指定的话,默认下载最新的 <span style="color: rgba(63, 111, 221, 1); background-color: rgba(243, 244, 244, 1)">minikube v1.5.2</span> 版本</span>&nbsp;</p>
<p><img src="https://img2018.cnblogs.com/blog/874963/201911/874963-20191117150310286-1013982094.png" alt=""></p>
<p><span style="font-size: 16px">接下来用一个已经存在的镜像来创建一个部署</span></p>
<div class="highlight" style="background: rgba(39, 40, 34, 1)">
<pre><span style="font-size: 15px"><span style="color: rgba(104, 216, 239, 1); padding: 0 5px">kubectl</span> <span style="color: rgba(248, 248, 242, 1)">create deployment hello-minikube</span><span style="color: rgba(253, 150, 32, 1)"> --image</span><span style="color: rgba(249, 38, 114, 1)">=</span><span style="color: rgba(248, 248, 242, 1)">k8s.gcr.io/echoserver:1.10</span></span></pre>
</div>
<p><span style="font-size: 16px">这里用到的命令是<span style="color: rgba(63, 111, 221, 1); background-color: rgba(243, 244, 244, 1)">kubectl</span>,基本命令如下:</span></p>
<p><img src="https://img2018.cnblogs.com/blog/874963/201911/874963-20191117150908994-1257775174.png" alt="" width="1216" height="452"></p>
<p><span style="font-size: 16px">部署是可以创建成功,然而当你启动这个服务的时候就会发现怎么都启不起来,正常情况下看到<span style="color: rgba(63, 111, 221, 1); background-color: rgba(243, 244, 244, 1)">Running</span>状态表示启动成功</span></p>
<p><span style="font-size: 16px">吸取前面的经验,这里将&nbsp;<span style="color: rgba(63, 111, 221, 1); background-color: rgba(243, 244, 244, 1)">k8s.gcr.io</span> 换成 <span style="color: rgba(63, 111, 221, 1); background-color: rgba(243, 244, 244, 1)">registry.cn-hangzhou.aliyuncs.com/google_containers</span></span></p>
<p><span style="font-size: 16px">完整的命令是这样的:</span></p>
<div class="highlight" style="background: rgba(39, 40, 34, 1)">
<pre><span style="font-size: 15px"><span style="color: rgba(104, 216, 239, 1); padding: 0 5px">kubectl</span> <span style="color: rgba(248, 248, 242, 1)">create deployment hello-minikube</span><span style="color: rgba(253, 150, 32, 1)"> --image</span><span style="color: rgba(249, 38, 114, 1)">=</span><span style="color: rgba(248, 248, 242, 1)">registry.cn-hangzhou.aliyuncs.com/google_containers/echoserver:1.10</span></span></pre>
</div>
<p><span style="font-size: 16px">部署服务</span></p>
<div class="highlight" style="background: rgba(39, 40, 34, 1)">
<pre><span style="font-size: 15px"><span style="color: rgba(117, 113, 94, 1)"># 创建部署</span>
<span style="color: rgba(104, 216, 239, 1); padding: 0 5px">kubectl create deployment</span> <span style="color: rgba(248, 248, 242, 1)">hello-minikube</span> <span style="color: rgba(253, 150, 32, 1)">--image</span><span style="color: rgba(249, 38, 114, 1)">=</span><span style="color: rgba(248, 248, 242, 1)">registry.cn-hangzhou.aliyuncs.com/google_containers/echoserver:1.10</span>
<span style="color: rgba(117, 113, 94, 1)"># 将部署暴露为服务</span>
<span style="color: rgba(104, 216, 239, 1); padding: 0 5px">kubectl expose deployment</span> <span style="color: rgba(248, 248, 242, 1)">hello-minikube</span> <span style="color: rgba(253, 150, 32, 1)">--type</span><span style="color: rgba(249, 38, 114, 1)">=</span><span style="color: rgba(248, 248, 242, 1)">NodePort</span> <span style="color: rgba(253, 150, 32, 1)">--port</span><span style="color: rgba(249, 38, 114, 1)">=</span><span style="color: rgba(248, 248, 242, 1)">8080</span>
<span style="color: rgba(117, 113, 94, 1)"># 查看服务</span>
<span style="color: rgba(104, 216, 239, 1); padding: 0 5px">kubectl get</span> <span style="color: rgba(248, 248, 242, 1)">pod</span>
<span style="color: rgba(117, 113, 94, 1)"># 获取服务URL</span>
<span style="color: rgba(104, 216, 239, 1); padding: 0 5px">minikube service</span> <span style="color: rgba(248, 248, 242, 1)">hello-minikube --url</span>
<span style="color: rgba(117, 113, 94, 1)"># 删除服务</span>
<span style="color: rgba(104, 216, 239, 1); padding: 0 5px">kubectl delete services</span> <span style="color: rgba(248, 248, 242, 1)">hello-minikube</span>
<span style="color: rgba(117, 113, 94, 1)"># 删除部署</span>
<span style="color: rgba(104, 216, 239, 1); padding: 0 5px">kubectl delete deployment</span> <span style="color: rgba(248, 248, 242, 1)">hello-minikube</span>
<span style="color: rgba(117, 113, 94, 1)"># 停止Minikube集群</span>
<span style="color: rgba(104, 216, 239, 1); padding: 0 5px">minikube stop</span>
<span style="color: rgba(117, 113, 94, 1)"># 删除Minikube集群</span>
<span style="color: rgba(104, 216, 239, 1); padding: 0 5px">minikube delete</span>
<span style="color: rgba(117, 113, 94, 1)"># 查看仪表盘</span>
<span style="color: rgba(104, 216, 239, 1); padding: 0 5px">minikube dashboard</span></span></pre>
</div>
<p><span style="font-size: 16px">演示</span></p>
<p><img src="https://img2018.cnblogs.com/blog/874963/201911/874963-20191117154137541-818098162.png" alt="" width="1392" height="859"></p>
<p><span style="color: rgba(83, 164, 81, 1); font-size: 14pt">3.2.&nbsp; 集群管理</span></p>
<p><span style="font-size: 16px"><strong>启动集群</strong></span></p>
<p><span style="font-size: 16px"><span style="color: rgba(63, 111, 221, 1); background-color: rgba(243, 244, 244, 1)">containerd</span>是一个行业标准的容器运行时,它强调简单性、健壮性和可移植性。它可以作为Linux和Windows的守护进程,以管理其主机系统的完整容器生命周期。</span></p>
<div class="highlight" style="background: rgba(39, 40, 34, 1)">
<pre><span style="font-size: 15px"><span style="color: rgba(117, 113, 94, 1)"># 指定Kubernetes版本</span>
<span style="color: rgba(104, 216, 239, 1); padding: 0 5px">minikube start</span> <span style="color: rgba(253, 150, 32, 1)">--kubernetes-version</span><span style="color: rgba(248, 248, 242, 1)"> v1.16.0</span>
<span style="color: rgba(117, 113, 94, 1)"># 指定VM驱动</span>
<span style="color: rgba(104, 216, 239, 1); padding: 0 5px">minikube start</span> <span style="color: rgba(253, 150, 32, 1)">--vm-driver</span><span style="color: rgba(249, 38, 114, 1)">=</span><span style="color: rgba(248, 248, 242, 1)">&lt;driver_name&gt;</span>
<span style="color: rgba(117, 113, 94, 1)"># 为了用containerd作为容器运行时</span>
<span style="color: rgba(104, 216, 239, 1); padding: 0 5px">minikube start</span> <span style="color: rgba(253, 150, 32, 1)">--network-plugin</span><span style="color: rgba(249, 38, 114, 1)">=</span><span style="color: rgba(248, 248, 242, 1)">cni</span> <span style="color: rgba(174, 129, 255, 1)">\</span>
        <span style="color: rgba(253, 150, 32, 1)">--enable-default-cni</span> <span style="color: rgba(174, 129, 255, 1)">\</span>
        <span style="color: rgba(253, 150, 32, 1)">--container-runtime</span><span style="color: rgba(249, 38, 114, 1)">=</span><span style="color: rgba(248, 248, 242, 1)">containerd</span> <span style="color: rgba(174, 129, 255, 1)">\</span>
        <span style="color: rgba(253, 150, 32, 1)">--bootstrapper</span><span style="color: rgba(249, 38, 114, 1)">=</span><span style="color: rgba(248, 248, 242, 1)">kubeadm</span>
</span></pre>
</div>
<p><span style="font-size: 16px">配置集群</span></p>
<p><span style="font-size: 16px">为了应用Minikube的一些特性,在minikube start命令的时候可以通过<span style="color: rgba(63, 111, 221, 1); background-color: rgba(243, 244, 244, 1)">--extra-config</span>选项来指定</span><br><span style="font-size: 16px">格式为: <span style="color: rgba(63, 111, 221, 1); background-color: rgba(243, 244, 244, 1)">component.key=value</span>,其中component可以是下列之一的字符串</span></p>
<ul>
<li><span style="font-size: 16px">kubelet</span></li>
<li><span style="font-size: 16px">apiserver</span></li>
<li><span style="font-size: 16px">proxy</span></li>
<li><span style="font-size: 16px">controller-manager</span></li>
<li><span style="font-size: 16px">etcd</span></li>
<li><span style="font-size: 16px">scheduler</span></li>





</ul>
<p><span style="font-size: 16px">例如:</span></p>
<p><span style="font-size: 16px">--extra-config=kubelet.MaxPods=5</span><br><span style="font-size: 16px">--extra-config=scheduler.LeaderElection.LeaderElect=true</span><br><span style="font-size: 16px">--extra-config=apiserver.authorization-mode=RBAC</span></p>
<p><span style="font-size: 16px"><strong>集群交互</strong></span></p>
<div class="highlight" style="background: rgba(39, 40, 34, 1)">
<pre><span style="font-size: 15px"><span style="color: rgba(104, 216, 239, 1); padding: 0 5px">minikube </span><span style="color: rgba(248, 248, 242, 1)">dashboard</span></span></pre>
</div>
<p><img src="https://img2018.cnblogs.com/blog/874963/201911/874963-20191117163313357-1293499740.png" alt=""></p>
<p><span style="color: rgba(195, 69, 59, 1)"><span style="font-size: 18pt">4.&nbsp; 其它</span>&nbsp;</span></p>
<p><span style="font-size: 16px">Docker中国官方镜像加速 <span style="color: rgba(63, 111, 221, 1); background-color: rgba(243, 244, 244, 1)">https://registry.docker-cn.com</span></span></p>
<p><span style="font-size: 16px">国内Kubernetes的容器镜像仓库 <span style="color: rgba(63, 111, 221, 1); background-color: rgba(243, 244, 244, 1)">registry.cn-hangzhou.aliyuncs.com/google_containers</span></span></p>
<p><span style="font-size: 16px">更改docker默认仓库地址</span></p>
<p><span style="font-size: 16px">/etc/docker/daemon.json</span></p>
<div class="cnblogs_code">
<pre><span style="font-size: 15px"><span style="color: rgba(0, 0, 0, 1)">{
    </span>"registry-mirrors": ["https://registry.docker-cn.com"]   # registry.docker-<span style="color: rgba(0, 0, 0, 1)">cn.com是国内的镜像网站
}</span></span></pre>
</div>
<p><span style="font-size: 16px">如果是Docker Desktop的话,可以这样修改</span></p>
<p><img src="https://img2018.cnblogs.com/blog/874963/201911/874963-20191117191644150-502080165.png" alt="" width="432" height="474"></p>
<p><span style="color: rgba(195, 69, 59, 1); font-size: 18pt">5.&nbsp; 文档</span></p>
<p><span style="color: rgba(83, 164, 81, 1); font-size: 14pt">Kubernetes</span></p>
<p><span style="font-size: 16px">https://kubernetes.io/</span></p>
<p><span style="font-size: 16px">https://kubernetes.io/docs/setup/learning-environment/minikube/</span></p>
<p><span style="font-size: 16px">https://kubernetes.io/docs/tasks/tools/install-minikube/</span></p>
<p><span style="font-size: 16px">https://kubernetes.io/docs/tasks/tools/install-kubectl/#install-kubectl-on-linux</span></p>
<p><span style="font-size: 16px">https://github.com/containerd/containerd</span></p>
<p><span style="font-size: 16px">https://github.com/kubernetes/kubernetes</span></p>
<p><span style="font-size: 16px">https://www.jianshu.com/p/b10c0d7f7d18</span></p>
<p>&nbsp;</p>
<p><span style="font-size: 14pt; color: rgba(83, 164, 81, 1)">阿里云</span></p>
<p><span style="font-size: 16px">https://cr.console.aliyun.com/cn-hangzhou/instances/images</span></p>
<p><span style="font-size: 16px">https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors</span></p>
<p><span style="font-size: 16px">https://help.aliyun.com/video_detail/54770.html</span></p>
<p><span style="font-size: 16px">https://yq.aliyun.com/articles/221687</span></p>
<p><span style="font-size: 16px">https://yq.aliyun.com/articles/672675</span></p>
<p><span style="font-size: 16px">https://github.com/AliyunContainerService/minikube&nbsp;</span></p>
<p>&nbsp;</p>
<p><span style="font-size: 18px">真实案例</span></p>
<p><img src="https://img2018.cnblogs.com/blog/874963/201911/874963-20191117195314036-764040437.png" alt="" width="696" height="91">&nbsp;</p><br><br>
来源:https://www.cnblogs.com/cjsblog/p/11877014.html
頁: [1]
查看完整版本: Kubernetes 环境搭建