当我想要试试戴上头盔的时候,我没能达到那个地方
最近我在公司开始使用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我等下再試試看吧。