k8s+springcloud+nacos部署配置

news2024/11/24 18:43:43

1 k8s 部署nacos-2.1.2配置k8s-nacos-statefulSet.yaml文件

apiVersion: v1
kind: Service
metadata:
   name: nacos-headless
   namespace: rz-dt
   labels:
     app: nacos
   annotations:
     service.alpha.kubernetes.io/tolerate-unready-endpoints: "true"
spec:
 # 3个端口打开,否则外网应用连接不上k8s里面的nacos
   ports:
     - protocol: TCP
       port: 8848
       name: server
       targetPort: 8848
     - protocol: TCP
       port: 9848
       name: client-rpc
       targetPort: 9848
     - protocol: TCP
       port: 9849
       name: server-rpc
       targetPort: 9849
   clusterIP: None
   selector:
     app: nacos
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
   name: nacos
   namespace: rz-dt
spec:
   serviceName: nacos-headless
   replicas: 3
   template:
     metadata:
       labels:
         app: nacos
       annotations:
         pod.alpha.kubernetes.io/initialized: "true"
     spec:
       affinity:
         podAntiAffinity:
           requiredDuringSchedulingIgnoredDuringExecution:
             - labelSelector:
                 matchExpressions:
                   - key: "app"
                     operator: In
                     values:
                       - nacos-headless
               topologyKey: "kubernetes.io/hostname"
       nodeSelector:
           rz_dt_nacos_node: rz-dt-nacos
       containers:
         - name: k8snacos
           imagePullPolicy: Always
           #v2.1.2可以重启nacos服务自动注册 2.0.3 不会自动注册服务 对应库nacos_config
           image: nacos/nacos-server:v2.1.2
           resources:
             limits:
               cpu: 900m
               memory: 2Gi
             requests:
               cpu: 10m
               memory: 50Mi
           ports:
             - containerPort: 8848
               name: client-port
             - containerPort: 9848
               name: client-grpc
             - containerPort: 9849
               name: server-grpc
           #环境变量配置
           env:
             - name: NACOS_REPLICAS
               value: "3"
             - name: MYSQL_SERVICE_HOST
               valueFrom:
                 configMapKeyRef:
                   name: nacos-cm
                   key: mysql.host
             - name: MYSQL_SERVICE_DB_NAME
               valueFrom:
                 configMapKeyRef:
                   name: nacos-cm
                   key: mysql.db.name
             - name: MYSQL_SERVICE_PORT
               valueFrom:
                 configMapKeyRef:
                   name: nacos-cm
                   key: mysql.port
             - name: MYSQL_SERVICE_USER
               valueFrom:
                 configMapKeyRef:
                   name: nacos-cm
                   key: mysql.user
             - name: MYSQL_SERVICE_PASSWORD
               valueFrom:
                 configMapKeyRef:
                   name: nacos-cm
                   key: mysql.password
             - name: MODE
               value: "cluster"
             - name: NACOS_SERVER_PORT
               value: "8848"
             - name: NACOS_APPLICATION_PORT
               value: "9848"
             - name: NACOS_APPLICATION_PORT
               value: "9849"
             - name: PREFER_HOST_MODE
               value: "hostname"
             - name: NACOS_SERVERS
               value: "nacos-0.nacos-headless.rz-dt.svc.cluster.local:8848 nacos-1.nacos-headless.rz-dt.svc.cluster.local:8848 nacos-2.nacos-headless.rz-dt.svc.cluster.local:8848"
   selector:
     matchLabels:
       app: nacos
---
apiVersion: v1
kind: Service
metadata:
   name: nacos-service
   namespace: rz-dt
   annotations:
     nginx.ingress.kubernetes.io/affinity: "true"
     nginx.ingress.kubernetes.io/session-cookie-name: backend
     nginx.ingress.kubernetes.io/load-balancer-method: drr

spec:
   selector:
     app: nacos
   # 3个端口打开,否则外网应用连接不上k8s里面的nacos
   ports:
     - name: nacos-headless
       protocol: TCP
       port: 8848
       targetPort: 8848
       nodePort: 30048
     - name: nacos-rpc
       protocol: TCP
       port: 9848
       targetPort: 9848
       nodePort: 31048
     - name: nacos-grpc
       protocol: TCP
       port: 9849
       targetPort: 9849
       nodePort: 31049
   type: NodePort
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
   name: nacos-web
   namespace: rz-dt
spec:
   rules:
     - host: nacos.real.com.cn
       http:
         paths:
           - path: /nacos
             backend:
               serviceName: nacos-service
               servicePort: 8848
---
apiVersion: v1
kind: ConfigMap
metadata:
   name: nacos-cm
   namespace: rz-dt
data:
   mysql.host: "rm-uf6c2o6h7hg.mysql.rds.aliyuncs.com"
   mysql.db.name: "nacos_config"
   mysql.port: "3306"
   mysql.user: "real"
   mysql.password: "1234"



2 k8s 一键部署脚本 test.sh

echo "开始制作镜像..."
image_name=k8s-nacos-statefulSet

echo "k8s一键部署"
export IMG_NAME=${image_name}
envsubst < ${image_name}.yaml | kubectl --kubeconfig ~/.kube-rz/config apply -f -


3 springcloud 微服务中配置nacos地址properties

server.port=8090
logging.level.org.springframework.cloud.sleuth=info
spring.application.name=k8s-springboot-demo
#spring.profiles.active=dev
spring.sleuth.enabled=true
spring.sleuth.reactor.instrumentation-type=decorate_on_each
#spring.config.activate.on-profile=dev
#spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
#spring.cloud.nacos.config.server-addr=127.0.0.1:8848
#spring.cloud.nacos.config.file-extension=yml
#spring.cloud.nacos.config.shared-configs[0]=realize-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
#spring.cloud.sentinel.eager=true
#spring.cloud.sentinel.transport.dashboard=127.0.0.1:8718
#spring.cloud.sentinel.datasource.ds1.nacos.server-addr=127.0.0.1:8848
#spring.cloud.sentinel.datasource.ds1.nacos.dataId=sentinel-application-gateway
#spring.cloud.sentinel.datasource.ds1.nacos.groupId=DEFAULT_GROUP
#spring.cloud.sentinel.datasource.ds1.nacos.data-type=json
#spring.cloud.sentinel.datasource.ds1.nacos.rule-type=flow

#spring.config.activate.on-profile=server 
# nacos访问地址 服务名.命名空间:服务端口号
spring.cloud.nacos.discovery.server-addr=nacos-service.rz-dt:8848
#spring.cloud.nacos.discovery.server-addr=nacos-0.nacos-headless.rz-dt.svc.cluster.local:8848,nacos-1.nacos-headless.rz-dt.svc.cluster.local:8848,nacos-2.nacos-headless.rz-dt.svc.cluster.local:8848
spring.cloud.nacos.discovery.metadata.preserved.heart.beat.interval=1000
spring.cloud.nacos.discovery.metadata.preserved.heart.beat.timeout=3000
spring.cloud.nacos.discovery.metadata.preserved.ip.delete.timeout=3000
# nacos访问地址 服务名.命名空间:服务端口号
spring.cloud.nacos.config.server-addr=nacos-service.rz-dt:8848
#spring.cloud.nacos.config.server-addr=nacos-0.nacos-headless.rz-dt.svc.cluster.local:8848,nacos-1.nacos-headless.rz-dt.svc.cluster.local:8848,nacos-2.nacos-headless.rz-dt.svc.cluster.local:8848
spring.cloud.nacos.config.file-extension=yml
spring.cloud.nacos.config.shared-configs[0]=realize-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
spring.cloud.sentinel.eager=true
spring.cloud.sentinel.transport.dashboard=127.0.0.1:8718
spring.cloud.sentinel.datasource.ds1.nacos.server-addr=nacos-service.rz-dt:8848
#spring.cloud.sentinel.datasource.ds1.nacos.server-addr=nacos-0.nacos-headless.rz-dt.svc.cluster.local:8848,nacos-1.nacos-headless.rz-dt.svc.cluster.local:8848,nacos-2.nacos-headless.rz-dt.svc.cluster.local:8848
spring.cloud.sentinel.datasource.ds1.nacos.dataId=sentinel-application-gateway
spring.cloud.sentinel.datasource.ds1.nacos.groupId=DEFAULT_GROUP
spring.cloud.sentinel.datasource.ds1.nacos.data-type=json
spring.cloud.sentinel.datasource.ds1.nacos.rule-type=flow

springcloud 微服务中配置nacos地址yaml

logging:
  level:
    org:
      springframework:
        cloud:
          sleuth: info
server:
  port: 8090
spring:
  application:
    name: k8s-springboot-demo
  cloud:
    nacos:
      config:
        file-extension: yml
        # nacos访问地址 服务名.命名空间:服务端口号
        #spring.cloud.nacos.discovery.server-addr=nacos-0.nacos-headless.rz-dt.svc.cluster.local:8848,nacos-1.nacos-headless.rz-dt.svc.cluster.local:8848,nacos-2.nacos-headless.rz-dt.svc.cluster.local:8848
        server-addr: nacos-service.rz-dt:8848
        shared-configs:
        - realize-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
      discovery:
        metadata:
          preserved:
            heart:
              beat:
                interval: 1000
                timeout: 3000
            ip:
              delete:
                timeout: 3000
        server-addr: nacos-service.rz-dt:8848
    sentinel:
      datasource:
        ds1:
          nacos:
            data-type: json
            dataId: sentinel-application-gateway
            groupId: DEFAULT_GROUP
            rule-type: flow
            server-addr: nacos-service.rz-dt:8848
      eager: true
      transport:
        dashboard: 127.0.0.1:8718
  sleuth:
    enabled: true
    reactor:
      instrumentation-type: decorate_on_each

 

4 k8s 里面nacos截图

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1821368.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[vue2]智慧商城app

项目演示 查看项目效果, 明确功能模块 项目收获 通过该项目的学习, 可以收获的内容 创建项目 创建命令: vue create hm-shopping-app清理项目多余文件清理 路由配置文件 和 App.vue文件新增 API接口目录 和 utils工具方法目录 vant组件库 第三方封装好了很多的组件, 整合起…

数据中台-知识图谱平台

【数据分析小兵】专注数据中台产品领域,覆盖开发套件,包含数据集成、数据建模、数据开发、数据服务、数据可视化、数据治理相关产品以及相关行业的技术方案的分享。对数据中台产品想要体验、做二次开发、关注方案资料、做技术交流的朋友们&#xff0c;可以关注我。 1. 概述 随着…

LabVIEW开发需求制定与管理

LabVIEW开发中的需求制定是确保项目成功的关键环节。本文从用户和开发者的角度详细分析了需求涉及的方面、需求的意义、好的需求和不好需求的区别及其对开发进度和质量的影响&#xff0c;帮助用户和开发者更好地进行需求管理&#xff0c;提升项目的成功率和软件质量。 一、需求…

【CT】LeetCode手撕—5. 最长回文子串

目录 题目1-思路2- 实现⭐5. 最长回文子串——题解思路 3- ACM实现 题目 原题连接&#xff1a;5. 最长回文子串 1-思路 子串的定义&#xff1a;子串是原始字符串的一个连续部分子序列的定义&#xff1a;子序列是原始字符串的一个子集记录最长回文子串的起始位置以及其长度&am…

H5小程序视频编辑解决方案,广泛适用,灵活部署

如何在微信小程序、网页、HTML5等WEB场景中实现轻量化视频制作&#xff0c;满足多样化的运营需求&#xff0c;一直是企业面临的挑战。美摄科技凭借其在视频编辑领域的深厚积累和创新技术&#xff0c;为企业量身打造了一套H5/小程序视频编辑解决方案&#xff0c;助力企业轻松应对…

批量文件重命名技巧:轻松替换删除文件夹名中的字母,实现高效文件管理新境界

在数字化时代&#xff0c;我们每天都会面对大量的文件和文件夹。无论是工作文档、学习资料还是个人收藏&#xff0c;文件命名的规范性都显得尤为重要。然而&#xff0c;手动一个一个去修改文件名&#xff0c;不仅耗时耗力&#xff0c;还容易出错。那么&#xff0c;有没有一种方…

C++并发之定时互斥(std::timed_mutex)

目录 1 概述2 使用实例3 接口使用3.1 construct3.2 lock3.3 try_lock3.4 try_lock_for3.5 try_lock_until3.6 unlock 1 概述 定时互斥是一种时间可锁定的对象&#xff0c;它设计用于在代码的关键部分需要独占访问时发出信号&#xff0c;就像常规互斥一样&#xff0c;但还支持定…

树莓派4B学习笔记8:开机自启动Python脚本_kill关闭后台脚本

今日继续学习树莓派4B 4G&#xff1a;&#xff08;Raspberry Pi&#xff0c;简称RPi或RasPi&#xff09; 本人所用树莓派4B 装载的系统与版本如下: 版本可用命令 (lsb_release -a) 查询: Opencv 版本是4.5.1&#xff1a; 紧接着上篇文章学习的串口通信,今日学习如何让树莓派开机…

zabbix自定义监控mysql状态和延迟

zabbix自定义监控mysql状态和延迟 文章目录 zabbix自定义监控mysql状态和延迟zabbix自定义监控mysql状态配置主从配置自定义监控添加监控项添加触发器模拟测试异常 zabbix自定义监控mysql延迟配置自定义监控添加监控项添加触发器测试 zabbix自定义监控mysql状态 配置主从 1.安…

H5漂流瓶交友源码|社交漂流瓶H5源码 附安装教程

H5漂流瓶交友源码|社交漂流瓶H5源码 附安装教程 搭建教程 环境&#xff1a;Nginx 1.20.1-MySQL 5.6.50-PHP-7.3 上传源码至网站根目录&#xff0c;创建并导入数据库 数据库信息修改&#xff1a;/config/database.php 网站运行目录/public 配置文件加入&#xff08;从24行…

PHP和Mysql前后端交互效果实现

一、连接数据库基本函数 mysqli_connect(); 作用&#xff1a;创建数据库连接&#xff0c;打开一个新的mysql的连接。传参顺序&#xff1a;数据库地址、数据库账号、数据库密码 <?phpecho mysqli_connect("localhost",root,root) ?> /*结果&#xff1a;F…

基于springboot实现中山社区医疗综合服务平台系统项目【项目源码+论文说明】

基于springboot实现中山社区医疗综合服务平台系统演示 摘要 传统信息的管理大部分依赖于管理人员的手工登记与管理&#xff0c;然而&#xff0c;随着近些年信息技术的迅猛发展&#xff0c;让许多比较老套的信息管理模式进行了更新迭代&#xff0c;居民信息因为其管理内容繁杂&…

数智技术教学解决方案

前言 随着大数据、云计算、人工智能等技术的迅猛发展&#xff0c;教育领域正迎来一场深刻的变革。这场变革不仅仅是教学方式的转变&#xff0c;更是教育理念、教学模式乃至教育生态系统的重塑。唯众作为教育技术领域的领军企业&#xff0c;深刻认识到数智技术在教学中的重要性&…

2024大交通场景空间策展洞察报告

来源&#xff1a;邻汇吧&万一商管 近期历史回顾&#xff1a; 2024国内工商业储能市场研究报告.pdf 2023幸福企业白皮书.pdf 2024年欧亚地区移动经济报告.pdf 内容供应链变革 2023人工智能与首席营销官&#xff08;CMO&#xff09; AI科技对PC产业的影响.pdf 金融业数据应用…

基于YOLO检测算法(单检测器网络+多视频输入)设计与实现

在单摄像头目标检测的基础上&#xff0c;实现单网络多线程的实时目标检测。 1&#xff0c;应用场景 在安防领域&#xff0c;YOLO的多摄像头实时目标检测应用具有以下特点和优势&#xff1a; 实时性能&#xff1a; YOLO算法以非常高的速度运行&#xff0c;能够实现实时目标检测…

ComfyUI 集成混元DIT(comfyui-hydit)

最近腾讯官方推出了ComfyUI插件comfyui-hydit 。是一个专门为腾讯的 Hunyuan-DiT 模型设计的自定义节点和工作流。本文主要介绍如何通过ComfyUI来运行腾讯新出的支持中文提示词的混元文生图大模型Hunyuan-DiT 环境准备 插件 从腾讯混元DIT 源码库获取插件源码&#xff1a; h…

深圳某老牌地产公司曝3小时裁所有员工

大家好&#xff01; 我是老洪&#xff0c;今日&#xff0c;我偶然间瞥见一则新闻&#xff0c;心头一震&#xff0c;惊讶之情难以言表。 据多家权威媒体纷纷报道&#xff0c;近日&#xff0c;深圳一家历史悠久的地产巨头&#xff0c;竟然在短短三小时内&#xff0c;果断地挥别了…

算法课程笔记——线段树维护哈希

算法课程笔记——线段树维护哈希 提前空出来

苹果AI时代:Apple Intelligence能否守护隐私与未来?

最近&#xff0c;苹果展示了其人工智能底牌&#xff0c;推出了Apple Intelligence(重新定义AI)&#xff0c;这是一套基础模型&#xff0c;将极大地改变苹果消费者使用其产品的方式。 虽然仍需在实际中证明自己&#xff0c;但它是一个强有力的演示&#xff0c;至少从普通用户的…

防火墙对于企业究竟起到哪些作用?

在当今数字化时代&#xff0c;企业网络安全已成为关乎企业生存与发展的战略要务。防火墙作为网络安全的基石&#xff0c;对于构建企业网络的安全防护体系至关重要。本文将深入剖析防火墙在企业网络安全中的多重价值&#xff0c;并结合具体案例&#xff0c;探讨如何科学运用防火…