当前位置:网站首页 > R语言数据分析 > 正文

kubelet起不来(kubelet-client-current.pem)



OpenStack对外提供REST API,那么REST API是如何建立起来的呢?

OpenStack用了一种叫WSGI(Web Service Gateway Interface)的东西,WSGI是Web服务器与Web应用程序或应用框架之间的一种低级别的接口。

下面是个简单的例子:

执行这段代码,然后浏览器访问http://localhost:8088就会出现Hello World页面。

大致流程如下:

openstack instance restart出现问题_json

(1)Client(上例中浏览器)发送请求到Server。

(2)Server转发请求给Application(上例中hello_world_app)。注:Server和Application之间还有middleware,此处省略。

(3)Application进行操作后将相应发送给Server。

(4)Server再将相应转发给Client。

OpenStack使用WSGI的一个工具包paste来配置WSGI appliaction和server的系统,它的好处是将配置和代码分离。python代码写好后如果想要修改页面到app的映射关系,只需要修改配置文件即可。

用一个简单的例子来示范paste.deploy的工作机制:

pastedeploy.ini

app:表示它定义了一个wsgi的application,是一个callable对象。paste. app_factory返回值是一个application对象

filter:表示这个段定义了一个filter,filter需要完成的工作是将application包装成另一个application(“过滤”),并返回这个包装后的application。

pipeline:Pipeline 由一些列的filter组成,最后一个是应用,即将前面的fiiter应用到application。

composite:自己不处理请求,根据映射关系把请求分发到filter、app或者pipeline。/:root就是表示访问url根目录的请求全部分发到root这个pipeline处理

pastedeploy.py

执行命令python pastedeploy.py,然后在浏览器中输入http://localhost:8080/就可以在网页输出Paste Deploy LAB: Version = 1.0.0

下面讲解一下工作流程,运行pastedeploy.py文件,首先会调用loadapp函数加载运用,在配置文件pastedeploy.ini找到appname为test_composite,test_composite是一个composite,然后找到pipeline root,根据pipeline找到filter logrequest和app showversion,logrequest和showversion各自用factory生成callable对象。加载完应用后调用make_server启动服务。

在浏览器输入http://localhost:8080/就会根据urlmap将请求分发到pipeline root,调用LogFilter的__call__方法,其中app就是ShowVersion,然后调用ShowVersion的__call__方法返回消息。

以下写一个简单的OpenStack WSGI实例,参考了臭蛋的博客,臭蛋写的和OpenStack源码很一致。

其中用到的一些python库:

1. paste.deploy 配置WSGI appliaction和server

2. webob 用来对http请求和响应进行封装

3. routes 实现URL映射

4. eventlet.wsgi 或者 wsgiref.simple_server,提供wsgi server功能,后者更简单。

首先建立一个test包,然后在test包里面建立如下文件:

test-paste.ini

server.py

wsgi.py

router.py

versions.py

@webob.dec.wsgify 装饰器将一个普通函数转变成WSGI应用程序

执行python server.py , 然后在浏览器输入http://localhost:8088/v1/test 就会出现相关页面。

由于在函数中加了打印语句,启动时会输出:

访问页面会输出:

这是一个OpenStack WSGI原型,还需完善,比如在router.py文件中,/test并没有和index方法绑定,只是在Controller.__call__方法中静态的调用了index方法。

到此这篇kubelet起不来(kubelet-client-current.pem)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • ⅴr,ar是什么意思(ar%是什么)2025-02-11 10:18:04
  • localdatetime工具类(localdatetime tostring)2025-02-11 10:18:04
  • raise是几年级的单词(noise是几年级的单词)2025-02-11 10:18:04
  • jcenter(jcenter()不支持浏览)2025-02-11 10:18:04
  • rme adi2 dac pro 区别(rme adi2 dac fs)2025-02-11 10:18:04
  • xavier中文什么意思(xvplaver是什么)2025-02-11 10:18:04
  • spring教程pdf(spring教程入门)2025-02-11 10:18:04
  • rpro怎么读(rmsprop怎么读)2025-02-11 10:18:04
  • swagger接口文档怎么访问(swagger2如何导出接口文档)2025-02-11 10:18:04
  • jcenter 关闭(jcenter停止服务)2025-02-11 10:18:04
  • 全屏图片