前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Docker 基础知识-编排-在开发机上设置和使用 Kubernetes 环境

Docker 基础知识-编排-在开发机上设置和使用 Kubernetes 环境

作者头像
用户8803964
修改2021-07-06 10:41:53
4460
修改2021-07-06 10:41:53
举报
文章被收录于专栏:VVcblogVVcblog

前提条件

  • 下载并安装 Docker Desktop,详见情况介绍和安装
  • 第二部分中完成应用程序的容器化。
  • 在您的 Docker Desktop 中确保 Kubernetes 是启用的:
    • Mac:点击菜单栏中的 Docker 图标,导航到 Preferences,确保“Kubernetes”旁边有绿灯。
    • Windows:点击系统托盘中的 Docker 图标,导航到 Settings,确保“Kubernetes”旁边有绿灯。 如果 Kubernetes 没有运行, 请按照本教程编排(Orchestration)概述中的说明完成设置。

介绍

既然我们已经演示了应用程序的各个组件作为独立容器运行,那么现在就可以安排它们由类似 Kubernetes 的编排器管理了。Kubernetes 提供了许多缩放、联网、保护和维护您的容器化应用程序的工具,这些工具超出了容器本身的能力。

为了验证我们的容器化应用程序能否在 Kubernetes 上很好地工作,我们将在开发机上使用 Docker Desktop 内置的 Kubernetes 环境来部署我们的应用程序,然后将其移交到生产环境中一个完整的 Kubernetes 集群上运行。Docker Desktop 创建的 Kubernetes 环境功能齐全,这意味着它拥有您的应用程序将在真实集群上享受到的所有 Kubernetes 功能,可以通过您的开发机方便地访问。

使用 Kubernetes YAML 描述应用程序

Kubernetes 中的所有容器都被安排为 pods,即共享一些资源的位于同一位置的容器组。此外,在实际的应用程序中,我们几乎从不创建单独的 pod;相反,我们的大部分工作负载被安排为部署(deployments),部署是由 Kubernetes 自动维护的可缩放的 pods 组。最后,所有 Kubernetes 对象都可以并且应该在名为 Kubernetes YAML 文件的清单中进行描述。这些 YAML 文件描述了 Kubernetes 应用程序的所有组件和配置,可用于在任何 Kubernetes 环境中轻松地创建和销毁应用程序。

  1. 您已经在本教程的编排(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 API
    • kind,表明这是什么类型的对象
    • metadata,将名字之类的东西应用到对象上
    • spec,指定对象的所有参数和配置

部署并检查应用程序

  1. 在终端中,导航到您创建 bb.yaml 的位置,并将应用程序部署到 Kubernetes: kubectl apply -f bb.yaml 您将看到如下所示的输出,表明 Kubernetes 对象已成功创建: deployment.apps/bb-demo created service/bb-entrypoint created
  2. 通过列出部署确保一切正常: 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 上的流量。
  3. 打开浏览器并访问您的公告栏 localhost:30001; 您将看到您的公告栏,就像我们在 Docker 快速入门的第二部分中将其作为独立容器运行时一样。
  4. 一旦满意,请拆除您的应用程序: kubectl delete -f bb.yaml

结论

至此,我们已经成功地使用 Docker Desktop 将我们的应用程序部署到开发机上功能齐全的 Kubernetes 环境中。我们还没有对 Kubernetes 做太多的工作,但是现在大门已经打开了; 我们还没有对 Kubernetes 做太多的工作,但是大门已经打开了;您可以开始在您的应用程序中添加其他组件,并利用 Kubernetes 的所有特性和功能,就在您自己的机器上。

除了部署到 Kubernetes 之外,我们还将应用程序描述为 Kubernetes YAML 文件。这个简单的文本文件包含我们需要创建的我们的应用程序在运行状态下所需的一切内容。我们可以将其签入版本控制并与同事共享,从而使我们能够轻松地将应用程序分发到其他集群(比如开发环境之后可能出现的测试和生产集群)。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前提条件
  • 介绍
  • 使用 Kubernetes YAML 描述应用程序
  • 部署并检查应用程序
  • 结论
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档