说我通过 Kubernetes 部署组件是否正确?

Is it correct to say I am deploying components via Kubernetes?

我对应该使用的术语有一些疑问。我已经搜索了我正在使用的组件,但我仍然不确定。你能检查一下这些描述每个组件的方法是否正确吗?如果不行,请您修改一下好吗?

  1. 我使用 Spring 框架(Spring 启动)开发微服务。
  2. 我通过 Kubernetes 和 Docker 在云上部署组件。 (我理解 Docker 用于容器化,而 Kubernetes 用于编排多个容器。说“我部署在 Kubernetes 上或通过 Kubernetes”是否正确?)
  3. CI/CD 使用 Jenkins 和 Azure DevOps 的管道。 (项目使用 Azure DevOps 在 Jenkins 中触发 CI/CD)

请注意,这个项目在我加入团队时已经存在,而且我对所有这些概念都是陌生的。我简单地了解他们的工作,我知道每个术语在入门级的含义,但我只是想确定我是否以正确的方式说这些。

我会说你部署的是服务,而不是组件,但你的团队可能有自己的术语。

您在 Kubernetes 上部署。

Docker用于创建和管理容器及容器镜像。 Kubernetes 不使用 Docker 但可以使用通过 Docker 创建的图像在 Pods 中部署容器(通过 OCI 格式)

其余的对我来说似乎是对的:)

在 Kubernetes 中,作为一个单元的应用程序称为服务。它下面有可访问的组件,例如:deployment、pod等。这组组件可能是微服务或服务,但术语只是服务。

您可以使用 kubectl get services

列出所有服务

Docker 与这里相关只是因为 pod 有一个容器,有时只有几个容器。所以 Kubernetes 支持 Docker 及其图像。它是 2021 年最受欢迎的容器运行时,但不是 Kubernetes 唯一的容器运行时。

将所有内容结合起来,对我来说正确的句子是:

我在 Kubernetes 上部署了一个服务

我在 Amazon EKS 上部署了一项服务

我在 Azure Kubernetes 上部署了一个服务

等等

添加“云”并不会增加太多价值,因为无论选择何种云提供商,Kubernetes 平台都是相同的。当然,在云上有一些差异,但在 Kubernetes 核心上没有。

Docker 不适合放在这里,通常在讨论细节时讨论,尤其是关于图像、构建它们等。

也是题外话,但即使是 pod 也比容器更常用,因为在 Kubernetes 中你访问的是 pod(而在 Docker Compose 中,你访问的是容器)。当然,如果在一个 pod 中设置了多个容器,并且在此上下文中容器引擎为 Docker,则您可以访问 Docker 容器。

I develop microservices using Spring Framework (Spring boot).

从最基本的形式来理解 - 微服务是一种开发应用程序的架构模式,因此可以有多种方法来实现这种模式(无非就是开发应用程序),Spring Boot 是其中一种他们。更准确地说,您应该说“我使用 Spring Boot 开发微服务”

I deploy components on cloud via Kubernetes and Docker. (I understand Docker is used for containerizing and Kubernetes is for orchestrating multiple containers. Is it right to say "I deploy on Kubernetes or via Kubernetes"?)

准确地说,你在这里是不正确的——你理解 Docker 和 Kubernetes 的目的,但把它放错了 w.r.t。应用程序及其部署。

请阅读 this,其中明确提到 K8s 不构建或部署代码。官方文档明明说K8s不部署代码,那你怎么能说我是通过K8s部署的呢?

我会说你不应该使用你提到的任何一个陈述,而应该说 - “我的应用程序在 Kubernetes 集群(或 GKE 或 EKS 或 AKS)上的云中运行(或部署) ".

CI/CD pipeline using Jenkins and Azure DevOps. (Project uses Azure DevOps for triggering CI/CD in Jenkins)

我觉得不错。


请注意,一般来说,只要对方能听懂,你就可以说任何话,所以一般来说,你所有的陈述都可能卖得很好。但我猜你是在寻找“精确”的陈述,我也给了你我的想法。

这里的人是对的,但我想补充一点,当谈到 Kubernetes 组件 时,您通常首先想到 Control Plane Components or Node Components and when speaking of smaller units the Services and Pods。请注意,Kubernetes 服务是一种抽象方式,可以将一组 Pods 上的应用程序 运行 作为网络服务公开。所以解决你的主要问题:

Is it correct to say I am deploying components via Kubernetes?

最好说您正在 Kubernetes(AKS/AWS/GCP/etc 上)部署 service/application (运行)。