使用kuboard界面配置springcloud的其中一个模块设置环境变量,使用nacos配置地址等有关设置

总结:
工作负载类型是StatefulSet的pod,不论其上层的service是nodeport还是Headless, 对外提供的地址格式是: <pod name>.<service>:<port>, 这种情况针对的是一个pod.

虽然在pod中ping其他pod的service也能ping通,但是配置文件中写service的话却无法连接。

1.nacos
nacos的工作负载类型是StatefulSet,pod+nodeport,对外连接使用的地址是:nacos-0.nacos:8848

nacos里添加的配置文件参数写法:

2.mysql
mysql的工作负载类型是StatefulSet,pod+Headless,对外连接使用的地址是:saber-db-0.saber-db:3306

3.redis
redis的工作负载类型是StatefulSet,pod+Headless,对外连接使用的地址是:redis-0.redis:6379

4.假设的一个springcloud框架中的一个模块,使用nacos作为配置和注册中心

先添加一个ConfigMap,具体内容如下:

然后在添加设置应用的时候,环境变量选择上一步创建的ConfigMap,配置,配置字典引用

然后命令/参数中的参数设置如下:

--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

参数中变量会从设置的环境变量中取,环境变量中的参数是从ConfigMap中设置来的。

之所以这样设置,后期修改配置的话,只需要修改ConfigMap就可以了,命令/参数中的参数就没必要修改,除非有新增的环境变量,命令/参数中的参数需要使用

不是直接在命令/参数中的参数中直接设置,比如,设置成spring.profiles.active=test

引申知识

docker镜像文件中启动命令与k8s中的命令/参数的关系如下:

结合查看的Docker中的参数设置

FROM anapsix/alpine-java:8_server-jre_unlimited
MAINTAINER smallchill@163.com
RUN mkdir -p /blade/auth
WORKDIR /blade/auth
EXPOSE 8010
ADD ./target/blade-auth.jar ./app.jar
ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "app.jar"]
CMD ["--spring.profiles.active=test"]

kuboard界面上容器的命令参数设置如下:

两者结合的最终效果是:

ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "app.jar"] + k8s中的参数:--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
# k8s中的参数变量值从ConfigMap中获取
posted @ 2021-06-25 18:09  哈喽哈喽111111  阅读(1093)  评论(0编辑  收藏  举报