k8s Docker使用nacos配置中心

Posted 抓手

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了k8s Docker使用nacos配置中心相关的知识,希望对你有一定的参考价值。

1.在nacos中添加配置文件

 

2.引入nacos maven

        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>

3.k8s&Docker配置

$工程根目录\\src\\main\\docker\\application\\Dockerfile

FROM java:8
VOLUME /tmp
ADD *.jar app.jar
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \\
&& echo 'Asia/Shanghai' >/etc/timezone
ADD ./run.sh /tmp
RUN chmod a+x /tmp/run.sh
# JVM虚拟机参数
ENV JAVA_OPTS=""
# 分布式配置中心分组名称
ENV ACM_GROUP=""
# 分布式配置中心端点名称
ENV ACM_END_POINT=""
# 分布式配置中心文件类型
ENV ACM_FILE_EXTENSION="yaml"
# 分布式配置中心RAM角色名称
ENV ACM_RAM_ROLE_NAME=""
# 分布式配置中心命名空间
ENV ACM_NAMESPACE=""
# 应用端口
ENV SERVER_PORT="8596"
# 配置spring.profiles.active
ENV SPRING_PROFILES_ACTIVE=""
ENTRYPOINT [ "sh", "-c", "/tmp/run.sh" ]

 $工程根目录\\src\\main\\docker\\application\\run.sh

#!/usr/bin/env bash
java $JAVA_OPTS -jar -Djava.security.egd=file:/dev/./urandom /app.jar \\
    --group=$ACM_GROUP \\
    --endpoint=$ACM_END_POINT \\
    --fileExtension=$ACM_FILE_EXTENSION \\
    --namespace=$ACM_NAMESPACE \\
    --ramRoleName=$ACM_RAM_ROLE_NAME \\
    --server.port=$SERVER_PORT \\
    --spring.profiles.active=$SPRING_PROFILES_ACTIVE

$工程根目录\\devops-config.yml

# ****************项目工程配置*********************
#      工程名称
projectName: xxx-server
# jar版本
jarVersion: 1.0.0
# 业务版本号 
businessVersion: v1.0.0

# ****************docker镜像相关配置*********************
# 镜像仓库命名空间
dockerImageRepoNameSpace: xxx
# Jfrog仓库名称
jfogServiceName: xxx

#******************容器编排设置*****************************
k8s:
  label:
    key: node
    value: poly
  env:
    dev:
      # 命名空间
      nameSpace: mg-tp-test
      # 应用容器端口
      appContainerPort: 8596
      # 创建实例数量
      instanceNum: 1
      # JAVA_OPTS
      javaOpts: ''
      # 环境分支
      springProfilesActive: dev
      # 分布式配置中心
      acm:
        group: xxx-group
        endpoint: xxx.aliyuncs.com
        fileExtension: yaml
        namespace: xxx
        ramRoleName: xxx

4.项目配置文件

$工程根目录\\src\\main\\resources\\bootstrap.yml

server:
  servlet:
    context-path: /xxx
  port: 8596

spring:
  application:
    name: xxx-server
    group: xxx
  cloud:
    nacos:
      config:
        enabled: true
        server-addr: $endpoint:
        file-extension: $fileExtension:
        refresh-enabled: true
        group: $group:
        namespace: $namespace:
        shared-dataids: $sharedDataids:
      username: $username:
      password: $password:

5.Jenkins配置

docker pull 192.168.1.101:5000/xxx-server:$Tag
docker rm -f xxx-server
docker run -d \\
--restart=always \\
--log-driver json-file \\
--log-opt max-size=10m \\
--log-opt max-file=3 \\
--name xxx-server \\
-p 8596:8596 \\
-e SPRING_PROFILES_ACTIVE=dev \\
-e endpoint='192.168.1.101:8848' \\
-e fileExtension=yaml \\
-e group='xxx' \\
-e namespace=xxx \\
-e username=nacos \\
-e password=nacos  \\
192.168.1.101:5000/xxx-server:$Tag

以上是关于k8s Docker使用nacos配置中心的主要内容,如果未能解决你的问题,请参考以下文章

nacos与k8s 服务注册与发现

在K8S中部署Nacos配置中心

Docker下Nacos配置应用开发

Docker 安装Nacos 分布式部署(注册中心和配置中心)

Docker下,两分钟极速体验Nacos配置中心

我用 docker 部署配置中心 nacos