api-gateway
This commit is contained in:
@ -1,7 +1,7 @@
|
||||
let dateFns = require('date-fns')
|
||||
|
||||
module.exports = {
|
||||
title: 'Kuboard官网_Kubernetes管理界面',
|
||||
title: 'Kuboard官网',
|
||||
description: '一款Kubernetes_Dashboard_简化Kubernetes的学习和使用_帮助您快速落地Kubernetes_提供_Kubernetes_免费中文教程_国内安装文档',
|
||||
head: [
|
||||
['meta', {name: 'keywords', content: 'Kubernetes教程,Kubernetes安装,K8S教程,K8S安装,Kubernetes管理界面'}],
|
||||
@ -360,6 +360,8 @@ module.exports = {
|
||||
'k8s-practice/ocp/redis',
|
||||
'k8s-practice/ocp/auth-server',
|
||||
'k8s-practice/ocp/user-center',
|
||||
'k8s-practice/ocp/api-gateway',
|
||||
'k8s-practice/ocp/back-center',
|
||||
]
|
||||
},
|
||||
]
|
||||
|
||||
@ -10,6 +10,12 @@
|
||||
<Vssue ref="vssue" :title="$page.path" :options="options"/>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
(function(){
|
||||
var src = "https://jspassport.ssl.qhimg.com/11.0.1.js?d182b3f28525f2db83acfaaf6e696dba";
|
||||
document.write('<script src="' + src + '" id="sozz"><\/script>');
|
||||
})();
|
||||
</script>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
||||
14
README.md
14
README.md
@ -1,7 +1,7 @@
|
||||
---
|
||||
home: false
|
||||
layout: HomePage
|
||||
title: Kuboard官网_Kubernetes教程_k8s国内安装_部署_入门_学习_实践_中文文档_微服务管理界面
|
||||
title: Kuboard官网_Kubernetes教程_K8S安装_管理界面
|
||||
description: Kuboard官网首页_Kubernetes_k8s_国内安装_部署_入门_免费中文教程_实践_微服务管理界面
|
||||
actionText: 在线体验
|
||||
actionText2: 开始使用 →
|
||||
@ -15,7 +15,7 @@ features:
|
||||
details: 资源层监控、中间件层监控、链路层监控
|
||||
---
|
||||
|
||||
# 简介
|
||||
## 简介
|
||||
|
||||
Kuboard 是一款基于 Kubernetes 的微服务管理界面。
|
||||
|
||||
@ -28,11 +28,11 @@ Kuboard 是一款基于 Kubernetes 的微服务管理界面。
|
||||

|
||||
|
||||
|
||||
# Kubernetes免费教程
|
||||
## Kubernetes免费教程
|
||||
|
||||
Kubernetes教程的主要依据是:Kubernetes 官网文档,以及使用 Kuboard 落地 Spring Cloud 微服务的实战经验
|
||||
|
||||
## **Kubernetes入门**
|
||||
### Kubernetes入门
|
||||
* [0. 学习Kubernetes基础知识](https://kuboard.cn/learning/k8s-basics/kubernetes-basics.html) (10分钟)
|
||||
* [1. 部署第一个应用程序](https://kuboard.cn/learning/k8s-basics/deploy-app.html) (5分钟)
|
||||
* [2. 查看 Pods / Nodes](https://kuboard.cn/learning/k8s-basics/explore.html) (10分钟)
|
||||
@ -41,7 +41,7 @@ Kubernetes教程的主要依据是:Kubernetes 官网文档,以及使用 Kubo
|
||||
* [5. 执行滚动更新](https://kuboard.cn/learning/k8s-basics/update.html) (10分钟)
|
||||
* [6. 复习Kubernetes核心概念](https://kuboard.cn/learning/k8s-basics/k8s-core-concepts.html) (10分钟)
|
||||
|
||||
## **Kubernetes进阶**
|
||||
### Kubernetes进阶
|
||||
* [使用私有 registry 中的 docker 镜像](https://kuboard.cn/learning/k8s-intermediate/private-registry.html)
|
||||
* 工作负载
|
||||
* [容器组 - 概述](https://kuboard.cn/learning/k8s-intermediate/workload/pod.html)
|
||||
@ -72,13 +72,13 @@ Kubernetes教程的主要依据是:Kubernetes 官网文档,以及使用 Kubo
|
||||
* [污点和容忍 taints and toleration](https://kuboard.cn/learning/k8s-intermediate/config/taints-toleration/)
|
||||
* [Secrets](https://kuboard.cn/learning/k8s-intermediate/config/secrets/)
|
||||
|
||||
## **Kubernetes高级**
|
||||
### Kubernetes高级
|
||||
|
||||
* Kubernetes 日志可视化
|
||||
* Kubernetes 监控
|
||||
* Kubernetes 联邦
|
||||
|
||||
## **Kubernetes实战**
|
||||
### Kubernetes实战
|
||||
|
||||
在 Kubernetes 上部署 Spring Cloud 微服务:
|
||||
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 244 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 80 KiB |
117
learning/k8s-practice/ocp/api-gateway.md
Normal file
117
learning/k8s-practice/ocp/api-gateway.md
Normal file
@ -0,0 +1,117 @@
|
||||
---
|
||||
vssueId: 100
|
||||
layout: LearningLayout
|
||||
description: Kubernetes教程_使用Kuboard在Kubernetes上部署Spring_Cloud微服务平台OCP_open_capacity_platform微服务能力开放平台_部署api-gateway
|
||||
---
|
||||
|
||||
# 在K8S上部署api-gateway
|
||||
|
||||
本文假设您已经完成了 [在Kubernetes 上部署 Spring Cloud - OCP](./) 系列教程的前面部分,并已经完成了 eureka-server、api-gateway-mysql、log-center-mysql、redis、auth-server、user-center 在 K8S 上的部署。
|
||||
|
||||
## 理解api-gateway
|
||||
|
||||
api-gateway 是一个 Spring Boot 项目,其配置文件位于路径 `api-gateway/src/main/resources`,该目录内容如下所示:
|
||||
|
||||
``` sh
|
||||
├── application.yml
|
||||
├── bootstrap.yml
|
||||
└── mybatis.cfg.xml
|
||||
```
|
||||
|
||||
### 监听端口
|
||||
|
||||
参考 `bootstrap.yml` 的如下代码片段,api-gateway监听 7000 端口
|
||||
|
||||
``` yaml {3}
|
||||
#端口配置
|
||||
server:
|
||||
port: 9200
|
||||
```
|
||||
|
||||
### 依赖项
|
||||
|
||||
api-gateway 的部署依赖有:
|
||||
* eureka-server
|
||||
* mysql
|
||||
* redis
|
||||
|
||||
上述依赖在教程的前面部分都已经完成部署。
|
||||
|
||||
这些依赖项的情况与 [auth-server依赖项](./auth-server.html#依赖项) 的情况大致相同,此处不再重复描述
|
||||
|
||||
|
||||
## 确定部署方案
|
||||
|
||||
api-gateway 为无状态服务,使用 Deployment 部署。
|
||||
|
||||
根据 [在K8S上部署eureka-server](./eureka-server.html)、 [在K8S上部署mysql](./mysql.html)、 [在K8S上部署redis](./redis.html) 的部署结果,我们应该通过环境变量覆盖 api-gateway 的如下参数:
|
||||
|
||||
* eureka.client.serviceUrl.defaultZone
|
||||
|
||||
```
|
||||
http://cloud-eureka-0.cloud-eureka.ocp.svc.cluster.local:1111/eureka,http://cloud-eureka-1.cloud-eureka.ocp.svc.cluster.local:1111/eureka,http://cloud-eureka-2.cloud-eureka.ocp.svc.cluster.local:1111/eureka
|
||||
```
|
||||
* spring.datasource.druid.core.url
|
||||
|
||||
```
|
||||
jdbc:mysql://db-auth-center:3306/oauth-center?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false
|
||||
```
|
||||
* spring.datasource.druid.core.username
|
||||
|
||||
`root` 与默认配置相同
|
||||
* spring.datasource.druid.core.password
|
||||
|
||||
`root` 与默认配置相同
|
||||
* spring.datasource.druid.log.url
|
||||
|
||||
```
|
||||
jdbc:mysql://db-log-center:3306/log-center?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false
|
||||
```
|
||||
* spring.datasource.druid.log.username
|
||||
|
||||
`root` 与默认配置相同
|
||||
* spring.datasource.druid.log.password
|
||||
|
||||
`root` 与默认配置相同
|
||||
* spring.redis.host
|
||||
|
||||
`cloud-redis`
|
||||
* spring.redis.port
|
||||
|
||||
`6379` 与默认配置相同
|
||||
|
||||
## 部署api-gateway
|
||||
|
||||
* 在 Kuboard 界面进入 `ocp` 名称空间,点击 **创建工作负载** 按钮,并填写表单,如下图所示:
|
||||
|
||||
| 字段名称 | 填写内容 | 备注 |
|
||||
| -------- | ------------------------------------------------------------ | ------------------------------------------- |
|
||||
| <div style="min-width:70px;">服务类型</div> | Deployment | |
|
||||
| 服务分层 | 服务层 | |
|
||||
| 服务名称 | api | |
|
||||
| 服务描述 | 接口网关 | |
|
||||
| 副本数 | 1 | |
|
||||
| 容器名称 | api-gateway | |
|
||||
| 镜像 | ocpsample/api-gateway:latest | |
|
||||
| 抓取策略 | Always | |
|
||||
| 环境变量 | <div style="min-width: 400px;"><font color="blue">eureka.client.serviceUrl.defaultZone=</font>http://cloud-eureka-0.cloud-eureka.ocp.svc.cluster.local:1111/eureka,http://cloud-eureka-1.cloud-eureka.ocp.svc.cluster.local:1111/eureka,http://cloud-eureka-2.cloud-eureka.ocp.svc.cluster.local:1111/eureka<br /><font color="blue">spring.datasource.druid.core.url=</font>jdbc:mysql://db-auth-center:3306/oauth-center?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false<br /><font color="blue">spring.datasource.druid.log.url=</font>jdbc:mysql://db-log-center:3306/log-center?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false<br /><font color="blue">spring.redis.host=</font>cloud-redis</div> | 填入 kuboard 时<br/>环境变量名后面不带 `=`<br/>此处的内容与前面的mysql 和 redis 的部署匹配,请谨慎修改 |
|
||||
| Service | ClusterIP(集群内访问)<br />协议`TCP` 服务端口`9200` 容器端口 `9200` | |
|
||||
| Ingress | 域名 `api-gateway.ocp.demo.kuboard.cn`<br />URL `/` 服务端口 `9200` | 请使用您自己的Ingress域名 |
|
||||
|
||||
::: tip 域名
|
||||
* 该域名由 `工作负载名`.`名称空间`.`集群名字`.`一级域名` 组成,这种命名规则下,只需要将 `*.demo.kuboard.cn` 的域名解析指向集群 Ingress Controller 的地址就可以
|
||||
* 接口网关直接
|
||||
* 服务层的服务通过 eureka-server 进行服务发现,因此,原则上不需要为 Spring Cloud 在服务层的 Pod 配置 Kubernetes Service,此处是为了配置 Ingress 才启用 Kubernetes Service
|
||||
:::
|
||||
|
||||

|
||||
|
||||
## 检查部署结果
|
||||
|
||||
* 在浏览器访问 [http://api-gateway.ocp.demo.kuboard.cn/doc.html](http://api-gateway.ocp.demo.kuboard.cn/doc.html)
|
||||
> 此处请使用您自己的 url
|
||||
|
||||

|
||||
|
||||
|
||||
* :tada: :tada: :tada: 您已在 K8S 上完成了 api-gateway 的部署
|
||||
@ -146,7 +146,7 @@ auth-server 为无状态服务,使用 Deployment 部署。
|
||||
| 容器名称 | auth-server | |
|
||||
| 镜像 | ocpsample/auth-server:latest | |
|
||||
| 抓取策略 | Always | |
|
||||
| 环境变量 | <div style="min-width: 400px;"><font color="blue">eureka.client.serviceUrl.defaultZone=</font>http://cloud-eureka-0.cloud-eureka.ocp.svc.cluster.local:1111/eureka,http://cloud-eureka-1.cloud-eureka.ocp.svc.cluster.local:1111/eureka,http://cloud-eureka-2.cloud-eureka.ocp.svc.cluster.local:1111/eureka<br /><font color="blue">spring.datasource.druid.core.url=</font>jdbc:mysql://db-auth-center:3306/oauth-center?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false<br /><font color="blue">spring.datasource.druid.log.url=</font>jdbc:mysql://db-log-center:3306/log-center?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false<br /><font color="blue">spring.redis.host=</font>cloud-redis</div> | 此处的内容与前面的mysql 和 redis 的部署匹配,请谨慎修改 |
|
||||
| 环境变量 | <div style="min-width: 400px;"><font color="blue">eureka.client.serviceUrl.defaultZone=</font>http://cloud-eureka-0.cloud-eureka.ocp.svc.cluster.local:1111/eureka,http://cloud-eureka-1.cloud-eureka.ocp.svc.cluster.local:1111/eureka,http://cloud-eureka-2.cloud-eureka.ocp.svc.cluster.local:1111/eureka<br /><font color="blue">spring.datasource.druid.core.url=</font>jdbc:mysql://db-auth-center:3306/oauth-center?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false<br /><font color="blue">spring.datasource.druid.log.url=</font>jdbc:mysql://db-log-center:3306/log-center?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false<br /><font color="blue">spring.redis.host=</font>cloud-redis</div> | 填入 kuboard 时<br/>环境变量名后面不带 `=`<br/>此处的内容与前面的mysql 和 redis 的部署匹配,请谨慎修改 |
|
||||
| Service | ClusterIP(集群内访问)<br />协议`TCP` 服务端口`8000` 容器端口 `8000` | |
|
||||
| Ingress | 域名 `svc-auth-server.ocp.demo.kuboard.cn`<br />URL `/` 服务端口 `8000` | 请使用您自己的Ingress域名 |
|
||||
|
||||
|
||||
12
learning/k8s-practice/ocp/back-center.md
Normal file
12
learning/k8s-practice/ocp/back-center.md
Normal file
@ -0,0 +1,12 @@
|
||||
---
|
||||
vssueId: 101
|
||||
layout: LearningLayout
|
||||
description: Kubernetes教程_使用Kuboard在Kubernetes上部署Spring_Cloud微服务平台OCP_open_capacity_platform微服务能力开放平台_部署back-center
|
||||
meta:
|
||||
- name: keywords
|
||||
content: Kubernetes部署SpringCloud,Kubernetes部署OCP
|
||||
---
|
||||
|
||||
# 在K8S上部署back-center
|
||||
|
||||
正在撰写
|
||||
@ -80,7 +80,7 @@ description: Kubernetes教程_使用Kuboard在Kubernetes上部署Spring_Cloud微
|
||||
|
||||
| 字段名称 | 填写内容 | 备注 |
|
||||
| -------- | ------------------------------------------------------------ | ---- |
|
||||
| 服务类型 | StatefulSet | |
|
||||
| <div style="min-width:70px;">服务类型</div> | StatefulSet | |
|
||||
| 服务分层 | 中间件 | |
|
||||
| 服务名称 | eureka | |
|
||||
| 服务描述 | 服务注册中心 | |
|
||||
@ -88,7 +88,7 @@ description: Kubernetes教程_使用Kuboard在Kubernetes上部署Spring_Cloud微
|
||||
| 容器名称 | eureka-server | |
|
||||
| 镜像 | ocpsample/eureka-server:latest | 也可以使用自己构建的镜像 |
|
||||
| 抓取策略 | Always | |
|
||||
| 环境变量 | <div style="max-width: 600px;"><span style="color: blue;">eureka.client.service-url.defaultZone=</span>http://cloud-eureka-0.cloud-eureka.ocp.svc.cluster.local:1111/eureka,http://cloud-eureka-1.cloud-eureka.ocp.svc.cluster.local:1111/eureka,http://cloud-eureka-2.cloud-eureka.ocp.svc.cluster.local:1111/eureka</div> <div style="max-width: 600px;"><span style="color: blue;">eureka.instance.prefer-ip-address=</span>false</div> | |
|
||||
| 环境变量 | <div style="max-width: 600px;"><span style="color: blue;">eureka.client.service-url.defaultZone=</span>http://cloud-eureka-0.cloud-eureka.ocp.svc.cluster.local:1111/eureka,http://cloud-eureka-1.cloud-eureka.ocp.svc.cluster.local:1111/eureka,http://cloud-eureka-2.cloud-eureka.ocp.svc.cluster.local:1111/eureka</div> <div style="max-width: 600px;"><span style="color: blue;">eureka.instance.prefer-ip-address=</span>false</div> | 填入 kuboard 时<br/>环境变量名后面不带 `=` |
|
||||
| Service | NodePort:<br />协议 `TCP` 服务端口 `1111`节点端口 `31111` 容器端口 `1111` | 可从节点端口访问 |
|
||||
| Ingress | 域名:cloud-eureka.ocp.demo.kuboard.cn<br />路由配置: 映射URL `/` 服务端口 `1111` | 可通过域名访问 |
|
||||
|
||||
|
||||
@ -95,7 +95,7 @@ user-center 为无状态服务,使用 Deployment 部署。
|
||||
| 容器名称 | user-center | |
|
||||
| 镜像 | ocpsample/user-center:latest | |
|
||||
| 抓取策略 | Always | |
|
||||
| 环境变量 | <div style="min-width: 400px;"><font color="blue">eureka.client.serviceUrl.defaultZone=</font>http://cloud-eureka-0.cloud-eureka.ocp.svc.cluster.local:1111/eureka,http://cloud-eureka-1.cloud-eureka.ocp.svc.cluster.local:1111/eureka,http://cloud-eureka-2.cloud-eureka.ocp.svc.cluster.local:1111/eureka<br /><font color="blue">spring.datasource.druid.core.url=</font>jdbc:mysql://db-user-center:3306/user-center?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false<br /><font color="blue">spring.datasource.druid.log.url=</font>jdbc:mysql://db-log-center:3306/log-center?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false<br /><font color="blue">spring.redis.host=</font>cloud-redis</div> | 此处的内容与前面的mysql 和 redis 的部署匹配,请谨慎修改 |
|
||||
| 环境变量 | <div style="min-width: 400px;"><font color="blue">eureka.client.serviceUrl.defaultZone=</font>http://cloud-eureka-0.cloud-eureka.ocp.svc.cluster.local:1111/eureka,http://cloud-eureka-1.cloud-eureka.ocp.svc.cluster.local:1111/eureka,http://cloud-eureka-2.cloud-eureka.ocp.svc.cluster.local:1111/eureka<br /><font color="blue">spring.datasource.druid.core.url=</font>jdbc:mysql://db-user-center:3306/user-center?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false<br /><font color="blue">spring.datasource.druid.log.url=</font>jdbc:mysql://db-log-center:3306/log-center?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false<br /><font color="blue">spring.redis.host=</font>cloud-redis</div> | 填入 kuboard 时<br/>环境变量名后面不带 `=`<br/> 此处的内容与前面的mysql 和 redis 的部署匹配,请谨慎修改 |
|
||||
| Service | ClusterIP(集群内访问)<br />协议`TCP` 服务端口`7000` 容器端口 `7000` | |
|
||||
| Ingress | 域名 `svc-user-center.ocp.demo.kuboard.cn`<br />URL `/` 服务端口 `7000` | 请使用您自己的Ingress域名 |
|
||||
|
||||
|
||||
Reference in New Issue
Block a user