当我想要试试戴上头盔的时候,我没能达到那个地方

最近我在公司开始使用Kubernetes,听说有一个叫做Helm的Kubernetes包管理器,所以我想要去调查一下。但是我走了很多弯路,最终没能找到答案。

「Helm」是什么?

在Helm的概述和Chart(图表)的创建方法中详细说明了各种内容。

在本地(Mac)上的Kubernetes

Docker for Mac本身就带有Kubernetes,但我之前未启用它,现在已经启用并可以使用了。

部署示例应用程序

我在Docker for Mac上安装和部署Kubernetes,并且通过查看Kubernetes Dashboard的yaml文件来进行部署。
我不知道可以在一个yaml文件中写入多个资源并通过一次性Apply来部署。而且我还不知道可以通过kubectl delete一次性删除它们。

使用docker-compose.yml将应用部署到Kubernetes。

我刚才在看Qiita的文章,上面写着可以做到这件事,但我之前完全不知道。

docker stack deploy STACK_NAME --compose-file docker-compose.yml

所以,它似乎是可以的。尽管花了一些时间,但VolumeMount也成功了,而且自动创建了localhost的LoadBalancer,可以立即访问。

将docker-compose.yml转换为Kubernetes资源

如果再仔细调查一下,可以在官方文档中看到,使用Kompose可以将docker-compose.yml转换为Kubernetes资源。官方文档:将Docker Compose文件转化为Kubernetes资源。

用`kompose up`命令可以直接运行。启动速度比`docker stack`快。但是会出现不支持VolumeMount的警告,并且默认不会创建LoadBalancer或NodePort服务,导致无法访问。

如果查看Issue,可以看到有关于VolumeMount的信息,似乎需要手动创建(?)。关于LoadBalancer,虽然在官方文档页面中有写到。

    labels:
      kompose.service.type: LoadBalancer

在写下这个的时候,kompose up会为我们创建它!

docker stack和kompose up有什么区别?

我稍微找过了,但没找到提及不同之处的文章。(如果仔细调查可能会找到。)只是,docker stack是由docker开发的,而kompose up是由Kubernetes开发的,所以感觉它们是从不同的方向上针对同样目的而设计的呢。

最终

這樣下來,我偏離了原路並花了相當多時間,所以Helm我等下再試試看吧。

广告
将在 10 秒后关闭
bannerAds