Kubernetes 入门教程:从 hello world 到 Deployment 部署

什么是 Kubernetes?

Kubernetes 是一种开源容器编排平台,可以帮助开发人员在生产环境中自动化部署,管理和扩展容器化应用程序。它是 Google 的 Borg 系统的开源版本,旨在帮助开发人员更轻松地管理容器化应用程序。

Kubernetes 提供了一种方法来管理多个 Docker 容器,可以自动处理容器的弹性、伸缩、负载平衡和故障转移,从而简化了应用程序的部署和管理。

准备

在开始本文之前,我们需要安装以下软件:

  • Docker
  • kubectl
  • minikube

手动创建 Kubernetes hello world

我们先手动创建一个 Kubernetes 应用程序。在开始之前,建议您先快速阅读一下以下的概念:

  • Pod:一个 Pod 包含一个或多个 Docker 容器,共享网络和存储的空间。Pod 是 Kubernetes 应用程序的最小部署单元。
  • Deployment:Deployment 是定义 Pod 和 ReplicaSet 的模板。它可以管理应用程序的版本控制和滚动更新。

第一步:创建一个 Docker 镜像

我们首先需要创建一个 Docker 镜像。将以下代码保存为 Dockerfile:

---- -------------
--- ---- ------- -------

在您的终端中,进入 Dockerfile 所在的目录,并使用以下命令构建 Docker 镜像:

------ ----- -- --------------- -

第二步:创建一个 Pod

现在我们需要创建一个 Pod,可以在 Kubernetes 群集中运行该镜像。将以下 YAML 文件保存为 hello-world-pod.yaml:

----------- --
----- ---
---------
  ----- ---------------
-----
  -----------
  - ----- -----------
    ------ ---------------

使用 kubectl 命令将该文件应用于 Kubernetes 群集:

------- ----- -- --------------------

现在我们可以查看 Pod 的状态:

------- --- ----

您应该看到一个包含以下内容的输出:

----               -----     ------    --------   ---
---------------    ---       -------   -          ---

第三步:暴露 Pod

现在我们已经运行了一个 Pod,但是我们无法在本地机器上访问该 Pod。我们需要将 Pod 公开以便可以在本地机器上访问它。将以下 YAML 文件保存为 hello-world-svc.yaml:

----------- --
----- -------
---------
  ----- ---------------
-----
  ---------
    ---- -----------
  ------
  - ----- ----
    ----- --
    ----------- --
  ----- --------

使用 kubectl 命令将该文件应用于 Kubernetes 群集:

------- ----- -- --------------------

现在我们可以查看 Pod 的状态:

------- --- --------

您应该看到一个包含以下内容的输出:

----              ----           ----------      -----------     -------        ---
---------------   --------       -------------   ------          ------------   ---

现在我们可以使用以下命令查找在本地机器上暴露的端口:

-------- ------- --------------- -----

复制 URL 并在浏览器中打开。您应该看到以下输出:

------ ------

使用 Deployment 部署

使用 Deployment 可以更好地管理应用程序的版本控制和滚动更新。

第一步:创建一个 Deployment

使用以下 YAML 文件创建 Deployment:

----------- -------
----- ----------
---------
  ----- ---------------
-----
  ---------
    ------------
      ---- -----------
  --------- -
  ---------
    ---------
      -------
        ---- -----------
    -----
      -----------
      - ----- -----------
        ------ ---------------

使用 kubectl 命令将该文件应用于 Kubernetes 群集:

------- ----- -- --------------------

现在我们可以查看 Deployment 的状态:

------- --- -----------

您应该看到一个包含以下内容的输出:

----               -------   -------   ----------   ---------   ---
---------------    -         -         -            -           ---

第二步:更新应用程序

更新应用程序时,您可以在更新 Deployment 后根据需要使用 kubectl 命令滚动更新 Pods。

使用以下命令更新应用程序:

------- --- ----- -------------------------- ------------------------------

现在我们可以查看 Deployment 的状态:

------- --- -----------

您应该看到一个包含以下内容的输出:

----               -------   -------   ----------   ---------   ---
---------------    -         -         -            -           -----

第三步:回滚更新

如果需要回滚更新,您可以使用以下命令:

------- ------- ---- --------------------------

现在我们可以查看 Deployment 的状态:

------- --- -----------

您应该看到一个包含以下内容的输出:

----               -------   -------   ----------   ---------   ---
---------------    -         -         -            -           -----

结论

Kubernetes 是一种强大的容器编排平台,使开发人员可以轻松地部署、管理和扩展容器化应用程序。在本文中,我们讨论了如何手动创建一个 Kubernetes 应用程序,并使用 Deployment 部署进行版本控制和滚动更新。

我们建议您继续学习 Kubernetes,并尝试使用它来运行更复杂的应用程序。Kubernetes 文档和教程可以提供丰富的信息,帮助您了解 Kubernetes 并为实际应用程序部署做好准备。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/67105e5c5f551281026a4aaf