深圳集团网站开发公司,上海网站建设维护,网上怎么样挣钱,wordpress侧边栏关闭上一篇整体介绍了cnp的功能#xff0c;这篇重点介绍下CNP产品应用开发的功能。
简介
CNP的应用开发#xff0c;主要是指的应用CD部署的配置管理。 应用列表#xff0c;用来创建一个应用#xff0c;一般与项目对应#xff0c;也可以多个应用对应到一个项目。具体很灵活。…上一篇整体介绍了cnp的功能这篇重点介绍下CNP产品应用开发的功能。
简介
CNP的应用开发主要是指的应用CD部署的配置管理。 应用列表用来创建一个应用一般与项目对应也可以多个应用对应到一个项目。具体很灵活。然后应用配置明细中其实就是提供了一个web看板可以快速定义k8s对象包括工作负载、ConfigMap、Secret等等k8s对象并且提供部署功能。部署时可以选择到前面cnp配置好的环境中去同时提供了环境部署过程的监控、日志等功能。
制品库管理云原生的cd基本都是通过镜像部署实现所以纳管一个制品库就是标配功能。这里支持纳管移动云自己的CIS镜像库、Harbor以及其他镜像库如nexus等。最终是为部署过程提供镜像库使用。
插件管理主要是提供ISTIO的服务网格管理功能。
应用路由主要是集成了cnp内置的apisix的路由配置功能。提供了一个更简洁的直观的可视化配置界面。
制品库管理
应用部署都依托于制品库所以首先我们要纳管我们使用的制品库。CNP支持的制品库有两种传统镜像库例如Harbor、Helm Chart仓库。其中后面应用部署的Helm方式需要基于Helm Chart库实现。 我们这里基于磐舟的Harbor进行配置。 需要确保仓库地址和CNP的网络能够通。
录入地址、用户名、密码点击验证。然后关联一个部署目标确定保存。比较简单。
这里注意仓库地址末尾不要加/。
插件管理
目前提供两个插件。Fluxcd和Istio。 Fluxcd主要针对helm部署方式。
Istio提供服务网格服务。
我们这里安装Istio组件。点击Istio组件进入组件安装界面。 点击安装按钮选择集群及项目启动安装。安装完成效果如上图。
安装了Istio组建后在后面应用创建时才能选择启用服务治理功能。
应用列表
新建应用。这里新建应用的时候会直接给你创建一个工作负载所以首次创建的时候需要注意一下提前规划好部署那个负载。 绑定环境是cnp配置的系统环境。就是生命部署到拿一个项目下的哪一个环境中。选择环境时同时会默认使用项目设置的namespace。
应用组件类型是提供了几种对象创建方式。webservice是基于server API接口封装的一个Web控制台页面。同时也支持k8s-objects(yml方式),helm。
这里我们是用WebService方式创建。 推荐启用服务治理模块会自动配置Istio后期CNP会陆续增加基于sidecar的很多功能提供更好的服务网格功能。服务治理需要提前安装istio插件。可以到插件管理中安装。否则部署时会报错。
容器镜像选择好纳管的Harbor镜像源然后补充具体项目路径及版本信息。点击回车可以匹配验证。
设置内存配额和cpu配额设置容器端口号。提交保存即可完成。 首次配置完只有一个组件。可以根据项目实际情况继续新增组件。这里的组件包括configMap和deployment等。
ConfigMap创建时推荐试用yml方式创建。首先使用文本编辑工具提前标记好yml文件然后新增组件是选择k8s-objects类型将yml贴到应用配置的文本区域中执行即可。 注意yml方式执行时偶尔会因为字符问题导致提交时格式错乱。整合是由于windows的字符集和unix字符集差异导致的。cnp目前对类似特殊字符处理正在优化中暂时需要自行通过类似nodepad等文本编辑器处理后提交。如果格式变形会导致yml解析错误直接引发应用容器启动异常。 点击部署启动应用到集群的cd流程。
下方可以看到具体部署情况。 也可以看部署信息。 到这里我们完成cd推送的操作。
应用路由
应用镜像启动起来了不代表就能对外提供服务了。我们还需要配置应用入口路由。这里基于Apisix进行路由配置。当然你可以继续使用k8s传统的ingress或者svc的方式开通服务直接到kcs的控制台进行配置即可。这里不再单独描述。 Apisix作为一个高性能使用广泛灵活可配置的服务网关被cnp选中集成到环境中来。
在安装了apisix的组件后你可以直接通过apisix的控制看板进行路由配置也可以通过cnp集成的apisix的路由配置功能进行操作。
目前cnp的路由配置正在不断优化中针对后台转发重写地址支持不好需要到apisix中进行配置。直接默认联通的路由可以一次性直接开通。
点击新增路由 输入路由名称和路由描述。选择应用选择应用中对应的组件deploy选择部署目标选择网关apisix安装名称可能不同下一步。 选择服务端口。这里跟上一步选择的组件是绑定的。
输入域名。需要解析到对应的负载均衡ip上。
输入路径。/* 表示所有路径。
优先级。优先级高的交叉路由会被优先执行。
提交保存。 去到apisix看一下。
apisix中创建了两个对象。一个“上游”一个“路由”。 这里其实和到apisix直接配置是等效的。
转发配置
对于一些特殊设计例如后台多个微服务之间的转发可能会调整请求路径path需要对请求进行重写。目前cnp对路径重写并不支持需要到apisix中直接进行配置。配置如下。
先确定是否存在上游配置。上游配置就是请求到那个deployment的指向配置。 这里我们有一个独立的java的服务叫asia-info。首先我们配置这个上游。
这里如果你熟悉kcs的配置可以通过apisix直接配置。 但是更建议利用cnp的路由管理创建相关对象确保无误。
我们先创建一个应用路由按照路由选择对应的应用和组件。 路径可以先配置入口路径优先级设置1。
然后cnp就会给我们创建好对应的apisix的上游和路由对象。
我们只需要重新创建一个路由对象吧优先级设置为9即可以让路由走我们的新路由来进行转发。具体如下。 在请求改写这里采用正则改写然后根据需要配置正则表达式然后填入转发模板。这里的意思是转发的时候移除“/prod-api/”这个路径。 下一步的时候直接选择cnp生成的那个上游对象提交保存即可。
当你将所有的路由都配置上以后应用就能够通过apisix进行访问了。
例如village.sdchbn.com:30443
PS 路由的配置可以根据测试或者开发环境上能够正常运行的应用的nginx的conf文件进行设计。如果开发环境是通过端口号进行的路由定义你需要改写成一个入口的path然后用路由转发到不通的服务镜像内。因为k8s集群肯定都是一个入口过来。当然你也可以使用二级域名进行入口路由。同时增加path需要打包镜像的时候对nginx也做相应的配置。总之需要根据具体情况进行设计。后面会分享一些具体实现配置。