156 lines
3.8 KiB
Markdown
156 lines
3.8 KiB
Markdown
# 配置中心`cctp-config`
|
||
微服务配置中心,默认端口:8030
|
||
|
||
## 命令脚本
|
||
Linux环境下执行 nk-ms.sh start|stop|restart|status
|
||
|
||
Windows环境下执行 start.bat (暂未提供)
|
||
|
||
|
||
## 使用方式
|
||
步骤1:`pom.xml`中增加依赖配置
|
||
```xml
|
||
<dependencies>
|
||
<dependency>
|
||
<groupId>org.springframework.cloud</groupId>
|
||
<artifactId>spring-cloud-starter-config</artifactId>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>org.springframework.cloud</groupId>
|
||
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
|
||
</dependency>
|
||
... ...
|
||
</dependencies>
|
||
```
|
||
|
||
步骤2:不使用`application.yml`,只使用`bootstrap.yml`配置文件内容如下:
|
||
```yml
|
||
server:
|
||
port: <微服务端口号>
|
||
|
||
spring:
|
||
profiles:
|
||
active: ${NACOS_NAMESPACE:dev}
|
||
application:
|
||
name: <微服务名称>
|
||
cloud:
|
||
config:
|
||
label: ${APP_LABEL:master}
|
||
discovery:
|
||
enabled: true
|
||
service-id: cctp-config
|
||
|
||
---
|
||
spring:
|
||
profiles: dev
|
||
eureka:
|
||
instance:
|
||
instance-id: ${spring.cloud.client.ip-address}:${server.port}
|
||
prefer-ip-address: true
|
||
client:
|
||
serviceUrl:
|
||
defaultZone: http://user:password123@192.168.77.24:8761/eureka
|
||
|
||
---
|
||
spring:
|
||
profiles: sit
|
||
eureka:
|
||
instance:
|
||
instance-id: ${spring.cloud.client.ip-address}:${server.port}
|
||
prefer-ip-address: true
|
||
client:
|
||
serviceUrl:
|
||
defaultZone: http://user:password123@${EUREKA_HOST:eureka.cctp.sit.northking.net}/eureka
|
||
|
||
---
|
||
spring:
|
||
profiles: prod
|
||
eureka:
|
||
instance:
|
||
instance-id: ${spring.cloud.client.ip-address}:${server.port}
|
||
prefer-ip-address: true
|
||
client:
|
||
serviceUrl:
|
||
defaultZone: http://user:password123@${EUREKA_HOST:eureka.cctp.prod.northking.net}/eureka
|
||
|
||
```
|
||
步骤3: 在配置中心的数据库中修改或者增加各个微服务的配置数据
|
||
配置中心的数据库IP: 192.168.77.26 192.168.77.47
|
||
数据库名称:cctp_config
|
||
表名:re_service_config
|
||
字段解释如下:
|
||
+ app_name: 微服务名称
|
||
+ profile: 环境名称,dev-开发;sit-测试;prod-生产;
|
||
+ app_label: 版本,默认master不用修改
|
||
|
||
# K8S配置及使用
|
||
## Dockerfile镜像配置文件
|
||
工程目录下的`Dockerfile`文件,是打包Docker镜像的配置文件,可能修改的内容如下:
|
||
+ EXPOSE: 端口号,与微服务的端口号一致
|
||
+ ENV APP_NAME: 微服务名称
|
||
+ ENV APP_VERSION: 版本号,与Maven配置文件pom.xml里的版本一致
|
||
|
||
|
||
## k8s部署配置文件
|
||
工程目录下的`*.deployment.yaml`文件,是k8s的部署文件,可能修改的内容如下:
|
||
+ name: 部署的名称
|
||
+ k8s-app: 标签名称
|
||
+ image: 镜像地址
|
||
+ containerPort: 容器的端口号
|
||
|
||
## 打包部署的脚本
|
||
工程目录下的`docker-ctl.sh`文件,是k8s打包部署的脚本文件,可能修改的内容如下:
|
||
+ APP_NAME: 微服务名称
|
||
+ APP_VERSION: Docker镜像的版本号(与maven的版本号无关)
|
||
|
||
|
||
脚本文件使用如下:
|
||
```shell script
|
||
./docker-ctl.sh < Command1 Command2 Command3 ... >
|
||
```
|
||
|
||
命令可选项:
|
||
+ clean: 清理镜像、容器、
|
||
+ build: 编译java代码+打jar包+打Docker镜像
|
||
+ debug: 本地调试打包的Docker镜像
|
||
+ push: 将打包的镜像推送到docker镜像私服仓库
|
||
+ pull: 从docker镜像私服仓库拉取镜像到本地
|
||
+ deploy: 将docker镜像部署到k8s
|
||
|
||
举例如下:
|
||
```shell script
|
||
# 打包镜像
|
||
./docker-ctl.sh build
|
||
|
||
## 打包、推送镜像、部署k8s
|
||
./docker-ctl.sh build push deploy
|
||
|
||
## 重启k8s里的部署服务(重新部署,就是重启)
|
||
./docker-ctl.sh deploy
|
||
|
||
|
||
```
|
||
|
||
|
||
## k8s相关命令
|
||
|
||
```shell script
|
||
|
||
# 查看`cctp`空间下所有部署的内容
|
||
kubectl -n cctp get all
|
||
|
||
# 查看 `podId`的日志,即微服务的日志
|
||
kubectl -n cctp logs -f <podId>
|
||
|
||
# 进入指定容器内部
|
||
kubectl -n cctp exec -it <podId> sh
|
||
|
||
|
||
```
|
||
|
||
|
||
|
||
|
||
|
||
|