1.部署一个应用程序

您所在的位置:网站首页 中药川木通的别名 1.部署一个应用程序

1.部署一个应用程序

2023-06-07 02:58| 来源: 网络整理| 查看: 265

免费 Kubernetes教程K8S教程,绝不降低品质 只要一个 Github Star (opens new window) 就可以鼓励作者尽快完成 剩下的 15% 在线答疑 方式见页尾 Kuboard - 快速在 Kubernetes 落地微服务 # 1.部署一个应用程序 CKA 考试 九五折优惠申请 CKA 考试,优惠码为: Affkub95-268483 现在报名 广告

本文翻译自 Kubernetes Using kubectl to Create a Deployment (opens new window) ,并有所改写

# 前提

假设您已经

完成 Kubernetes 集群的安装,请参考文档 离线安装高可用的Kubernetes集群 完成 Kuboard 的安装,请参考文档 安装 Kuboard 版本不低于 v3.1.1.0 # 目标 使用 kubectl 在 k8s 上部署第一个应用程序。

TIP

kubectl 是 k8s 的客户端工具,可以使用命令行管理集群。 如果参考文档 离线安装高可用的Kubernetes集群,您可以在 master 节点的 root 用户使用 kubectl 操作您的集群 您也可以尝试 从客户端电脑远程管理 Kubernetes # Kubernetes 部署

在 k8s 上进行部署前,首先需要了解一个基本概念 Deployment

Deployment 译名为 部署。在k8s中,通过发布 Deployment,可以创建应用程序 (docker image) 的实例 (docker container),这个实例会被包含在称为 Pod 的概念中,Pod 是 k8s 中最小可管理单元。

在 k8s 集群中发布 Deployment 后,Deployment 将指示 k8s 如何创建和更新应用程序的实例,master 节点将应用程序实例调度到集群中的具体的节点上。

创建应用程序实例后,Kubernetes Deployment Controller 会持续监控这些实例。如果运行实例的 worker 节点关机或被删除,则 Kubernetes Deployment Controller 将在群集中资源最优的另一个 worker 节点上重新创建一个新的实例。这提供了一种自我修复机制来解决机器故障或维护问题。

在容器编排之前的时代,各种安装脚本通常用于启动应用程序,但是不能够使应用程序从机器故障中恢复。通过创建应用程序实例并确保它们在集群节点中的运行实例个数,Kubernetes Deployment 提供了一种完全不同的方式来管理应用程序。

# 在 Kubernetes 上部署第一个应用程序

Kubernetes教程:部署第一个应用程序

上图是在第一篇文章的基础上,添加上了Deployment、Pod和Container。

Deployment 处于 master 节点上,通过发布 Deployment,master 节点会选择合适的 worker 节点创建 Container(即图中的正方体),Container 会被包含在 Pod (即蓝色圆圈)里。

# 实战:部署 nginx Deployment

本套教程提供了两种实战方式:

使用 kubectl 使用 Kuboard

创建 YAML 文件

创建文件 nginx-deployment.yaml,内容如下:

有注释 无注释 apiVersion: apps/v1 #与k8s集群版本有关,使用 kubectl api-versions 即可查看当前集群支持的版本 kind: Deployment #该配置的类型,我们使用的是 Deployment metadata: #译名为元数据,即 Deployment 的一些基本属性和信息 name: nginx-deployment #Deployment 的名称 labels: #标签,可以灵活定位一个或多个资源,其中key和value均可自定义,可以定义多组,目前不需要理解 app: nginx #为该Deployment设置key为app,value为nginx的标签 spec: #这是关于该Deployment的描述,可以理解为你期待该Deployment在k8s中如何使用 replicas: 1 #使用该Deployment创建一个应用程序实例 selector: #标签选择器,与上面的标签共同作用,目前不需要理解 matchLabels: #选择包含标签app:nginx的资源 app: nginx template: #这是选择或创建的Pod的模板 metadata: #Pod的元数据 labels: #Pod的标签,上面的selector即选择包含标签app:nginx的Pod app: nginx spec: #期望Pod实现的功能(即在pod中部署) containers: #生成container,与docker中的container是同一种 - name: nginx #container的名称 image: nginx:1.7.9 #使用镜像nginx:1.7.9创建container,该container默认80端口可访问 12345678910111213141516171819apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment labels: app: nginx spec: replicas: 1 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:1.7.9 12345678910111213141516171819

应用 YAML 文件

kubectl apply -f nginx-deployment.yaml 1

查看部署结果

# 查看 Deployment kubectl get deployments # 查看 Pod kubectl get pods 12345

打开 Kuboard 首页,如下图所示:

Kubernetes教程:Kuboard首页

假设您已经完成了集群的导入,点击一个 已就绪 的集群,如下图所示:

Kuboard首页-选择名称空间

选择 使用 ServiceAccount kuboard-admin 并 点击 default 名称空间 将切换到 default 名称空间首页,如下所示:

Kuboard-名称空间首页

点击左侧菜单的 创建工作负载 ,将打开工作负载编辑器,如下图所示:

Kuboard-创建工作负载

​ 并填写表单如下:

字段名 填写内容 备注 服务类型 Deployment 服务分层 展现层 Kuboard使用这个字段确定将部署显示在微服务架构的哪个分层 服务名称 nginx 服务分层的前缀 + 服务名 组成最终的 K8S Deployment name 副本数 1 replicas

点击 容器信息 Tab 页,在 容器信息 Tab 页中点击 添加工作容器 按钮,如下图所示:

Kuboard-编辑容器信息

并填写表单如下:

字段名 填写内容 备注 容器名称 nginx 镜像 nginx:1.7.9 抓取策略 Always 每次创建 Pod 都尝试抓取镜像 Ports TCP : 80 该容器组监听 TCP 80 端口

点击 保存

点击 应用

点击 完成

此时可查看到该应用的部署结果,如下图所示:

Kuboard-工作负载查看

点击上图中的 代理 按钮,可以直接测试部署结果。更多细节请参考 Kuboard Proxy。

通过代理访问已部署的 nginx 服务时,默认显示结果如下所示:

Nginx

可分别查看到一个名为 nginx-deployment 的 Deployment 和一个名为 nginx-deployment-xxxxxxx 的 Pod

~~任务二达成,至此你已经成功在k8s上部署了一个实例的nginx应用程序,

~~想要知道 Deployment(部署)、Pod(容器组) 和 Node(节点) 之间的关系吗?

~~let‘s go-> 查看 Pods(容器组)和 Nodes(节点)

免费答疑 微信群 微信扫码 进群发广告者死全家...

赞赏 微信扫码

更新时间: 2022-01-03 18:32:47

← 0.学习Kubernetes基础知识 2.查看Pods/Nodes →

Copyright © 2019-present 邵欢庆 京ICP备19008693号-2 友情链接: SpringBlade Linux Foundation


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3