--- layout: LearningLayout description: Kubernetes教程_使用Kuboard在Kubernetes上部署Spring_Cloud微服务平台SpringBlade meta: - name: keywords content: Kubernetes教程,K8S教程,Kubernetes微服务,Kubernetes Spring Cloud --- # 部署接口网关 ::: tip 前提条件 部署接口网关之前,请确保: * 您的环境已经满足 [环境准备](../prepare/prepare.html) 中的要求; * 已经完成了 [nacos 的部署](./nacos.html); ::: 本文将按照如下步骤完成 `api-gateway` 的创建: * 创建配置字典 `blade-config` * 创建 Deployment * 验证部署结果 * 验证 blade-gateway 已经成功注册到 nacos ## 创建配置字典 blade-config * 导航到菜单项 ***名称空间*** --> ***spring-blade*** --> ***配置中心*** --> ***配置字典*** ![image-20210503211458752](./m-gateway.assets/image-20210503211458752.png) * 点击上图中的 ***创建 ConfigMap*** 按钮,结果如下图所示: 填写表单: | 字段名 | 字段值 | 备注 | | ------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | | 名称 | `blade-config` | | | 数据
| `PROFILE` = `test`
`NACOS_SERVER_ADDR` = `nacos-0.nacos:8848`
`SENTINEL_DASHBOARD_ADDR` = `sentinel-0.sentinel:8858`
| 这些参数将作为环境变量注入到 `blade-gateway` 以及 `blade-admin` 等微服务组件中,作为应用启动参数的一部分 | ![image-20210504132838786](./m-gateway.assets/image-20210504132838786.png) * 点击 ***保存*** 按钮,完成配置字典 `blade-config` 的创建。 ## 创建 Deployment 按照如下步骤创建 `blade-gateway` Deployment: * 在 Kuboard 界面进入名称空间 `spring-blade` 之后,点击菜单 ***名称空间*** -> ***spring-blade*** -> ***常用操作*** -> ***创建工作负载*** ,如下图所示: 并填写表单: | 字段名称 | 字段值 | 备注 | | ------------ | --------------- | -------------------------------------------- | | 工作负载类型 | `Deployment` | | | 工作负载分层 | `API网关层` | 填写后将自动添加 `k8s.kuboard.cn/layer` 标签 | | 工作负载名称 | `blade-gateway` | 填写后将自动添加 `k8s.kuboard.cn/name` 标签 | | 副本数 | `1` | | ![image-20210503210239238](./m-gateway.assets/image-20210503210239238.png) * 切换到 ***容器信息*** 标签,如下图所示: 点击左侧的 ***添加工作容器*** 按钮,添加一个工作容器,并填写表单: | 字段名称 | 字段值 | 备注 | | ----------------------------------------- | ------------------------------------------------------------ | ------------------------------------------------------------ | | 名称 | `blade-gateway` | | | 容器镜像 | `从其他镜像仓库加载镜像(不使用用户名密码)` | | | 容器镜像-->镜像仓库 | `swr.cn-east-2.myhuaweicloud.com` | | | 容器镜像-->镜像路径 | `blade/blade-gateway` | | | 容器镜像-->镜像标签 | `3.0.3` | | | 镜像拉取策略 | `始终拉取新镜像(Always)` | | | 命令参数
| 参数
`--spring.profiles.active=${PROFILE} --spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR} --spring.cloud.nacos.discovery.server-addr=${NACOS_SERVER_ADDR} --spring.cloud.sentinel.transport.dashboard=${SENTINEL_DASHBOARD_ADDR} --server.port=80`
| 通过启动参数指定:
  • spring的 profile
  • Nacos配置中心地址
  • Nacos服务发现地址
  • Sentinel地址
  • 服务端口
  • | | 环境变量 | `配置字典引用` `blade-config` | 点击 ***+ 配置*** 按钮,可以添加一个配置字典的条目;此配置将 `blade-config` 配置字典中的每一个条目都映射成容器中的一个变量及变量值 | | 资源请求/限制 | 内存资源请求:`200Mi`
    内存资源限制:`2048Mi` | | | 容器端口 | `server ` `80` | | | 健康检查-->容器启动检查探针 | 探测方式: `HTTP请求`
    HTTP请求端口: `80`
    HTTP请求路径: `/actuator/health`
    初始延迟:`30`
    不健康阈值: `20` | | | 健康检查-->容器存活检查探针 | 探测方式: `HTTP请求`
    HTTP请求端口: `80`
    HTTP请求路径: `/actuator/health` | | | 健康检查-->容器就绪检查探针 | 探测方式: `HTTP请求`
    HTTP请求端口: `80`
    HTTP请求路径: `/actuator/health` | | ![image-20210503214928838](./m-gateway.assets/image-20210503214928838.png) * 切换到 ***服务/应用路由*** 标签页,如下图所示: 并填写表单: | 字段名称 | 字段值 | 备注 | | ------------------------------------ | ----------------------------------------------------------- | ------------------------------------------------------------ | | 服务类型 | `ClusterIP` | ClusterIP,以便 `saber-web` 的 nginx 可以将 api 请求反向代理到 `http://blade-gateway:80` | | 端口
    | `server` `TCP ` `80` `80`
    | 将容器的 `80` 端口映射到 Service 的 `80` 端口 | ![image-20210503220054714](./m-gateway.assets/image-20210503220054714.png) * 点击 ***保存*** 按钮,完成 `blade-gateway` Deployment 的创建 ## 验证部署结果 按照下面的步骤,可以验证 `blade-gateway` 是否已经成功启动: * 在上面的步骤中,完成 Deployment 的保存以后,将会进入该 Deployment 的详情页面,如下图所示: ![image-20210503215741162](./m-gateway.assets/image-20210503215741162.png) * 点击上图中的 ***追踪日志*** 按钮,可以看到 blade-gateway 的日志信息,如下图所示,日志将提示: ``` ---[BLADE-GATEWAY]---启动完成,当前使用的端口:[80],环境变量:[k8s]--- ``` ![image-20210503220711880](./m-gateway.assets/image-20210503220711880.png) ## 验证 blade-gateway 已经成功注册到 nacos 按照下面的步骤,可以验证 `blade-gateway` 是否已经成功注册到 nacos 服务注册中心: * 切换到 `nacos` StatefulSet 的详情页,如下图所示: ![image-20210502205924106](./nacos-install.assets/image-20210502205924106.png) * 点击上图中,容器端口 `8848` 后面对应的绿色图标,如下图所示: 修改 ***访问路径*** 字段为 `/nacos`; ![image-20210502210356041](./nacos-install.assets/image-20210502210356041.png) * 在上图中修改 ***访问路径*** 字段后,点击 ***在浏览器窗口打开*** 按钮,将会打开一个新的窗口,如下图所示: 填写登录信息: 用户名:`nacos` 密码: `nacos` ![image-20210502210647992](./nacos-install.assets/image-20210502210647992.png) * 在上图中点击 ***提交*** 按钮,完成 nacos 登录,并切换到 ***服务管理*** --> ***服务列表*** 菜单项, 如下图所示: ![image-20210503220918194](./m-gateway.assets/image-20210503220918194.png) 服务列表中出现 `blade-gateway`,则我们可以认为 blade-gateway 已经部署成功。 下一步,请 [部署 swagger](./m-swagger.html)