上一篇我们已经安装好一个Leanote的镜像,下面我们把它部署到K8s上。
6.打包镜像
- 将我们配置好的容器打包成镜像
docker commit -a “leanote" -m “leanote" a404c6c174a2 zt/leanote:v2
- 将打包好的镜像推送到DockerHub,推送成功后就可以在github里搜到我们的镜像啦。
docker tagzt/leanote smilezt/leanote
docker pushsmilezt/leanote

下面我们开始开启Kubernetes,小编是在Win10专业版中安装的。
7.Docker for Windows开启Kubernetes
- 下载并安装Docker for Windows,从github上直接下载指定版本的kubectl

- 下载完成后解压,将kubectl.exe文件存放至C:\Windows\System32下

- 手动拉取Kubernetes需要的镜像。利用阿里云的同步镜像组件,而不用翻到kubernetes官网去下载。
> git clone https://github.com/AliyunContainerService/k8s-for-docker-desktop.git
> cd k8s-for-docker-desktop
> git checkout v1.14.6 //切换至v1.14.6版本对应分支

下面是拉取成功后的目录结构

- 在Windows PowerShell下执行脚本安装镜像:
.\load_images.ps1

- 安装镜像完成后,系统中镜像列表:

- 在DokcerDesktop中,启动单节点kubernetes集群:

- 查看kubectl安装结果:kubectlversion

- 在集群中部署kubernetes-dashboard.yaml , 在控制台输入:kubectlproxy

- 启动Kubernetes Dashboard,每次打开需要输入token ,浏览器中访问Dashboard:http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/

8.部署Leanote镜像至Kubernetes
- 创建镜像对应的RC配置文件,内容如下:

- 通过kubectlcreate命令完成RC的创建和验证工作:
>kubectlcreate -fmyweb-rc.yaml
>kubectlgetrc
>kubectlget pods

- 创建对应的Service,编写配置文件,内容如下:

运行kubectlcreate命令进行创建:kubectlcreate -fleanote_service.yaml type=NodePort和nodePort=30001的两个属性,表明此Service开启了NodePort方式的外网访问模式。在k8s集群之外,比如在本机的浏览器里,可以通过30002这个端口访问zxleanote,(对应到9000的虚端口上)。所以前面要关闭防火墙。
- 使用kubectl查看前面创建的Service
kubectlget services

验证结果
方法一:在本机浏览器输入本机ip地址+30002端口号。

方法二:在PowerShell中使用curl命令验证。

总结
- 在配置Leanote时,应注意保证其app.conf文件中 http.addr=0.0.0.0,否则启动后无法访问Leanote。
- Kubernetes在安装时,为了加速事先拉取了国内镜像源,在拉取时一定要注意与自己Docker Desktop中kubernetes的版本一致,否则无法安装成功。
- 编写部署相关的yaml文件使应注意每个文件之间参数的对应的关系,否则这些文件将无法建立关联关系。