總結:
工作負載類型是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中獲取
