Kubernates 部署容器化应用
分类:知识集锦 发布时间:2023/4/13 17:52:07

容器化应用:把一个应用程序放在 docker 里部署,这个 docker 应用就是容器化应用,在 docker 中我们通过启动镜像部署容器化应用。


如何在 k8s 中部署容器化应用:

获取镜像:编写 Dockerfile 制作镜像,或者从仓库拉取镜像

控制器创建 pod:控制器启动镜像,创建容器并将容器放入 pod 中

暴露应用,使外界可以访问应用


DashBoard概念

DashBoard 是 k8s 的可视化管理工具,可以基于 web 对 k8s 集群进行集中管理。


Ingress

资源清单中有三个端口:

nodePort:外部访问的端口

port:集群内部通信的端口

targetPort:容器中服务的端口

Ingress 的优点

NodePort 方式最大的缺点是每个 service 都要暴露端口,在部署微服务时会暴露大量端口加大管理难度,所以在生产环境中不推荐使用这种方式来直接发布服务。

使用 LoadBalancer 暴露服务可以解决端口过多的问题,但 LoadBlancer 需要向云平台申请负载均衡器,与云平台的耦合度太高,相当于购买了服务。

Ingress 相当于是服务网关,可以通过 URL 路径代理 service,只需要暴露一个端口就可以满足所有 service 对外服务的需求,生产环境建议使用这种方式。


Helm概念

k8s 上的 deployment、service 等应用对象,都是由资源清单部署的。对于一个复杂的应用,会有很多类似的资源清单文件。例如微服务架构应用,组成应用的服务可能多达几十个。如果有更新或回滚应用的需求,可能要修改维护大量 yml 文件。

Helm 是一个 k8s 的应用管理工具,可以很方便的通过管理 yaml 文件来部署应用,更新应用版本。目前 Heml 的 V3 版本发布,极大简化了之前繁琐的使用方式。

Helm 中有 3 个重要概念:

helm:命令行客户端工具,能够进行 chart 的创建,项目打包、发布和管理。

chart:应用描述,一系列用于描述 k8s 资源相关文件的集合。

release:基于 chart 部署的资源,chart 被 helm 运行后将会生成对应release。

体验创新云技术带来核心业务效率显著提升
立即预约,加速企业数字化转型进程
Copyright ⓒ 2022 苏州博纳讯动软件有限公司 国徽 苏ICP备13004761号 法律声明及隐私政策