Rancher 2.x 部署 Go 应用

Docker & K8S 410 字

我们要部署的程序很简单,我们使用 gin 对外提供一个接口返回 helloworld。

2023-03-04T09:50:41.png

然后利用交叉编译生成 go 的执行文件。

2023-03-04T09:51:19.png

我们在 ide 中点击开始按钮后,自动的帮我们生成了myserver可执行文件,我们将这个文件上传到 work 节点的 /data/k8s-volume/myapp 目录下。

scp build/myserver [email protected]:/data/k8s-volume/myapp

2023-03-04T09:51:33.png

接下来,我们来部署 GoAPI,我们还是点击部署工作负载。

2023-03-04T09:51:45.png

我们现将 workloads 的基础信息填写上。

2023-03-04T09:52:04.png

这一次我们选择 HostPort 直接将容器的端口与所在节点的端口进行映射,这种模式下和我们 docker -p xx:xx 的效果是一样的。

和 docker 一样,我们也可以将容器内的目录映射到宿主机上,在这里我们选择主机映射。

2023-03-04T09:52:23.png

通过配置,我们将容器 /app 目录下的内容映射到我们的宿主机上,目前我们只有一个 work 节点。

因为我们是吧运行程序上传到了服务器上,所以我们需要利用 k8s 来帮助我们的容器。

2023-03-04T09:52:33.png

这一步其实就相当于我们的 docker run。

Untitled

点击部署后,我们需要等待片刻。

如果部署失败,我们可以点进工程内进行查看失败原因。

2023-03-04T09:52:56.png

在事件中显示了失败原因,在拉取apline 的时候出现失败。原来是我们的镜像名写错了,那么修改镜像名称。

2023-03-04T09:53:10.png

修改后,将会新的 pod 来替换老 pod。

2023-03-04T09:53:23.png

好了,现在已经部署成功了,我们来进行访问。

2023-03-04T09:53:35.png
2023-03-04T09:53:48.png

我们再来尝试,192.168.0.210:8080 能否访问。

2023-03-04T09:54:12.png

我们可以看到 Master 节点是不会转发这次请求的,这就是 NodePort 和 HostPort 的区别。

maksim
Maksim(一笑,吡罗),PHPer,Goper
OωO
开启隐私评论,您的评论仅作者和评论双方可见