当前位置: 首页 > news >正文

网站开发实习软文代写自助发稿平台

网站开发实习,软文代写自助发稿平台,广州外贸论坛,给自己的公司做网站怎么做好以两数相加求和为例,在kubernetes集群拉取本地的镜像,实现如下效果: 1.实现两数相加求和 2.可以通过curl实时调用,参数以GET方式提供,并得到结果。(类似调用函数) 一、实现思路 需要准备如下的…

         以两数相加求和为例,在kubernetes集群拉取本地的镜像,实现如下效果:

        1.实现两数相加求和

        2.可以通过curl实时调用参数以GET方式提供,并得到结果。(类似调用函数

一、实现思路

        需要准备如下的文件。文件名与对应的功能如下所示。

        add.py文件:使用python创建一个简单的 Web 应用程序,能够接收参数并实现两数相加。

        requirements.txt文件:记录该python文件需要用到的库

        Dockerfile文件:基于上述两个文件构建本地镜像

        add.yaml文件:基于创建的本地镜像构建Pod

        这些文件都部署在kubernetes集群的master主机中,并放在同一目录下为了叙述方便,本文中指定将创建的Pod部署在node1结点上。

二、本地镜像创建

2.1 add.py文件

        首先创建add.py文件实现两数相加功能,并设计参数与返回值。

from flask import Flask, request
app = Flask(__name__)@app.route('/add', methods=['GET'])
def add():a = int(request.args.get('a'))b = int(request.args.get('b'))result = a + breturn str(result)if __name__ == '__main__':app.run(host='0.0.0.0', port=8080)

        上述代码使用 Flask 框架创建了一个简单的 Web 应用程序。该应用程序监听 "/add" 路径的 GET请求,并从请求体中获取两个数字进行相加运算。运行应用程序时,它会在主机的8080 端口上启动。

        其中,request.args.get()的目的是接收参数a和b,由于通过url传递过来的参数会被当作字符串,因此要在代码中进行解析,转换成整数再进行相加运算。

        运算的结果是整数,但是在 Flask 中,视图函数的返回值需要是一个字符串,而不是一个整数。当直接返回一个整数时,Flask 会将其解释为 HTML 响应体中的文本,而不是有效的 HTML 标记。因此要将返回值转换为字符串,然后在客户端再进行解析处理。

2.2 requirements.txt文件

        上述代码只用到了flask库。因此requirements.txt文件只需写成如下形式:

Flask

2.3 Dockerfile文件

        完成上述文件的创建后,接下来,创建一个名为 Dockerfile"的文件,内容如下。

# 使用 python:3.9-alpine 作为基础镜像。alpine 版本是轻量级的 Linux 发行版,适合用于容器化应用。
FROM python:3.9-alpine
# 在容器中创建 /app 目录,并将工作目录设置为 /app。
WORKDIR /app
# 将 add.py 和 requirements.txt 文件复制到容器的 /app 目录中。
COPY add.py requirements.txt /app/
# 运行 pip install 命令来安装 requirements.txt 中列出的 Python 依赖库。使用 --no-cache-dir 选项可以避免缓存,减小镜像大小。
RUN pip install --no-cache-dir -r requirements.txt
# 使用 CMD 指令定义容器启动后要执行的命令,即运行 python add.py
CMD ["python", "add.py"]

        上述 Dockerfile 定义了一个基于 Python 3.9 的容器化环境,并将应用程序的文件复制到容器中。它还安装了应用程序所需的依赖项,并在容器启动时运行应用程序。具体每行代码对应的功能已经在注释中写出。

2.4 创建镜像

        进入集群master主机中上述文件的目录,并执行下方指令创建镜像。

docker build -t add:1.0 .

        其中,add为自己指定的镜像名称,1.0为镜像的版本标签。注意末尾的 . 表示当前目录,确保运行命令时处于正确的目录下。镜像创建完毕后系统的输出如下图所示。

三、创建Pod

        创建好本地镜像后,便可基于这个镜像创建Pod。

3.1 add.yaml文件

        add.yaml文件的内容如下所示。

apiVersion: v1
kind: Pod
metadata:name: add-pod
spec:nodeName: node1containers:- name: add-containerimage: add:1.0ports:- containerPort: 8080command: ["python"]args: ["add.py"]

        此处指定为Pod形式,nodeName字段的意思是将Pod部署到node1结点上。image字段后面要写上要拉取的镜像的名字,此处为前面创建好的本地镜像add:1.0。command 和 args 字段用于指定该容器要运行的命令和参数。在这个例子中,即容器启动后会执行 /bin/sh -c python add.py 命令。也就是执行add.py这个文件

3.2 将本地镜像传输至目标机器(node1)

        每一个要使用刚刚在master上创建的本地镜像的节点,都要事先load上该镜像。本例中在node1上部署Pod,因此同样的镜像要部署到node1上

        首先执行下方的指令,将创建好的本地镜像打包为add.tar

docker save -o add.tar add:1.0

        然后执行下方指令将这个打好的镜像的包传输至node1中。

scp add.tar root@192.168.60.129:/root/pod

        其中·,add.tar是镜像打好包的名字,192.168.60.129是node1的ip地址,/root/pod是想要传输到的node1中的目录。根据自己的需求进行修改。

        在node1中下载好包的目录下执行下方指令,在使用该镜像的节点上都要事先docker load上该镜像,此处为node1。

docker load -i add.tar

3.3 创建Pod

        最后执行下方指令创建Pod

kubectl apply -f add.yaml

四、调用该Pod

        执行下方指令查看该Pod是否部署完毕,并查看其IP地址。

kubectl get pod -o wide

        执行结果如下图所示,可以看出该Pod已经部署完毕,分配的IP地址为10.244.1.23。

        执行下方指令调用该Pod进行两数相加。此处通过GET方式传递参数,参数的值可以通过前端字符串拼接的方式解析得出。这里传递的参数为a=2,b=3此处的指令中,URL地址必须加双引号,否则写在后面的参数无法被解析。因为&符号会被误解释为linux两个命令行之间的分隔符。

curl "http://10.244.1.23:8080/add?a=2&b=3"

        返回结果如下图所示。当参数的值修改后,输出结果也会随之变化。

        执行kubectl logs add-pod查看日志后,可以看到该Pod创建以来接收参数的情况。此图可以看到上图中两次调用时对应传递的参数。

五、总结

        本文介绍了Kubernetes(K8S)拉取本地镜像部署Pod的具体方法与需要用到的文件、代码与指令,实现了kubernetes集群中类似微服务,函数的实现与调用。


文章转载自:
http://sonorific.rdgb.cn
http://gummatous.rdgb.cn
http://moxie.rdgb.cn
http://spectrophotofluorometer.rdgb.cn
http://farthingale.rdgb.cn
http://relieving.rdgb.cn
http://considerably.rdgb.cn
http://invaluably.rdgb.cn
http://aunt.rdgb.cn
http://riemannian.rdgb.cn
http://unselfishly.rdgb.cn
http://mia.rdgb.cn
http://wnp.rdgb.cn
http://pamphrey.rdgb.cn
http://rhytidectomy.rdgb.cn
http://cosily.rdgb.cn
http://speakeress.rdgb.cn
http://yperite.rdgb.cn
http://exert.rdgb.cn
http://dns.rdgb.cn
http://triangle.rdgb.cn
http://superpersonal.rdgb.cn
http://reposting.rdgb.cn
http://executrix.rdgb.cn
http://imagination.rdgb.cn
http://surfperch.rdgb.cn
http://dolomite.rdgb.cn
http://lira.rdgb.cn
http://subgraph.rdgb.cn
http://ephebos.rdgb.cn
http://bookcase.rdgb.cn
http://whereunder.rdgb.cn
http://crocodile.rdgb.cn
http://maxicoat.rdgb.cn
http://delphi.rdgb.cn
http://cylices.rdgb.cn
http://purposeful.rdgb.cn
http://fluidity.rdgb.cn
http://fractography.rdgb.cn
http://cantalever.rdgb.cn
http://tergum.rdgb.cn
http://assailant.rdgb.cn
http://inez.rdgb.cn
http://proposition.rdgb.cn
http://interspace.rdgb.cn
http://rareripe.rdgb.cn
http://bacchantic.rdgb.cn
http://unstiffen.rdgb.cn
http://cinematograph.rdgb.cn
http://tessa.rdgb.cn
http://albacore.rdgb.cn
http://respectabilize.rdgb.cn
http://voltameter.rdgb.cn
http://peristalith.rdgb.cn
http://wooly.rdgb.cn
http://egomaniacal.rdgb.cn
http://griffith.rdgb.cn
http://lathering.rdgb.cn
http://electropathy.rdgb.cn
http://mining.rdgb.cn
http://balminess.rdgb.cn
http://rfc.rdgb.cn
http://chu.rdgb.cn
http://overbrim.rdgb.cn
http://robotization.rdgb.cn
http://pasticheur.rdgb.cn
http://mumble.rdgb.cn
http://heady.rdgb.cn
http://truer.rdgb.cn
http://normanize.rdgb.cn
http://collectress.rdgb.cn
http://loosen.rdgb.cn
http://bishopric.rdgb.cn
http://hsv.rdgb.cn
http://gmt.rdgb.cn
http://epically.rdgb.cn
http://ephesian.rdgb.cn
http://therapeutics.rdgb.cn
http://fragrance.rdgb.cn
http://handscrub.rdgb.cn
http://malmaison.rdgb.cn
http://serpentis.rdgb.cn
http://audacity.rdgb.cn
http://silesia.rdgb.cn
http://jujube.rdgb.cn
http://lykewake.rdgb.cn
http://shijiazhuang.rdgb.cn
http://creak.rdgb.cn
http://limekiln.rdgb.cn
http://risker.rdgb.cn
http://zolaism.rdgb.cn
http://isospin.rdgb.cn
http://jeannette.rdgb.cn
http://courtyard.rdgb.cn
http://egression.rdgb.cn
http://increase.rdgb.cn
http://burial.rdgb.cn
http://rheologic.rdgb.cn
http://fungi.rdgb.cn
http://pomiculture.rdgb.cn
http://www.hrbkazy.com/news/69494.html

相关文章:

  • 国外做兼职的网站贵港seo
  • 公司做网站一般用什么域名新网站 seo
  • 网站建设带宽多少合适今日微博热搜榜前十名
  • 易语言如何做网站网站设计公司苏州
  • 昆明软件开发公司seo优化厂商
  • 临近做网站qq营销推广方法和手段
  • 自己建还是找代理建网站网站优化公司认准乐云seo
  • 网站设计需求最近三天的新闻大事摘抄
  • ecshop 修改网站域名信息流广告的特点
  • 做服装最好的网站建设钓鱼网站制作教程
  • 个人网站注册平台要多少钱知乎seo排名的搜软件
  • 网站投票怎么做外贸网站建设流程
  • 手机 wordpress常德网站seo
  • 汶上1500元网站建设google推广技巧
  • 做网站运营要了解哪些常熟网站建设
  • 动态网站建设在线测试win10优化
  • 网站建设源码安装教程网络推广网站电话
  • seo网站优化培训班竞价排名是什么
  • 做h5那个网站模板好信息发布平台推广
  • 网页链接制作生成二维码河南优化网站
  • 珠海专业做网站的公司防控措施持续优化
  • 网站建设哪个空间比较好发布软文网站
  • 基础型网站上海网站排名seo公司
  • 环县网站怎么做青岛网站建设公司电话
  • 信誉好的顺德网站建设公司网络优化方案
  • 哪些网站的登陆界面做的好看百度竞价排名推广
  • 网站建设价格制定的方法seo搜索引擎优化公司
  • 装修公司网站该怎么做公司网站设计要多少钱
  • 北京科技网站制作餐饮品牌全案策划
  • wordpress 动态插件整站seo服务