本站教程收集整理的这篇文章主要介绍了Docker 基础知识 – 在生产环境中运行您的应用 – 编排 – 部署到 Kubernetes,本站教程本站觉得挺不错的,现在分享给大家,也给大家做个参考。
前提条件
- 下载并安装 Docker Desktop,详见情况介绍和安装。
- 在第二部分中完成应用程序的容器化。
- 在您的 Docker Desktop 中确保 Kubernetes 是启用的:
- @H_154_10@mac:点击菜单栏中的 Docker 图标,导航到 Preferences,确保“Kubernetes”旁边有绿灯。
- Windows:点击系统托盘中的 Docker 图标,导航到 SetTings,确保“Kubernetes”旁边有绿灯。
如果 Kubernetes 没有运行, 请按照本教程编排(Orchestration)概述中的说明完成设置。
介绍
既然我们已经演示了应用程序的各个组件作为独立容器运行,那么现在就可以安排它们由类似 Kubernetes 的编排器管理了。Kubernetes 提供了许多缩放、联网、保护和维护您的容器化应用程序的工具,这些工具超出了容器本身的能力。
为了验证我们的容器化应用程序能否在 Kubernetes 上很好地工作,我们将在开发机上使用 Docker Desktop 内置的 Kubernetes 环境来部署@R_307_9616@程序,然后将其移交到生产环境中一个完整的 Kubernetes 集群上运行。Docker Desktop 创建的 Kubernetes 环境功能齐全,这意味着它拥有您的应用程序将在真实集群上享受到的所有 Kubernetes 功能,可以通过您的开发机方便地访问。
使用 Kubernetes YAML 描述应用程序
Kubernetes 中的所有容器都被安排为 pods,即共享一些资源的位于同一位置的容器组。此外,在实际的应用程序中,我们几乎从不创建单独的 pod;相反,我们的大部分工作负载被安排为部署(deployments),部署是由 Kubernetes 自动维护的可缩放的 pods 组。最后,所有 Kubernetes 对象都可以并且应该在名为 Kubernetes YAML 文件的清单中进行描述。这些 YAML 文件描述了 Kubernetes 应用程序的所有组件和配置,可用于在任何 Kubernetes 环境中轻松地创建和销毁应用程序。
-
您已经在本教程的编排(Orchestration)概述部分中编写了一个非常基本的 Kubernetes YAML 文件。现在,让我们编写一个稍微复杂一点的 YAML 文件来运行和管理我们的公告栏应用程序。将下面的内容放到一个名为
bb.yaml
的文件中:apiVersion: apps/v1 kind: Deployment Metadata: name: bb-demo namespace: default spec: replicas: 1 SELEctor: matchLabels: bb: web template: Metadata: labels: bb: web spec: containers: - name: bb-site image: bulleTinboard:1.0 --- apiVersion: v1 kind: service Metadata: name: bb-entrypoint namespace: default spec: type: NodePort SELEctor: bb: web ports: - port: 8080 targetPort: 8080 nodePort: 30001
在此 Kubernetes YAML 文件中,有两个对象,以
---
分隔:- 一个
部署(Deployment)
,描述一个可缩放的相同 pods 组。在本例中,您只会得到一个副本(replica)
,即您的 pod 的副本,并且该 pod(在template:
键下描述) 中只有一个容器,这个容器基于本教程前一步骤中的bulleTinboard:1.0
镜像。 - 一个
NodePort
服务,它将流量从您的主机上的 30001 端口转发到它所路由到的 pods 内的 8080 端口,允许您从网络到达您的公告栏应用。
另外,请注意,虽然 Kubernetes YAML 一开始可能看起来又长又复杂,但它几乎总是遵循相同的模式:
apiVersion
,表明解析该对象的 Kubernetes APIkind
,表明这是什么类型的对象- @H_310_44@metadata,将名字之类的东西应用到对象上
spec
,指定对象的所有参数和配置
- 一个
部署并检查应用程序
-
在终端中,导航到您创建
bb.yaml
的位置,并将应用程序部署到 Kubernetes:美国高防vps
kubectl apply -f bb.yaml
您将看到如下所示的输出,表明 Kubernetes 对象已成功创建:
deployment.apps/bb-demo created service/bb-entrypoint created
-
通过列出部署确保一切正常:
kubectl get deployments
如果一切顺利,您的部署应列出如下:
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE bb-demo 1 1 1 1 48s
这表示您在 YAML 中请求的“所有”一个 pod 已启动并运行。对您的服务进行同样的检查:
kubectl get services NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE bb-entrypoint NodePort 10.106.145.116 <none> 8080:30001/TCP 53s kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 138d
除了默认的
kubernetes
服务之外,我们还看到bb-entrypoint
服务,它接受端口 30001/TCP 上的流量。 -
打开浏览器并访问您的公告栏
localhost:30001
; 您将看到您的公告栏,就像我们在 Docker 快速入门的第二部分中将其作为独立容器运行时一样。 -
一旦满意,请拆除您的应用程序:
kubectl delete -f bb.yaml
结论
至此,我们已经成功地使用 Docker Desktop 将@R_307_9616@程序部署到开发机上功能齐全的 Kubernetes 环境中。我们还没有对 Kubernetes 做太多的工作,但是现在大门已经打开了;
我们还没有对 Kubernetes 做太多的工作,但是大门已经打开了;您可以开始在您的应用程序中添加其他组件,并利用 Kubernetes 的所有特性和功能,就在您自己的机器上。
除了部署到 Kubernetes 之外,我们还将应用程序描述为 Kubernetes YAML 文件。这个简单的文本文件包含我们需要创建的@R_307_9616@程序在运行状态下所需的一切内容。我们可以将其签入版本控制并与同事共享,从而使我们能够轻松地将应用程序分发到其他集群(比如开发环境之后可能出现的测试和生产集群)。
Kubernetes 参考文献
本文中使用的所有新 Kubernetes 对象的进一步文档请参看:
- Kubernetes Pods
- Kubernetes Deployments
- Kubernetes services
Kubernetes 中文文档:https://kubernetes.io/zh/docs/home/
本站总结
以上是本站教程为你收集整理的Docker 基础知识 – 在生产环境中运行您的应用 – 编排 – 部署到 Kubernetes全部内容,希望文章能够帮你解决Docker 基础知识 – 在生产环境中运行您的应用 – 编排 – 部署到 Kubernetes所遇到的程序开发问题。
如果觉得本站教程网站内容还不错,欢迎将本站教程推荐给好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。