千家信息网

Kubernetes部署您的第一个应用程序

发表于:2024-11-18 作者:千家信息网编辑
千家信息网最后更新 2024年11月18日,上一篇我们讲到使用Docker来创建容器并发布了一个公告板应用程序,这一篇将使用Kubernetes编排工具来管理容器。Kubernetes在可扩展、网络互联、安全和维护容器化应用程序提供了很多工具接
千家信息网最后更新 2024年11月18日Kubernetes部署您的第一个应用程序

上一篇我们讲到使用Docker来创建容器并发布了一个公告板应用程序,这一篇将使用Kubernetes编排工具来管理容器。Kubernetes在可扩展、网络互联、安全和维护容器化应用程序提供了很多工具接口,而这些已远超出了docker容器本身的能力。

为了验证我们应用程序在Kubernetes上是否运行正常,我们将在开发机器上使用Docker Desktop内置的Kubernetes环境来部署我们的应用程序,然后将其交付到生产中的完整Kubernetes集群上运行。Docker Desktop中的Kubernetes功能特性与生产Kubernetes集群是一致的,所以,即便是在开发环境上,您的应用程序也享有了生产Kubernetes集群所有功能。

使用YAML来创建应用

1、创建一个名为bb.yaml的文件,如图1.1所示。

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

图1.1

上述Kubernetes的YAML文件具有2个对象结构,使用"---"作为分隔符,若YAML文件中仅有一个对象,则分隔符可以省略。

Deployment对象描述创建一个pod组,该pod组中的容器副本数为1个,然后基于镜像bulletinboard:1.0来创建。

Service对象描述了创建一个NodePort类型的服务,该服务用于将流量从宿主机上的30001端口路由到pods内容器的8080端口,允许您从宿主机的IP:30001访问公告板应用程序。

Kubernetes YAML一开始看起来很长很复杂,但它几乎总是遵循相同的模式

(1)、apiVersion用于指定Kubernetes API的版本

(2)、kind用于指定资源类型,可以是Deployment、Service、Namespace、ConfigMap、ServiceAccount等。

(3)、metadata,指定Pod的元数据信息,包括name、namespace、labels等。

(4)、spec,指定容器container、存储storage、卷volume以及其他kubernetes对象所需的配置。

发布并测试您的应用

1、在bb.yaml所在目录,执行如下命令。

# kubectl apply -f bb.yaml

当您看到如下输出,则表示应用发布成功。

deployment.apps/bb-demo created

service/bb-entrypoint created

2、执行如下命令,确保部署正常。

# kubectl get deployments

如果输出信息如下,则表示运行正常。

NAME READY UP-TO-DATE AVAILABLE AGE

bb-demo 1/1 1 1 80m

3、执行如下命令查看service服务信息

# kubectl get services

输出信息如下

NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE

bb-entrypoint NodePort 10.99.53.144 8080:30001/TCP 20s

kubernetes ClusterIP 10.96.0.1 443/TCP 24h

可以看到我们发布的service服务bb-entrypoint,对外提供访问端口是30001,NodePort默认端口范围是:30000-32767,可以通过kube-apiserver命令(该命令在apiserver容器中)输出得知

--service-node-port-range portRange

A port range to reserve for services with NodePort visibility. Example: '30000-32767'. Inclusive at both ends of the range. (default 30000-32767)

4、通过http://localhost:30001来访问您的应用,您将看到如下界面,如图1.2所示,则表示应用部署成功,接下来就是进行测试、构建、发布、分享等过程。

图1.2

5、删除应用,可以使有如下命令

# kubectl delete -f  bb.yaml

或者

# kubectl delete deploy bb-demo
# kubectl delete service bb-entrypoint

如下图1.3所示。

图1.3

到此,我们已经成功地使用Docker Desktop将我们的应用程序部署到开发机器的Kubernetes环境中。我们还没有对Kubernetes做太多的工作,但现在大门已经打开,您可以开始在您的应用程序中添加其他组件,并使用Kubernetes的所有功能。除此之外,我们还应加强对YAML文件学习理解。

注意:YAML文件是可以根据现有正在运行的deploy、pod、service来生成模板的,然后在此模版基础上进行修改。

应用 应用程序 程序 容器 命令 对象 文件 信息 端口 服务 输出 运行 成功 功能 环境 集群 开发 生产 公告 公告板 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 我的世界服务器怎么解封所有玩家 中学生要注意的网络安全 湖南省网络安全教育普及会 运维操作数据库 数据库云原生化 乐学帮网络技术有限公司产品 数据库 教学管理 G 二级网络技术专业 虹口区网络技术服务零售价格 win2012管理服务器 北京大云世纪网络技术有限公司 连入斐讯共享共享网络安全吗 招行网络安全是什么意思 师生网络安全实施方案 南宁软件开发公司招聘后端 荒野行动怎么投诉服务器 数据库日期怎么转成字符串 服务器上光口和电口的作业 什么职业的人需要买服务器 软件开发外包的理由 羽佳服务器 野外求生视频软件开发 我的世界24小时如何开服务器 我的世界怎么做服务器空岛生存 网站后台用什么软件开发 温州物流软件开发安全 关于网络安全的简单演讲 安全服务器监控 网络安全证书有问题真好 网络安全信息化培训总结
0