老庄主软件一信息化服务商 發表於 2020-5-28 14:02:00

windows环境下Kubernetes及Docker安装(那些坑)

<p>k8s 和 Docker容器技术,当前非常流行的技术. 让人日狗的是,&nbsp; &nbsp;这套技术栈对CN的donet 程序员不怎么友好。娓娓道来,1. 好多镜像都是需要梯子才能访问; 2. window程序员天生对命令行操作陌生。3. 好多资料都是linux 等等.....&nbsp;</p>
<p>下面我们来一起安装部署下。</p>
<p>一, 安装环境。</p>
<p>1. Docker 容器本质就是虚拟技术。简单理解就是vmware 虚拟机(注:两种不同虚拟化技术,自行研究)。 建议windows 10 以上且支持虚拟化技术环境。如果机器没有开启虚拟化,进入Boise开启。 如果不支持虚拟化,需要安装<span>&nbsp;Docker Toolbox&nbsp;.&nbsp; 本人以下机器环境如下, 下面的安装步骤演示:&nbsp; windows 10 且启用虚拟化.</span></p>
<p>&nbsp;</p>
<p><span><img src="https://img2020.cnblogs.com/blog/450118/202005/450118-20200528111718744-1858389248.png" alt=""></span></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><span>下载&nbsp;Docker 安装包. (演示使用的是Edge版本)</span></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;安装后长这个样子:</p>
<p><img src="https://img2020.cnblogs.com/blog/450118/202005/450118-20200528112311732-1825107914.png" alt=""></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;*&nbsp;<strong>这里面有坑, 安装好以后, 不能直接勾选启用K8s选项,再说一遍,不要点.&nbsp;</strong></p>
<p><img src="https://img2020.cnblogs.com/blog/450118/202005/450118-20200528112411273-719748977.png" alt=""></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>配置镜像,&nbsp;</p>
<p><img src="https://img2020.cnblogs.com/blog/450118/202005/450118-20200528112750008-1320151802.png" alt=""></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<div class="cnblogs_code">
<pre><span>{
"registry-mirrors"<span>: [
    "https://dockerhub.azk8s.cn"<span>,
    "https://registry.docker-cn.com"<span>
],
"insecure-registries"<span>: [],
"debug": true<span>,
"experimental": true<span>
}</span></span></span></span></span></span></span></pre>
</div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;二, 拉取K8s镜像.</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;拉取镜像完成后执行如下操作.&nbsp;&nbsp;具体可参考 博友文章.&nbsp;开启和安装Kubernetes 基于Docker For Windows&nbsp; 按照此步骤下来, 在次不再详赘述.</p>
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;">Powershell 执行:

步骤a:   git clone https://github.com/AliyunContainerService/k8s-for-docker-desktop.git
cd k8s-for-docker-desktop

步骤b:   .\load_images.ps1


步骤3:打开Docker DashBoard , 勾选"Enable Kubernetes" 选项. 此步骤比较耗时,耐心等待
</pre>
</div>
<p>  </p>
<p>&nbsp; &nbsp;&nbsp;</p>
<p>&nbsp;三,&nbsp;安装Kubernetes Dashboard</p>
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;">步骤1 . 查看当前k8s的kubectl 安装是否正确.
PS执行:   kubectl version 命令

步骤2: 通过yaml文件安装部署镜像.
PS执行:
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml

或(从之前的k8s-for-docker-desktop 目录):
PS执行:kubectl create -f kubernetes-dashboard.yaml



</pre>
</div>
<p><img src="https://img2020.cnblogs.com/blog/450118/202005/450118-20200528114717638-1940279145.png" alt=""></p>
<p>查看当前docker运行状态:</p>
<p>PS执行:&nbsp; kubectl get pods --namespace kube-system</p>
<p><img src="https://img2020.cnblogs.com/blog/450118/202005/450118-20200528114935126-887164371.png" alt=""></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>四,开启代理,</p>
<p>Ps:&nbsp;<span class="hljs-attribute">kubectl proxy</span></p>
<p><span class="hljs-attribute"><img src="https://img2020.cnblogs.com/blog/450118/202005/450118-20200528115141919-532949271.png" alt=""></span></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><span class="hljs-attribute">注意,只有当dashboard 容器,正常运行也就是状态为(Running),才能打开浏览器访问。当出现错误时,才看容器运行具体信息,使用如下命令:</span></p>
<p>kubectl describe pod kubernetes-dashboard-669f9bbd46-rhmst&nbsp; --namespace kube-system</p>
<p>执行&nbsp;kubernetes-dashboard.yaml 文件时,可能拉取镜像失败,导致doashboard 容器不能正常执行。</p>
<p>镜像拉取失败处理:</p>
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;">脚本

$DASHDOARD_VERSION="v1.10.1"
$HEAPSTER_VERSION="v1.5.4"
$GRAFANA_VERSION="v5.0.4"
$INFLUXDB_VERSION="v1.5.2"
$username="registry.cn-hangzhou.aliyuncs.com/google_containers"
$images="kubernetes-dashboard-amd64:${DASHDOARD_VERSION}","heapster-grafana-amd64:${GRAFANA_VERSION}","heapster-amd64:${HEAPSTER_VERSION}","heapster-influxdb-amd64:${INFLUXDB_VERSION}"
      
foreach($item in $images)
{
        docker pull ${username}/${item}
        docker tag ${username}/${item} k8s.gcr.io/${item}
        docker rmi ${username}/${item}
}
</pre>
</div>
<p>  </p>
<p>以下kubectl 常用命令:</p>
<div class="cnblogs_code">
<pre>kubectl create -f kubernetes-dashboard.yaml --<span>删除资源

kubectl apply -f kubernetes-dashboard.yaml--重新应用配置</span></pre>
</div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>五, 打开Doashbard ,</p>
<p>打开浏览器:&nbsp;</p>
<p>&nbsp;http:<span class="hljs-regexp">//localhost:<span class="hljs-number">8001<span class="hljs-regexp">/api/v1<span class="hljs-regexp">/namespaces/kube-system<span class="hljs-regexp">/services/https:kubernetes-dashboard:<span class="hljs-regexp">/proxy/<span class="hljs-comment">#!/overview?namespace=default</span></span></span></span></span></span></span></p>
<p><span class="hljs-regexp">此时可能 也有问题无法登陆</span></p>
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;">"Deleted kubernetes-dashboard version 1.10.1 and switched to v2.0.0-beta8 which worked like a charm: localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/#/overview?namespace=_all"
参考链接:https://github.com/kubernetes-sigs/kubespray/issues/5347
</pre>
</div>
<p>&nbsp;</p>
<p>获取登录token 命令:</p>
<div class="cnblogs_code">
<pre>---<span>token 登录

$TOKEN=((kubectl -n kube-system describe secret default | Select-String "token:") -split " +")
kubectl config set-credentials docker-for-desktop --token="${TOKEN}"<span>
echo $TOKEN

"Any key to exit"<span>;
Read-Host | Out-<span>Null ;
Exit</span></span></span></span></span></pre>
</div>
<p>&nbsp;</p>
<p><img src="https://img2020.cnblogs.com/blog/450118/202005/450118-20200528120441192-1905869561.png" alt=""></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>  </p>
<p>终于躺坑完毕,</p>
<p><img src="https://img2020.cnblogs.com/blog/450118/202005/450118-20200528123445790-96520203.png" alt=""></p>
<p>&nbsp;</p>

</div>
<div id="MySignature" role="contentinfo">
    <p>本文来自博客园,作者:至道中和,转载请注明原文链接:https://www.cnblogs.com/voidobject/p/12980444.html</p><br><br>
来源:https://www.cnblogs.com/voidobject/p/12980444.html
頁: [1]
查看完整版本: windows环境下Kubernetes及Docker安装(那些坑)